aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNay <dnpd.dd@gmail.com>2012-09-17 23:21:01 +0100
committerNay <dnpd.dd@gmail.com>2012-09-17 23:21:01 +0100
commit2e21fa6b925c4572d620248f1b149a5d652836b2 (patch)
treed0ff026bc848d7ee466c9b793f42fb9ec4f07f62
parent6ebc6b9a76d0a4576306d777b35ec1a37d3ec5da (diff)
Core/Dependencies: Update ACE to v6.1.4 (Windows only)
Tested in multiple configurations .diff with TC changes added
-rw-r--r--dep/PackageList.txt2
-rw-r--r--dep/acelite/6.1.4_tc_changes.diff407
-rw-r--r--dep/acelite/COPYING2
-rw-r--r--dep/acelite/ChangeLog4346
-rw-r--r--dep/acelite/NEWS183
-rw-r--r--dep/acelite/README2
-rw-r--r--dep/acelite/THANKS40
-rw-r--r--dep/acelite/VERSION2
-rw-r--r--dep/acelite/ace/ACE.cpp132
-rw-r--r--dep/acelite/ace/ACE.h60
-rw-r--r--dep/acelite/ace/ACE.inl4
-rw-r--r--dep/acelite/ace/ACE_crc_ccitt.cpp14
-rw-r--r--dep/acelite/ace/ARGV.cpp8
-rw-r--r--dep/acelite/ace/ARGV.h6
-rw-r--r--dep/acelite/ace/ATM_Stream.inl3
-rw-r--r--dep/acelite/ace/Abstract_Timer_Queue.cpp26
-rw-r--r--dep/acelite/ace/Abstract_Timer_Queue.h230
-rw-r--r--dep/acelite/ace/Acceptor.cpp14
-rw-r--r--dep/acelite/ace/Acceptor.h6
-rw-r--r--dep/acelite/ace/Active_Map_Manager.h4
-rw-r--r--dep/acelite/ace/Arg_Shifter.h6
-rw-r--r--dep/acelite/ace/Argv_Type_Converter.h4
-rw-r--r--dep/acelite/ace/Array_Base.h8
-rw-r--r--dep/acelite/ace/Array_Map.cpp39
-rw-r--r--dep/acelite/ace/Array_Map.h11
-rw-r--r--dep/acelite/ace/Asynch_Acceptor.cpp11
-rw-r--r--dep/acelite/ace/Asynch_IO_Impl.h4
-rw-r--r--dep/acelite/ace/Atomic_Op.h8
-rw-r--r--dep/acelite/ace/Atomic_Op.inl35
-rw-r--r--dep/acelite/ace/Atomic_Op_GCC_T.h5
-rw-r--r--dep/acelite/ace/Atomic_Op_GCC_T.inl10
-rw-r--r--dep/acelite/ace/Atomic_Op_T.h13
-rw-r--r--dep/acelite/ace/Atomic_Op_T.inl19
-rw-r--r--dep/acelite/ace/Auto_Functor.h8
-rw-r--r--dep/acelite/ace/Auto_Functor.inl16
-rw-r--r--dep/acelite/ace/Auto_Ptr.h18
-rw-r--r--dep/acelite/ace/Barrier.h6
-rw-r--r--dep/acelite/ace/Base_Thread_Adapter.cpp8
-rw-r--r--dep/acelite/ace/Base_Thread_Adapter.h28
-rw-r--r--dep/acelite/ace/Basic_Stats.cpp6
-rw-r--r--dep/acelite/ace/Basic_Stats.h11
-rw-r--r--dep/acelite/ace/Basic_Types.cpp135
-rw-r--r--dep/acelite/ace/Basic_Types.h343
-rw-r--r--dep/acelite/ace/Basic_Types.inl954
-rw-r--r--dep/acelite/ace/CDR_Base.cpp2
-rw-r--r--dep/acelite/ace/CDR_Base.h4
-rw-r--r--dep/acelite/ace/CDR_Size.h4
-rw-r--r--dep/acelite/ace/CDR_Stream.cpp243
-rw-r--r--dep/acelite/ace/CDR_Stream.h29
-rw-r--r--dep/acelite/ace/CE_Screen_Output.h4
-rw-r--r--dep/acelite/ace/CMakeLists.txt5
-rw-r--r--dep/acelite/ace/Cache_Map_Manager_T.cpp66
-rw-r--r--dep/acelite/ace/Cached_Connect_Strategy_T.cpp95
-rw-r--r--dep/acelite/ace/Codeset_Registry.h6
-rw-r--r--dep/acelite/ace/Codeset_Registry.inl38
-rw-r--r--dep/acelite/ace/Compression/ACE_Compression_export.h58
-rw-r--r--dep/acelite/ace/Compression/Compressor.cpp63
-rw-r--r--dep/acelite/ace/Compression/Compressor.h137
-rw-r--r--dep/acelite/ace/Compression/Compressor.inl18
-rw-r--r--dep/acelite/ace/Compression/rle/ACE_RLECompression_export.h57
-rw-r--r--dep/acelite/ace/Compression/rle/RLECompressor.cpp158
-rw-r--r--dep/acelite/ace/Compression/rle/RLECompressor.h108
-rw-r--r--dep/acelite/ace/Condition_Attributes.cpp21
-rw-r--r--dep/acelite/ace/Condition_Attributes.h101
-rw-r--r--dep/acelite/ace/Condition_Attributes.inl40
-rw-r--r--dep/acelite/ace/Condition_Recursive_Thread_Mutex.cpp26
-rw-r--r--dep/acelite/ace/Condition_Recursive_Thread_Mutex.h20
-rw-r--r--dep/acelite/ace/Condition_T.cpp19
-rw-r--r--dep/acelite/ace/Condition_T.h23
-rw-r--r--dep/acelite/ace/Condition_Thread_Mutex.cpp64
-rw-r--r--dep/acelite/ace/Condition_Thread_Mutex.h62
-rw-r--r--dep/acelite/ace/Condition_Thread_Mutex.inl22
-rw-r--r--dep/acelite/ace/Configuration.cpp4
-rw-r--r--dep/acelite/ace/Configuration_Import_Export.cpp5
-rw-r--r--dep/acelite/ace/Configuration_Import_Export.h14
-rw-r--r--dep/acelite/ace/Connector.cpp7
-rw-r--r--dep/acelite/ace/Countdown_Time.cpp57
-rw-r--r--dep/acelite/ace/Countdown_Time.h59
-rw-r--r--dep/acelite/ace/Countdown_Time.inl20
-rw-r--r--dep/acelite/ace/Countdown_Time_T.cpp65
-rw-r--r--dep/acelite/ace/Countdown_Time_T.h100
-rw-r--r--dep/acelite/ace/Countdown_Time_T.inl26
-rw-r--r--dep/acelite/ace/DLL.h39
-rw-r--r--dep/acelite/ace/DLL_Manager.cpp16
-rw-r--r--dep/acelite/ace/DLL_Manager.h48
-rw-r--r--dep/acelite/ace/Default_Constants.h4
-rw-r--r--dep/acelite/ace/Dev_Poll_Reactor.cpp59
-rw-r--r--dep/acelite/ace/Dev_Poll_Reactor.h10
-rw-r--r--dep/acelite/ace/Dump.h4
-rw-r--r--dep/acelite/ace/Dynamic_Message_Strategy.h16
-rw-r--r--dep/acelite/ace/ETCL/ETCL_Constraint.cpp655
-rw-r--r--dep/acelite/ace/ETCL/ETCL_Constraint.h416
-rw-r--r--dep/acelite/ace/ETCL/ETCL_Constraint.inl349
-rw-r--r--dep/acelite/ace/ETCL/ETCL_Constraint_Visitor.cpp117
-rw-r--r--dep/acelite/ace/ETCL/ETCL_Constraint_Visitor.h70
-rw-r--r--dep/acelite/ace/ETCL/ETCL_Interpreter.cpp113
-rw-r--r--dep/acelite/ace/ETCL/ETCL_Interpreter.h117
-rw-r--r--dep/acelite/ace/ETCL/ETCL_l.cpp1877
-rw-r--r--dep/acelite/ace/ETCL/ETCL_y.cpp1288
-rw-r--r--dep/acelite/ace/ETCL/ETCL_y.h45
-rw-r--r--dep/acelite/ace/ETCL/ace_etcl_export.h40
-rw-r--r--dep/acelite/ace/ETCL/etcl_parser_export.h40
-rw-r--r--dep/acelite/ace/Env_Value_T.h4
-rw-r--r--dep/acelite/ace/Event_Handler_Handle_Timeout_Upcall.cpp99
-rw-r--r--dep/acelite/ace/Event_Handler_Handle_Timeout_Upcall.h103
-rw-r--r--dep/acelite/ace/Event_Handler_Handle_Timeout_Upcall.inl71
-rw-r--r--dep/acelite/ace/FIFO.cpp4
-rw-r--r--dep/acelite/ace/FIFO_Recv_Msg.cpp4
-rw-r--r--dep/acelite/ace/Filecache.cpp3
-rw-r--r--dep/acelite/ace/FlReactor/ACE_FlReactor_export.h58
-rw-r--r--dep/acelite/ace/FlReactor/FlReactor.cpp328
-rw-r--r--dep/acelite/ace/FlReactor/FlReactor.h110
-rw-r--r--dep/acelite/ace/FoxReactor/ACE_FoxReactor_export.h58
-rw-r--r--dep/acelite/ace/FoxReactor/FoxReactor.cpp327
-rw-r--r--dep/acelite/ace/FoxReactor/FoxReactor.h112
-rw-r--r--dep/acelite/ace/Functor.cpp12
-rw-r--r--dep/acelite/ace/Functor.h25
-rw-r--r--dep/acelite/ace/Functor.inl8
-rw-r--r--dep/acelite/ace/Functor_String.h41
-rw-r--r--dep/acelite/ace/Functor_String.inl22
-rw-r--r--dep/acelite/ace/Functor_T.h34
-rw-r--r--dep/acelite/ace/Functor_T.inl23
-rw-r--r--dep/acelite/ace/Future.cpp4
-rw-r--r--dep/acelite/ace/Future_Set.cpp4
-rw-r--r--dep/acelite/ace/Get_Opt.cpp2
-rw-r--r--dep/acelite/ace/Get_Opt.inl3
-rw-r--r--dep/acelite/ace/Global_Macros.h6
-rw-r--r--dep/acelite/ace/Guard_T.cpp3
-rw-r--r--dep/acelite/ace/Guard_T.h14
-rw-r--r--dep/acelite/ace/Guard_T.inl3
-rw-r--r--dep/acelite/ace/Handle_Set.cpp53
-rw-r--r--dep/acelite/ace/Handle_Set.h3
-rw-r--r--dep/acelite/ace/Handle_Set.inl16
-rw-r--r--dep/acelite/ace/Hash_Cache_Map_Manager_T.cpp44
-rw-r--r--dep/acelite/ace/Hash_Cache_Map_Manager_T.h8
-rw-r--r--dep/acelite/ace/Hash_Cache_Map_Manager_T.inl81
-rw-r--r--dep/acelite/ace/Hash_Multi_Map_Manager_T.cpp4
-rw-r--r--dep/acelite/ace/Hash_Multi_Map_Manager_T.inl4
-rw-r--r--dep/acelite/ace/Hashable.cpp4
-rw-r--r--dep/acelite/ace/Hashable.inl4
-rw-r--r--dep/acelite/ace/High_Res_Timer.cpp81
-rw-r--r--dep/acelite/ace/High_Res_Timer.h33
-rw-r--r--dep/acelite/ace/High_Res_Timer.inl74
-rw-r--r--dep/acelite/ace/ICMP_Socket.cpp6
-rw-r--r--dep/acelite/ace/INET_Addr.cpp106
-rw-r--r--dep/acelite/ace/INET_Addr.h6
-rw-r--r--dep/acelite/ace/INET_Addr.inl6
-rw-r--r--dep/acelite/ace/IOStream.cpp4
-rw-r--r--dep/acelite/ace/IOStream.h8
-rw-r--r--dep/acelite/ace/IOStream_T.h6
-rw-r--r--dep/acelite/ace/IO_SAP.cpp4
-rw-r--r--dep/acelite/ace/IO_SAP.inl3
-rw-r--r--dep/acelite/ace/Lib_Find.cpp15
-rw-r--r--dep/acelite/ace/Lib_Find.h8
-rw-r--r--dep/acelite/ace/Local_Name_Space_T.h6
-rw-r--r--dep/acelite/ace/Local_Tokens.h20
-rw-r--r--dep/acelite/ace/Lock.h22
-rw-r--r--dep/acelite/ace/Lock_Adapter_T.cpp13
-rw-r--r--dep/acelite/ace/Lock_Adapter_T.h16
-rw-r--r--dep/acelite/ace/Lock_Adapter_T.inl14
-rw-r--r--dep/acelite/ace/Log_Msg.cpp106
-rw-r--r--dep/acelite/ace/Log_Msg.h14
-rw-r--r--dep/acelite/ace/Log_Msg_UNIX_Syslog.cpp4
-rw-r--r--dep/acelite/ace/Log_Record.cpp34
-rw-r--r--dep/acelite/ace/MEM_Stream.h5
-rw-r--r--dep/acelite/ace/MMAP_Memory_Pool.cpp4
-rw-r--r--dep/acelite/ace/Malloc_T.cpp9
-rw-r--r--dep/acelite/ace/Map_T.h13
-rw-r--r--dep/acelite/ace/Mem_Map.cpp133
-rw-r--r--dep/acelite/ace/Message_Block.cpp146
-rw-r--r--dep/acelite/ace/Message_Block.h28
-rw-r--r--dep/acelite/ace/Message_Queue.h18
-rw-r--r--dep/acelite/ace/Message_Queue_NT.cpp5
-rw-r--r--dep/acelite/ace/Message_Queue_T.cpp819
-rw-r--r--dep/acelite/ace/Message_Queue_T.h108
-rw-r--r--dep/acelite/ace/Message_Queue_Vx.cpp3
-rw-r--r--dep/acelite/ace/Message_Queue_Vx.inl4
-rw-r--r--dep/acelite/ace/Metrics_Cache_T.h4
-rw-r--r--dep/acelite/ace/Module.cpp108
-rw-r--r--dep/acelite/ace/Module.h32
-rw-r--r--dep/acelite/ace/Module.inl50
-rw-r--r--dep/acelite/ace/Monitor_Control/Auto_Update_Starter.cpp35
-rw-r--r--dep/acelite/ace/Monitor_Control/Auto_Update_Starter.h61
-rw-r--r--dep/acelite/ace/Monitor_Control/BSD_Network_Interface_Monitor.cpp136
-rw-r--r--dep/acelite/ace/Monitor_Control/BSD_Network_Interface_Monitor.h70
-rw-r--r--dep/acelite/ace/Monitor_Control/Bytes_Received_Monitor.cpp60
-rw-r--r--dep/acelite/ace/Monitor_Control/Bytes_Received_Monitor.h94
-rw-r--r--dep/acelite/ace/Monitor_Control/Bytes_Sent_Monitor.cpp60
-rw-r--r--dep/acelite/ace/Monitor_Control/Bytes_Sent_Monitor.h94
-rw-r--r--dep/acelite/ace/Monitor_Control/CPU_Load_Monitor.cpp254
-rw-r--r--dep/acelite/ace/Monitor_Control/CPU_Load_Monitor.h106
-rw-r--r--dep/acelite/ace/Monitor_Control/Constraint_Interpreter.cpp62
-rw-r--r--dep/acelite/ace/Monitor_Control/Constraint_Interpreter.h74
-rw-r--r--dep/acelite/ace/Monitor_Control/Constraint_Visitor.cpp304
-rw-r--r--dep/acelite/ace/Monitor_Control/Constraint_Visitor.h86
-rw-r--r--dep/acelite/ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.cpp124
-rw-r--r--dep/acelite/ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.h70
-rw-r--r--dep/acelite/ace/Monitor_Control/Linux_Network_Interface_Monitor.cpp124
-rw-r--r--dep/acelite/ace/Monitor_Control/Linux_Network_Interface_Monitor.h76
-rw-r--r--dep/acelite/ace/Monitor_Control/Memory_Usage_Monitor.cpp78
-rw-r--r--dep/acelite/ace/Monitor_Control/Memory_Usage_Monitor.h80
-rw-r--r--dep/acelite/ace/Monitor_Control/Monitor_Control.h46
-rw-r--r--dep/acelite/ace/Monitor_Control/Monitor_Control_export.h49
-rw-r--r--dep/acelite/ace/Monitor_Control/Monitor_Control_utils.h92
-rw-r--r--dep/acelite/ace/Monitor_Control/Monitor_Group.cpp67
-rw-r--r--dep/acelite/ace/Monitor_Control/Monitor_Group.h72
-rw-r--r--dep/acelite/ace/Monitor_Control/Monitor_Query.cpp82
-rw-r--r--dep/acelite/ace/Monitor_Control/Monitor_Query.h75
-rw-r--r--dep/acelite/ace/Monitor_Control/Null_Network_Interface_Monitor.cpp30
-rw-r--r--dep/acelite/ace/Monitor_Control/Null_Network_Interface_Monitor.h61
-rw-r--r--dep/acelite/ace/Monitor_Control/Num_Threads_Monitor.cpp96
-rw-r--r--dep/acelite/ace/Monitor_Control/Num_Threads_Monitor.h88
-rw-r--r--dep/acelite/ace/Monitor_Control/Packets_Received_Monitor.cpp60
-rw-r--r--dep/acelite/ace/Monitor_Control/Packets_Received_Monitor.h94
-rw-r--r--dep/acelite/ace/Monitor_Control/Packets_Sent_Monitor.cpp60
-rw-r--r--dep/acelite/ace/Monitor_Control/Packets_Sent_Monitor.h94
-rw-r--r--dep/acelite/ace/Monitor_Control/Solaris_Network_Interface_Monitor.cpp223
-rw-r--r--dep/acelite/ace/Monitor_Control/Solaris_Network_Interface_Monitor.h91
-rw-r--r--dep/acelite/ace/Monitor_Control/Windows_Monitor.cpp76
-rw-r--r--dep/acelite/ace/Monitor_Control/Windows_Monitor.h78
-rw-r--r--dep/acelite/ace/Monitor_Control/Windows_Multi_Instance_Monitor.cpp110
-rw-r--r--dep/acelite/ace/Monitor_Control/Windows_Multi_Instance_Monitor.h75
-rw-r--r--dep/acelite/ace/Monotonic_Time_Policy.cpp7
-rw-r--r--dep/acelite/ace/Monotonic_Time_Policy.h50
-rw-r--r--dep/acelite/ace/Monotonic_Time_Policy.inl32
-rw-r--r--dep/acelite/ace/NT_Service.h5
-rw-r--r--dep/acelite/ace/Name_Request_Reply.cpp11
-rw-r--r--dep/acelite/ace/Name_Space.h6
-rw-r--r--dep/acelite/ace/Naming_Context.cpp4
-rw-r--r--dep/acelite/ace/Naming_Context.h8
-rw-r--r--dep/acelite/ace/Netlink_Addr.h4
-rw-r--r--dep/acelite/ace/Notification_Queue.h13
-rw-r--r--dep/acelite/ace/Notification_Queue.inl18
-rw-r--r--dep/acelite/ace/Null_Condition.h36
-rw-r--r--dep/acelite/ace/Numeric_Limits.h104
-rw-r--r--dep/acelite/ace/OS.h106
-rw-r--r--dep/acelite/ace/OS_NS_Thread.cpp120
-rw-r--r--dep/acelite/ace/OS_NS_Thread.h27
-rw-r--r--dep/acelite/ace/OS_NS_Thread.inl183
-rw-r--r--dep/acelite/ace/OS_NS_arpa_inet.cpp4
-rw-r--r--dep/acelite/ace/OS_NS_dlfcn.inl17
-rw-r--r--dep/acelite/ace/OS_NS_errno.h6
-rw-r--r--dep/acelite/ace/OS_NS_errno.inl6
-rw-r--r--dep/acelite/ace/OS_NS_math.h24
-rw-r--r--dep/acelite/ace/OS_NS_math.inl3
-rw-r--r--dep/acelite/ace/OS_NS_netdb.cpp198
-rw-r--r--dep/acelite/ace/OS_NS_netdb.h18
-rw-r--r--dep/acelite/ace/OS_NS_netdb.inl20
-rw-r--r--dep/acelite/ace/OS_NS_pwd.h15
-rw-r--r--dep/acelite/ace/OS_NS_pwd.inl82
-rw-r--r--dep/acelite/ace/OS_NS_signal.h8
-rw-r--r--dep/acelite/ace/OS_NS_signal.inl3
-rw-r--r--dep/acelite/ace/OS_NS_stdio.h32
-rw-r--r--dep/acelite/ace/OS_NS_stdlib.cpp28
-rw-r--r--dep/acelite/ace/OS_NS_stdlib.h4
-rw-r--r--dep/acelite/ace/OS_NS_stdlib.inl43
-rw-r--r--dep/acelite/ace/OS_NS_string.cpp7
-rw-r--r--dep/acelite/ace/OS_NS_string.h6
-rw-r--r--dep/acelite/ace/OS_NS_string.inl10
-rw-r--r--dep/acelite/ace/OS_NS_sys_mman.cpp4
-rw-r--r--dep/acelite/ace/OS_NS_sys_mman.inl13
-rw-r--r--dep/acelite/ace/OS_NS_sys_msg.cpp4
-rw-r--r--dep/acelite/ace/OS_NS_sys_select.inl8
-rw-r--r--dep/acelite/ace/OS_NS_sys_shm.h6
-rw-r--r--dep/acelite/ace/OS_NS_sys_socket.cpp123
-rw-r--r--dep/acelite/ace/OS_NS_sys_socket.h20
-rw-r--r--dep/acelite/ace/OS_NS_sys_socket.inl38
-rw-r--r--dep/acelite/ace/OS_NS_sys_time.cpp4
-rw-r--r--dep/acelite/ace/OS_NS_sys_utsname.cpp9
-rw-r--r--dep/acelite/ace/OS_NS_sys_wait.cpp4
-rw-r--r--dep/acelite/ace/OS_NS_sys_wait.inl6
-rw-r--r--dep/acelite/ace/OS_NS_time.cpp64
-rw-r--r--dep/acelite/ace/OS_NS_time.h62
-rw-r--r--dep/acelite/ace/OS_NS_time.inl78
-rw-r--r--dep/acelite/ace/OS_NS_unistd.cpp23
-rw-r--r--dep/acelite/ace/OS_NS_unistd.h9
-rw-r--r--dep/acelite/ace/OS_NS_unistd.inl34
-rw-r--r--dep/acelite/ace/OS_NS_wchar.cpp4
-rw-r--r--dep/acelite/ace/OS_Thread_Adapter.cpp21
-rw-r--r--dep/acelite/ace/OS_Thread_Adapter.h3
-rw-r--r--dep/acelite/ace/Obchunk.cpp4
-rw-r--r--dep/acelite/ace/Object_Manager.cpp39
-rw-r--r--dep/acelite/ace/Object_Manager_Base.cpp5
-rw-r--r--dep/acelite/ace/Ping_Socket.h6
-rw-r--r--dep/acelite/ace/Proactor.cpp102
-rw-r--r--dep/acelite/ace/Proactor.h54
-rw-r--r--dep/acelite/ace/Process.cpp23
-rw-r--r--dep/acelite/ace/Process.h2
-rw-r--r--dep/acelite/ace/Process_Manager.cpp9
-rw-r--r--dep/acelite/ace/Process_Manager.h12
-rw-r--r--dep/acelite/ace/Process_Semaphore.h12
-rw-r--r--dep/acelite/ace/Profile_Timer.cpp6
-rw-r--r--dep/acelite/ace/Profile_Timer.h6
-rw-r--r--dep/acelite/ace/QoS/README10
-rw-r--r--dep/acelite/ace/QtReactor/ACE_QtReactor_export.h58
-rw-r--r--dep/acelite/ace/QtReactor/QtReactor.cpp644
-rw-r--r--dep/acelite/ace/QtReactor/QtReactor.h226
-rw-r--r--dep/acelite/ace/RB_Tree.cpp13
-rw-r--r--dep/acelite/ace/RB_Tree.inl24
-rw-r--r--dep/acelite/ace/README26
-rw-r--r--dep/acelite/ace/RW_Mutex.h12
-rw-r--r--dep/acelite/ace/Reactor.h41
-rw-r--r--dep/acelite/ace/Recursive_Thread_Mutex.h18
-rw-r--r--dep/acelite/ace/Registry_Name_Space.h6
-rw-r--r--dep/acelite/ace/Remote_Name_Space.h8
-rw-r--r--dep/acelite/ace/Remote_Tokens.h4
-rw-r--r--dep/acelite/ace/SOCK_Dgram.cpp10
-rw-r--r--dep/acelite/ace/SOCK_Dgram.h5
-rw-r--r--dep/acelite/ace/SOCK_Dgram_Bcast.cpp4
-rw-r--r--dep/acelite/ace/SOCK_Dgram_Mcast.cpp243
-rw-r--r--dep/acelite/ace/SOCK_Dgram_Mcast.h255
-rw-r--r--dep/acelite/ace/SOCK_Dgram_Mcast.inl14
-rw-r--r--dep/acelite/ace/SOCK_Stream.h7
-rw-r--r--dep/acelite/ace/SPIPE_Acceptor.h4
-rw-r--r--dep/acelite/ace/SPIPE_Stream.inl6
-rw-r--r--dep/acelite/ace/SSL/SSL_Context.cpp10
-rw-r--r--dep/acelite/ace/SSL/SSL_Context.h47
-rw-r--r--dep/acelite/ace/SSL/SSL_Context.inl6
-rw-r--r--dep/acelite/ace/SSL/SSL_Initializer.cpp44
-rw-r--r--dep/acelite/ace/SSL/SSL_Initializer.h52
-rw-r--r--dep/acelite/ace/SString.cpp12
-rw-r--r--dep/acelite/ace/SString.h6
-rw-r--r--dep/acelite/ace/Sample_History.cpp22
-rw-r--r--dep/acelite/ace/Sample_History.h10
-rw-r--r--dep/acelite/ace/Sample_History.inl15
-rw-r--r--dep/acelite/ace/Sched_Params.cpp12
-rw-r--r--dep/acelite/ace/Select_Reactor_Base.cpp8
-rw-r--r--dep/acelite/ace/Select_Reactor_Base.h4
-rw-r--r--dep/acelite/ace/Select_Reactor_T.cpp41
-rw-r--r--dep/acelite/ace/Select_Reactor_T.h16
-rw-r--r--dep/acelite/ace/Select_Reactor_T.inl4
-rw-r--r--dep/acelite/ace/Service_Config.cpp5
-rw-r--r--dep/acelite/ace/Service_Config.h10
-rw-r--r--dep/acelite/ace/Service_Gestalt.cpp2
-rw-r--r--dep/acelite/ace/Service_Object.cpp8
-rw-r--r--dep/acelite/ace/Service_Types.cpp15
-rw-r--r--dep/acelite/ace/Signal.h17
-rw-r--r--dep/acelite/ace/Sock_Connect.cpp114
-rw-r--r--dep/acelite/ace/Stack_Trace.cpp30
-rw-r--r--dep/acelite/ace/Stats.cpp9
-rw-r--r--dep/acelite/ace/Strategies.h33
-rw-r--r--dep/acelite/ace/Strategies_T.cpp15
-rw-r--r--dep/acelite/ace/Stream.cpp271
-rw-r--r--dep/acelite/ace/Stream.h65
-rw-r--r--dep/acelite/ace/Stream.inl38
-rw-r--r--dep/acelite/ace/Stream_Modules.cpp207
-rw-r--r--dep/acelite/ace/Stream_Modules.h20
-rw-r--r--dep/acelite/ace/String_Base.cpp6
-rw-r--r--dep/acelite/ace/String_Base.h2
-rw-r--r--dep/acelite/ace/Svc_Conf.y5
-rw-r--r--dep/acelite/ace/Svc_Conf_y.cpp7
-rw-r--r--dep/acelite/ace/Svc_Handler.cpp5
-rw-r--r--dep/acelite/ace/Synch_Traits.h11
-rw-r--r--dep/acelite/ace/TLI.inl4
-rw-r--r--dep/acelite/ace/TP_Reactor.cpp44
-rw-r--r--dep/acelite/ace/TP_Reactor.h4
-rw-r--r--dep/acelite/ace/TSS_Adapter.cpp9
-rw-r--r--dep/acelite/ace/TSS_Adapter.h5
-rw-r--r--dep/acelite/ace/TSS_T.cpp4
-rw-r--r--dep/acelite/ace/TTY_IO.h4
-rw-r--r--dep/acelite/ace/Task.cpp35
-rw-r--r--dep/acelite/ace/Task_Ex_T.cpp42
-rw-r--r--dep/acelite/ace/Task_Ex_T.h22
-rw-r--r--dep/acelite/ace/Task_Ex_T.inl68
-rw-r--r--dep/acelite/ace/Task_T.cpp43
-rw-r--r--dep/acelite/ace/Task_T.h40
-rw-r--r--dep/acelite/ace/Task_T.inl86
-rw-r--r--dep/acelite/ace/Thread.inl4
-rw-r--r--dep/acelite/ace/Thread_Adapter.cpp18
-rw-r--r--dep/acelite/ace/Thread_Adapter.h3
-rw-r--r--dep/acelite/ace/Thread_Control.cpp7
-rw-r--r--dep/acelite/ace/Thread_Control.h15
-rw-r--r--dep/acelite/ace/Thread_Exit.cpp4
-rw-r--r--dep/acelite/ace/Thread_Hook.cpp7
-rw-r--r--dep/acelite/ace/Thread_Hook.h7
-rw-r--r--dep/acelite/ace/Thread_Manager.cpp58
-rw-r--r--dep/acelite/ace/Thread_Manager.h9
-rw-r--r--dep/acelite/ace/Thread_Mutex.h3
-rw-r--r--dep/acelite/ace/Thread_Semaphore.h4
-rw-r--r--dep/acelite/ace/Throughput_Stats.cpp17
-rw-r--r--dep/acelite/ace/Throughput_Stats.h6
-rw-r--r--dep/acelite/ace/Time_Policy.cpp34
-rw-r--r--dep/acelite/ace/Time_Policy.h172
-rw-r--r--dep/acelite/ace/Time_Policy.inl95
-rw-r--r--dep/acelite/ace/Time_Policy_T.cpp27
-rw-r--r--dep/acelite/ace/Time_Policy_T.h77
-rw-r--r--dep/acelite/ace/Time_Policy_T.inl32
-rw-r--r--dep/acelite/ace/Time_Value.cpp69
-rw-r--r--dep/acelite/ace/Time_Value.h66
-rw-r--r--dep/acelite/ace/Time_Value.inl32
-rw-r--r--dep/acelite/ace/Time_Value_T.cpp52
-rw-r--r--dep/acelite/ace/Time_Value_T.h194
-rw-r--r--dep/acelite/ace/Time_Value_T.inl94
-rw-r--r--dep/acelite/ace/Timeprobe_T.cpp5
-rw-r--r--dep/acelite/ace/Timer_Hash.h16
-rw-r--r--dep/acelite/ace/Timer_Hash_T.cpp174
-rw-r--r--dep/acelite/ace/Timer_Hash_T.h56
-rw-r--r--dep/acelite/ace/Timer_Heap.h13
-rw-r--r--dep/acelite/ace/Timer_Heap_T.cpp192
-rw-r--r--dep/acelite/ace/Timer_Heap_T.h42
-rw-r--r--dep/acelite/ace/Timer_List.h11
-rw-r--r--dep/acelite/ace/Timer_List_T.cpp119
-rw-r--r--dep/acelite/ace/Timer_List_T.h30
-rw-r--r--dep/acelite/ace/Timer_Queue.h6
-rw-r--r--dep/acelite/ace/Timer_Queue_Adapters.cpp13
-rw-r--r--dep/acelite/ace/Timer_Queue_Adapters.inl4
-rw-r--r--dep/acelite/ace/Timer_Queue_Iterator.cpp58
-rw-r--r--dep/acelite/ace/Timer_Queue_Iterator.h200
-rw-r--r--dep/acelite/ace/Timer_Queue_Iterator.inl135
-rw-r--r--dep/acelite/ace/Timer_Queue_T.cpp327
-rw-r--r--dep/acelite/ace/Timer_Queue_T.h436
-rw-r--r--dep/acelite/ace/Timer_Queue_T.inl180
-rw-r--r--dep/acelite/ace/Timer_Queuefwd.h14
-rw-r--r--dep/acelite/ace/Timer_Wheel.h10
-rw-r--r--dep/acelite/ace/Timer_Wheel_T.cpp178
-rw-r--r--dep/acelite/ace/Timer_Wheel_T.h42
-rw-r--r--dep/acelite/ace/TkReactor/ACE_TkReactor_export.h58
-rw-r--r--dep/acelite/ace/TkReactor/TkReactor.cpp438
-rw-r--r--dep/acelite/ace/TkReactor/TkReactor.h136
-rw-r--r--dep/acelite/ace/Token.cpp5
-rw-r--r--dep/acelite/ace/Truncate.h46
-rw-r--r--dep/acelite/ace/UUID.cpp12
-rw-r--r--dep/acelite/ace/Unbounded_Set_Ex.cpp4
-rw-r--r--dep/acelite/ace/Value_Ptr.h27
-rw-r--r--dep/acelite/ace/Version.h10
-rw-r--r--dep/acelite/ace/WFMO_Reactor.cpp25
-rw-r--r--dep/acelite/ace/WFMO_Reactor.h58
-rw-r--r--dep/acelite/ace/WIN32_Asynch_IO.cpp12
-rw-r--r--dep/acelite/ace/XML_Utils/XMLSchema/Traversal.hpp76
-rw-r--r--dep/acelite/ace/XML_Utils/XMLSchema/Traversal.ipp10
-rw-r--r--dep/acelite/ace/XML_Utils/XMLSchema/TypeInfo.hpp22
-rw-r--r--dep/acelite/ace/XML_Utils/XMLSchema/TypeInfo.ipp7
-rw-r--r--dep/acelite/ace/XML_Utils/XMLSchema/TypeInfo.tpp98
-rw-r--r--dep/acelite/ace/XML_Utils/XMLSchema/Types.hpp669
-rw-r--r--dep/acelite/ace/XML_Utils/XMLSchema/Types.ipp8
-rw-r--r--dep/acelite/ace/XML_Utils/XMLSchema/Writer.hpp158
-rw-r--r--dep/acelite/ace/XML_Utils/XMLSchema/Writer.ipp10
-rw-r--r--dep/acelite/ace/XML_Utils/XMLSchema/id_map.hpp144
-rw-r--r--dep/acelite/ace/XML_Utils/XML_Error_Handler.cpp77
-rw-r--r--dep/acelite/ace/XML_Utils/XML_Error_Handler.h60
-rw-r--r--dep/acelite/ace/XML_Utils/XML_Helper.h99
-rw-r--r--dep/acelite/ace/XML_Utils/XML_Schema_Resolver.cpp77
-rw-r--r--dep/acelite/ace/XML_Utils/XML_Schema_Resolver.h110
-rw-r--r--dep/acelite/ace/XML_Utils/XML_Typedefs.cpp8
-rw-r--r--dep/acelite/ace/XML_Utils/XML_Typedefs.h32
-rw-r--r--dep/acelite/ace/XML_Utils/XML_Utils_Export.h58
-rw-r--r--dep/acelite/ace/XML_Utils/XSCRT/Elements.hpp569
-rw-r--r--dep/acelite/ace/XML_Utils/XSCRT/ExtendedTypeInfo.hpp182
-rw-r--r--dep/acelite/ace/XML_Utils/XSCRT/ExtendedTypeInfo.ipp141
-rw-r--r--dep/acelite/ace/XML_Utils/XSCRT/Parser.hpp64
-rw-r--r--dep/acelite/ace/XML_Utils/XSCRT/Traversal.hpp265
-rw-r--r--dep/acelite/ace/XML_Utils/XSCRT/Traversal.tpp195
-rw-r--r--dep/acelite/ace/XML_Utils/XSCRT/Writer.hpp78
-rw-r--r--dep/acelite/ace/XML_Utils/XSCRT/XML.hpp490
-rw-r--r--dep/acelite/ace/XML_Utils/XSCRT/XMLSchema.hpp588
-rw-r--r--dep/acelite/ace/XML_Utils/XercesString.cpp167
-rw-r--r--dep/acelite/ace/XML_Utils/XercesString.h82
-rw-r--r--dep/acelite/ace/XtReactor/ACE_XtReactor_export.h58
-rw-r--r--dep/acelite/ace/XtReactor/XtReactor.cpp468
-rw-r--r--dep/acelite/ace/XtReactor/XtReactor.h147
-rw-r--r--dep/acelite/ace/ace_wchar.h10
-rw-r--r--dep/acelite/ace/config-WinCE.h6
-rw-r--r--dep/acelite/ace/config-aix-5.x.h3
-rw-r--r--dep/acelite/ace/config-aix-7.h29
-rw-r--r--dep/acelite/ace/config-android.h (renamed from dep/acelite/ace/config-linux-common.h)321
-rw-r--r--dep/acelite/ace/config-cray.h205
-rw-r--r--dep/acelite/ace/config-cxx-common.h86
-rw-r--r--dep/acelite/ace/config-cygwin32.h5
-rw-r--r--dep/acelite/ace/config-doxygen.h119
-rw-r--r--dep/acelite/ace/config-freebsd.h42
-rw-r--r--dep/acelite/ace/config-g++-common.h21
-rw-r--r--dep/acelite/ace/config-ghs-common.h43
-rw-r--r--dep/acelite/ace/config-hpux-11.00.h25
-rw-r--r--dep/acelite/ace/config-irix6.5.x-sgic++.h18
-rw-r--r--dep/acelite/ace/config-irix6.x-common.h254
-rw-r--r--dep/acelite/ace/config-irix6.x-g++.h15
-rw-r--r--dep/acelite/ace/config-irix6.x-sgic++.h36
-rw-r--r--dep/acelite/ace/config-kfreebsd.h12
-rw-r--r--dep/acelite/ace/config-linux.h468
-rw-r--r--dep/acelite/ace/config-lite.h14
-rw-r--r--dep/acelite/ace/config-lynxos.h129
-rw-r--r--dep/acelite/ace/config-macosx-iOS-hardware.h (renamed from dep/acelite/ace/config-macosx-iphone-hardware.h)6
-rw-r--r--dep/acelite/ace/config-macosx-iOS-simulator.h9
-rw-r--r--dep/acelite/ace/config-macosx-iphone-simulator.h9
-rw-r--r--dep/acelite/ace/config-macosx-leopard.h4
-rw-r--r--dep/acelite/ace/config-macosx-lion.h19
-rw-r--r--dep/acelite/ace/config-macosx.h4
-rw-r--r--dep/acelite/ace/config-macros.h14
-rw-r--r--dep/acelite/ace/config-minimal.h39
-rw-r--r--dep/acelite/ace/config-mvs.h124
-rw-r--r--dep/acelite/ace/config-netbsd.h5
-rw-r--r--dep/acelite/ace/config-openbsd.h97
-rw-r--r--dep/acelite/ace/config-openvms.h8
-rw-r--r--dep/acelite/ace/config-qnx-neutrino.h136
-rw-r--r--dep/acelite/ace/config-qnx-rtp-common.h50
-rw-r--r--dep/acelite/ace/config-qnx-rtp-pre62x.h152
-rw-r--r--dep/acelite/ace/config-qnx-rtp.h25
-rw-r--r--dep/acelite/ace/config-qnx.h (renamed from dep/acelite/ace/config-qnx-rtp-62x.h)107
-rw-r--r--dep/acelite/ace/config-rtems.h4
-rw-r--r--dep/acelite/ace/config-sco-5.0.0-nothread.h12
-rw-r--r--dep/acelite/ace/config-sco-5.0.0.h90
-rw-r--r--dep/acelite/ace/config-sunos5.10.h15
-rw-r--r--dep/acelite/ace/config-sunos5.4-g++.h5
-rw-r--r--dep/acelite/ace/config-sunos5.4-sunc++-4.x.h5
-rw-r--r--dep/acelite/ace/config-sunos5.5.h52
-rw-r--r--dep/acelite/ace/config-sunos5.6.h3
-rw-r--r--dep/acelite/ace/config-sunos5.7.h13
-rw-r--r--dep/acelite/ace/config-tandem-nsk-mips-v2.h384
-rw-r--r--dep/acelite/ace/config-tandem-nsk-mips-v3.h454
-rw-r--r--dep/acelite/ace/config-tandem.h189
-rw-r--r--dep/acelite/ace/config-tru64.h151
-rw-r--r--dep/acelite/ace/config-unixware-7.1.0.h406
-rw-r--r--dep/acelite/ace/config-unixware-7.1.0.udk.h457
-rw-r--r--dep/acelite/ace/config-visualage.h20
-rw-r--r--dep/acelite/ace/config-vxworks.h6
-rw-r--r--dep/acelite/ace/config-vxworks6.4.h5
-rw-r--r--dep/acelite/ace/config-vxworks6.8.h10
-rw-r--r--dep/acelite/ace/config-vxworks6.9.h33
-rw-r--r--dep/acelite/ace/config-win32-borland.h172
-rw-r--r--dep/acelite/ace/config-win32-common.h39
-rw-r--r--dep/acelite/ace/config-win32-ghs.h93
-rw-r--r--dep/acelite/ace/config-win32-interix.h6
-rw-r--r--dep/acelite/ace/config-win32-mingw.h30
-rw-r--r--dep/acelite/ace/config-win32-msvc-10.h11
-rw-r--r--dep/acelite/ace/config-win32-msvc-7.h5
-rw-r--r--dep/acelite/ace/config-win32-msvc-8.h13
-rw-r--r--dep/acelite/ace/config-win32-msvc-9.h18
-rw-r--r--dep/acelite/ace/config-win32-msvc.h7
-rw-r--r--dep/acelite/ace/config-win32.h17
-rw-r--r--dep/acelite/ace/config-windows.h5
-rw-r--r--dep/acelite/ace/gethrtime.cpp60
-rw-r--r--dep/acelite/ace/os_include/os_dirent.h6
-rw-r--r--dep/acelite/ace/os_include/os_dlfcn.h41
-rw-r--r--dep/acelite/ace/os_include/os_fcntl.h7
-rw-r--r--dep/acelite/ace/os_include/os_ifaddrs.h43
-rw-r--r--dep/acelite/ace/os_include/os_limits.h9
-rw-r--r--dep/acelite/ace/os_include/os_netdb.h6
-rw-r--r--dep/acelite/ace/os_include/os_pthread.h60
-rw-r--r--dep/acelite/ace/os_include/os_pwd.h10
-rw-r--r--dep/acelite/ace/os_include/os_signal.h16
-rw-r--r--dep/acelite/ace/os_include/os_stdio.h5
-rw-r--r--dep/acelite/ace/os_include/os_stdlib.h10
-rw-r--r--dep/acelite/ace/os_include/os_string.h6
-rw-r--r--dep/acelite/ace/os_include/os_wchar.h10
-rw-r--r--dep/acelite/ace/os_include/sys/os_resource.h13
-rw-r--r--dep/acelite/ace/os_include/sys/os_select.h4
-rw-r--r--dep/acelite/ace/os_include/sys/os_stat.h3
-rw-r--r--dep/acelite/ace/os_include/sys/os_time.h12
-rw-r--r--dep/acelite/ace/os_include/sys/os_types.h14
549 files changed, 28484 insertions, 13943 deletions
diff --git a/dep/PackageList.txt b/dep/PackageList.txt
index 21d6c596b51..de08e0a461e 100644
--- a/dep/PackageList.txt
+++ b/dep/PackageList.txt
@@ -2,7 +2,7 @@ TrinityCore uses (parts of or in whole) the following opensource software :
ACE (ADAPTIVE Communication Environment)
http://www.cs.wustl.edu/~schmidt/ACE.html
- Version: 5.8.3
+ Version: 6.1.4
bzip2 (a freely available, patent free, high-quality data compressor)
http://www.bzip.org/
diff --git a/dep/acelite/6.1.4_tc_changes.diff b/dep/acelite/6.1.4_tc_changes.diff
new file mode 100644
index 00000000000..a0caff7ab7d
--- /dev/null
+++ b/dep/acelite/6.1.4_tc_changes.diff
@@ -0,0 +1,407 @@
+diff --git a/dep/acelite/ace/CMakeLists.txt b/dep/acelite/ace/CMakeLists.txt
+new file mode 100644
+index 0000000..acd3d5a
+--- /dev/null
++++ b/dep/acelite/ace/CMakeLists.txt
+@@ -0,0 +1,337 @@
++# Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/>
++#
++# This file is free software; as a special exception the author 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.
++
++# NOTE: Do not use glob here, it would include files we don't want
++set(ace_STAT_SRCS
++ PrecompiledHeaders/WinAcePCH.cpp
++ ACE.cpp
++ ACE_crc32.cpp
++ ACE_crc_ccitt.cpp
++ ace_wchar.cpp
++ Activation_Queue.cpp
++ Active_Map_Manager.cpp
++ Addr.cpp
++ Argv_Type_Converter.cpp
++ Assert.cpp
++ Asynch_IO.cpp
++ Asynch_IO_Impl.cpp
++ Asynch_Pseudo_Task.cpp
++ ATM_Acceptor.cpp
++ ATM_Addr.cpp
++ ATM_Connector.cpp
++ ATM_Params.cpp
++ ATM_QoS.cpp
++ ATM_Stream.cpp
++ Atomic_Op.cpp
++ Atomic_Op_Sparc.c
++ Auto_Event.cpp
++ Barrier.cpp
++ Base_Thread_Adapter.cpp
++ Based_Pointer_Repository.cpp
++ Basic_Stats.cpp
++ Basic_Types.cpp
++ Capabilities.cpp
++ CDR_Base.cpp
++ CDR_Size.cpp
++ CDR_Stream.cpp
++ Cleanup.cpp
++ Codecs.cpp
++ Codeset_IBM1047.cpp
++ Codeset_Registry.cpp
++ Codeset_Registry_db.cpp
++ Condition_Recursive_Thread_Mutex.cpp
++ Condition_Thread_Mutex.cpp
++ Configuration.cpp
++ Configuration_Import_Export.cpp
++ Connection_Recycling_Strategy.cpp
++ Containers.cpp
++ Copy_Disabled.cpp
++ Date_Time.cpp
++ DEV.cpp
++ DEV_Addr.cpp
++ DEV_Connector.cpp
++ DEV_IO.cpp
++ Dev_Poll_Reactor.cpp
++ Dirent.cpp
++ Dirent_Selector.cpp
++ DLL.cpp
++ DLL_Manager.cpp
++ Dump.cpp
++ Dynamic.cpp
++ Dynamic_Message_Strategy.cpp
++ Dynamic_Service_Base.cpp
++ Dynamic_Service_Dependency.cpp
++ Encoding_Converter.cpp
++ Encoding_Converter_Factory.cpp
++ Event.cpp
++ Event_Handler.cpp
++ Event_Handler_Handle_Timeout_Upcall.cpp
++ FIFO.cpp
++ FIFO_Recv.cpp
++ FIFO_Recv_Msg.cpp
++ FIFO_Send.cpp
++ FIFO_Send_Msg.cpp
++ FILE.cpp
++ FILE_Addr.cpp
++ FILE_Connector.cpp
++ FILE_IO.cpp
++ File_Lock.cpp
++ Filecache.cpp
++ Flag_Manip.cpp
++ Framework_Component.cpp
++ Functor.cpp
++ Functor_String.cpp
++ Get_Opt.cpp
++ Handle_Ops.cpp
++ Handle_Set.cpp
++ Hashable.cpp
++ High_Res_Timer.cpp
++ ICMP_Socket.cpp
++ INET_Addr.cpp
++ Init_ACE.cpp
++ IO_Cntl_Msg.cpp
++ IO_SAP.cpp
++ IOStream.cpp
++ IPC_SAP.cpp
++ Lib_Find.cpp
++ Local_Memory_Pool.cpp
++ Local_Name_Space.cpp
++ Local_Tokens.cpp
++ Lock.cpp
++ Log_Msg.cpp
++ Log_Msg_Backend.cpp
++ Log_Msg_Callback.cpp
++ Log_Msg_IPC.cpp
++ Log_Msg_NT_Event_Log.cpp
++ Log_Msg_UNIX_Syslog.cpp
++ Log_Record.cpp
++ Logging_Strategy.cpp
++ LSOCK.cpp
++ LSOCK_Acceptor.cpp
++ LSOCK_CODgram.cpp
++ LSOCK_Connector.cpp
++ LSOCK_Dgram.cpp
++ LSOCK_Stream.cpp
++ Malloc.cpp
++ Malloc_Allocator.cpp
++ Manual_Event.cpp
++ MEM_Acceptor.cpp
++ MEM_Addr.cpp
++ MEM_Connector.cpp
++ MEM_IO.cpp
++ Mem_Map.cpp
++ MEM_SAP.cpp
++ MEM_Stream.cpp
++ Message_Block.cpp
++ Message_Queue.cpp
++ Message_Queue_NT.cpp
++ Message_Queue_Vx.cpp
++ Method_Request.cpp
++ MMAP_Memory_Pool.cpp
++ Monitor_Admin.cpp
++ Monitor_Admin_Manager.cpp
++ Monitor_Base.cpp
++ Monitor_Control_Action.cpp
++ Monitor_Control_Types.cpp
++ Monitor_Point_Registry.cpp
++ Monitor_Size.cpp
++ Msg_WFMO_Reactor.cpp
++ Multihomed_INET_Addr.cpp
++ Mutex.cpp
++ Name_Proxy.cpp
++ Name_Request_Reply.cpp
++ Name_Space.cpp
++ Naming_Context.cpp
++ Netlink_Addr.cpp
++ Notification_Queue.cpp
++ Notification_Strategy.cpp
++ NT_Service.cpp
++ Obchunk.cpp
++ Object_Manager.cpp
++ Object_Manager_Base.cpp
++ OS_Errno.cpp
++ OS_Log_Msg_Attributes.cpp
++ OS_main.cpp
++ OS_NS_arpa_inet.cpp
++ OS_NS_ctype.cpp
++ OS_NS_dirent.cpp
++ OS_NS_dlfcn.cpp
++ OS_NS_errno.cpp
++ OS_NS_fcntl.cpp
++ OS_NS_math.cpp
++ OS_NS_netdb.cpp
++ OS_NS_poll.cpp
++ OS_NS_pwd.cpp
++ OS_NS_regex.cpp
++ OS_NS_signal.cpp
++ OS_NS_stdio.cpp
++ OS_NS_stdlib.cpp
++ OS_NS_string.cpp
++ OS_NS_strings.cpp
++ OS_NS_stropts.cpp
++ OS_NS_sys_mman.cpp
++ OS_NS_sys_msg.cpp
++ OS_NS_sys_resource.cpp
++ OS_NS_sys_select.cpp
++ OS_NS_sys_sendfile.cpp
++ OS_NS_sys_shm.cpp
++ OS_NS_sys_socket.cpp
++ OS_NS_sys_stat.cpp
++ OS_NS_sys_time.cpp
++ OS_NS_sys_uio.cpp
++ OS_NS_sys_utsname.cpp
++ OS_NS_sys_wait.cpp
++ OS_NS_Thread.cpp
++ OS_NS_time.cpp
++ OS_NS_unistd.cpp
++ OS_NS_wchar.cpp
++ OS_QoS.cpp
++ OS_Thread_Adapter.cpp
++ OS_TLI.cpp
++ Pagefile_Memory_Pool.cpp
++ Parse_Node.cpp
++ PI_Malloc.cpp
++ Ping_Socket.cpp
++ Pipe.cpp
++ POSIX_Asynch_IO.cpp
++ POSIX_CB_Proactor.cpp
++ POSIX_Proactor.cpp
++ Priority_Reactor.cpp
++ Proactor.cpp
++ Proactor_Impl.cpp
++ Process.cpp
++ Process_Manager.cpp
++ Process_Mutex.cpp
++ Process_Semaphore.cpp
++ Profile_Timer.cpp
++ Reactor.cpp
++ Reactor_Impl.cpp
++ Reactor_Notification_Strategy.cpp
++ Reactor_Timer_Interface.cpp
++ Read_Buffer.cpp
++ Recursive_Thread_Mutex.cpp
++ Recyclable.cpp
++ Registry.cpp
++ Registry_Name_Space.cpp
++ Remote_Name_Space.cpp
++ Remote_Tokens.cpp
++ Rtems_init.c
++ RW_Mutex.cpp
++ RW_Process_Mutex.cpp
++ RW_Thread_Mutex.cpp
++ Sample_History.cpp
++ Sbrk_Memory_Pool.cpp
++ Sched_Params.cpp
++ Select_Reactor_Base.cpp
++ Semaphore.cpp
++ Service_Config.cpp
++ Service_Gestalt.cpp
++ Service_Manager.cpp
++ Service_Object.cpp
++ Service_Repository.cpp
++ Service_Types.cpp
++ Shared_Memory.cpp
++ Shared_Memory_MM.cpp
++ Shared_Memory_Pool.cpp
++ Shared_Memory_SV.cpp
++ Shared_Object.cpp
++ Sig_Adapter.cpp
++ Sig_Handler.cpp
++ Signal.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_Netlink.cpp
++ SOCK_SEQPACK_Acceptor.cpp
++ SOCK_SEQPACK_Association.cpp
++ SOCK_SEQPACK_Connector.cpp
++ SOCK_Stream.cpp
++ SPIPE.cpp
++ SPIPE_Acceptor.cpp
++ SPIPE_Addr.cpp
++ SPIPE_Connector.cpp
++ SPIPE_Stream.cpp
++ SString.cpp
++ Stack_Trace.cpp
++ Stats.cpp
++ String_Base_Const.cpp
++ SUN_Proactor.cpp
++ SV_Message.cpp
++ SV_Message_Queue.cpp
++ SV_Semaphore_Complex.cpp
++ SV_Semaphore_Simple.cpp
++ SV_Shared_Memory.cpp
++ Svc_Conf_Lexer.cpp
++ Svc_Conf_y.cpp
++ Synch_Options.cpp
++ System_Time.cpp
++ Task.cpp
++ Thread.cpp
++ Thread_Adapter.cpp
++ Thread_Control.cpp
++ Thread_Exit.cpp
++ Thread_Hook.cpp
++ Thread_Manager.cpp
++ Thread_Mutex.cpp
++ Thread_Semaphore.cpp
++ Throughput_Stats.cpp
++ Time_Policy.cpp
++ Time_Value.cpp
++ Timeprobe.cpp
++ TLI.cpp
++ TLI_Acceptor.cpp
++ TLI_Connector.cpp
++ TLI_Stream.cpp
++ Token.cpp
++ Token_Collection.cpp
++ Token_Invariants.cpp
++ Token_Manager.cpp
++ Token_Request_Reply.cpp
++ TP_Reactor.cpp
++ Trace.cpp
++ TSS_Adapter.cpp
++ TTY_IO.cpp
++ UNIX_Addr.cpp
++ UPIPE_Acceptor.cpp
++ UPIPE_Connector.cpp
++ UPIPE_Stream.cpp
++ UTF16_Encoding_Converter.cpp
++ UTF32_Encoding_Converter.cpp
++ UTF8_Encoding_Converter.cpp
++ UUID.cpp
++ WFMO_Reactor.cpp
++ WIN32_Asynch_IO.cpp
++ WIN32_Proactor.cpp
++ XML_Svc_Conf.cpp
++ XTI_ATM_Mcast.cpp
++)
++
++include_directories(
++ ${CMAKE_SOURCE_DIR}/dep/acelite
++ ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders
++ ${CMAKE_SOURCE_DIR}/dep/zlib
++)
++
++# Needed for PCH support
++set_source_files_properties(Atomic_Op_Sparc.c Rtems_init.c PROPERTIES LANGUAGE CXX)
++
++add_definitions(-DACE_BUILD_DLL)
++
++add_library(ace SHARED ${ace_STAT_SRCS})
++
++add_native_precompiled_header(ace ${CMAKE_CURRENT_SOURCE_DIR}/PrecompiledHeaders/WinAcePCH)
++
++install(TARGETS ace RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}")
+diff --git a/dep/acelite/ace/PrecompiledHeaders/WinAcePCH.cpp b/dep/acelite/ace/PrecompiledHeaders/WinAcePCH.cpp
+new file mode 100644
+index 0000000..139597f
+--- /dev/null
++++ b/dep/acelite/ace/PrecompiledHeaders/WinAcePCH.cpp
+@@ -0,0 +1,2 @@
++
++
+diff --git a/dep/acelite/ace/PrecompiledHeaders/WinAcePCH.h b/dep/acelite/ace/PrecompiledHeaders/WinAcePCH.h
+new file mode 100644
+index 0000000..6ff97bf
+--- /dev/null
++++ b/dep/acelite/ace/PrecompiledHeaders/WinAcePCH.h
+@@ -0,0 +1,17 @@
++
++#ifndef WIN_ACE_PCH
++#define WIN_ACE_PCH
++
++#include "ace/ACE.h"
++
++#include "ace/Synch_Traits.h"
++#include "ace/Svc_Handler.h"
++#include "ace/SOCK_Stream.h"
++#include "ace/SOCK_Acceptor.h"
++#include "ace/Acceptor.h"
++#include "ace/Thread_Mutex.h"
++#include "ace/Guard_T.h"
++#include "ace/Unbounded_Queue.h"
++#include "ace/Message_Block.h"
++
++#endif
+diff --git a/dep/acelite/ace/config-macros.h b/dep/acelite/ace/config-macros.h
+index f18c8e0..32e5894 100644
+--- a/dep/acelite/ace/config-macros.h
++++ b/dep/acelite/ace/config-macros.h
+@@ -21,7 +21,11 @@
+ #ifndef ACE_CONFIG_MACROS_H
+ #define ACE_CONFIG_MACROS_H
+
+-#include "ace/config.h"
++#ifdef _WIN32
++ #include "ace/config-win32.h"
++#else
++ #include "ace/config.h"
++#endif
+
+ #include "ace/Version.h"
+ #include "ace/Versioned_Namespace.h"
+diff --git a/dep/acelite/ace/config-win32-common.h b/dep/acelite/ace/config-win32-common.h
+index 50645a1..098ddbd 100644
+--- a/dep/acelite/ace/config-win32-common.h
++++ b/dep/acelite/ace/config-win32-common.h
+@@ -527,9 +527,9 @@
+ # else
+ # pragma comment(lib, "ws2_32.lib")
+ # pragma comment(lib, "mswsock.lib")
+-# if defined (ACE_HAS_IPV6)
++// # if defined (ACE_HAS_IPV6)
+ # pragma comment(lib, "iphlpapi.lib")
+-# endif
++// # endif
+ # endif /* ACE_HAS_WINCE */
+ # endif /* _MSC_VER */
+
diff --git a/dep/acelite/COPYING b/dep/acelite/COPYING
index 551231de6cf..226708461b9 100644
--- a/dep/acelite/COPYING
+++ b/dep/acelite/COPYING
@@ -8,7 +8,7 @@
(henceforth referred to as "DOC software") are copyrighted by
[5]Douglas C. Schmidt and his [6]research group at [7]Washington
University, [8]University of California, Irvine, and [9]Vanderbilt
- University, Copyright (c) 1993-2009, all rights reserved. Since DOC
+ University, Copyright (c) 1993-2012, all rights reserved. Since DOC
software is open-source, freely available software, you are free to
use, modify, copy, and distribute--perpetually and irrevocably--the
DOC software source code and object code produced from the source, as
diff --git a/dep/acelite/ChangeLog b/dep/acelite/ChangeLog
index ec8c3ded3c5..7381bdcca07 100644
--- a/dep/acelite/ChangeLog
+++ b/dep/acelite/ChangeLog
@@ -1,3017 +1,2587 @@
-Wed Oct 27 12:01:05 CEST 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Wed Aug 29 08:16:04 CEST 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ACE version 5.8.3 released.
+ * ACE version 6.1.4 released.
-Tue Oct 26 11:21:35 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Mon Aug 27 20:38:00 UTC 2012 Steve Huston <shuston@riverace.com>
- * bin/diff-builds-and-group-fixed-tests-only.sh:
- Fixed DANCE_ROOT, could cause problems with the test stats email
-
-Mon Oct 25 21:01:02 UTC 2010 Olli Savia <ops@iki.fi>
-
- * NEWS:
- Updated.
-
-Mon Oct 25 14:07:15 UTC 2010 Phil Mesnier <mesnier_p@ociweb.com>
+ * include/makeinclude/platform_linux.GNU: Make CC and CXX setting
+ conditional again. Conditional behavior is relied upon by users.
+ Reverts the following:
+ Tue Mar 1 11:31:55 UTC 2011 Olli Savia <ops@iki.fi>
- * ace/Service_Gestalt.cpp:
- Another fix to error processing behavior. If the result of
- process_directives() was > 0, that value was replaced by the
- result of process_commandline_directives(), which is contrary to
- the expected behavior. Now the result is the sum of these to
- return values, unless either returns -1, then the result is just
- -1.
+Mon Aug 27 09:43:43 UTC 2012 johnny <jwillemsen@remedy.nl>
-Mon Oct 25 06:30:35 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * apps/JAWS/clients/WebSTONE/src/config.cache:
+ * apps/JAWS/clients/WebSTONE/src/config.log:
+ * apps/JAWS/clients/WebSTONE/src/config.status:
+ Removed these files, generated by configure and
+ shouldn't be stored in the repository
- * ace/Atomic_Op_T.h:
- * ace/Auto_IncDec_T.h:
- Doxygen changes
+Fri Aug 24 10:27:22 UTC 2012 johnny <jwillemsen@remedy.nl>
-Sun Oct 24 12:35:28 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * examples/APG/Streams/CommandModule.h:
+ * tests/Service_Config_Stream_Test.cpp:
+ Add ACE_System_Time_Policy as second template argument
+ to ACE_Module, the default template argument doesn't
+ work with clang which seems to be a bug in that
+ compiler
- * ace/Event_Handler.h:
- * ace/Reactor.h:
- * ace/Reactor_Notification_Strategy.h:
- * ace/Read_Buffer.h:
- * ace/Registry_Name_Space.h:
- * ace/Remote_Tokens.h:
- Doxygen changes
+Thu Aug 23 12:33:35 UTC 2012 johnny <johnny@>
-Fri Oct 22 11:19:33 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * ace/Condition_Attributes.inl:
+ * ace/config-hpux-11.00.h:
+ Another fix for hpux ia64 v3
- * ace/Reactor.h:
- Doxygen changes
+Thu Aug 23 06:35:20 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
-Thu Oct 21 11:10:56 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * ace/Condition_Attributes.inl:
+ Only check for ACE_LACKS_MONOTONIC_TIME
- * ace/ACE.cpp:
- * ace/FILE_IO.h:
- * ace/Free_List.h:
- * ace/Handle_Set.h:
- * ace/Log_Msg.h:
- * ace/WIN32_Asynch_IO.h:
- Doxygen changes
+ * ace/Monotonic_Time_Policy.inl:
+ Layout change
-Wed Oct 20 18:19:51 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * ace/config-hpux-11.00.h:
+ Added ACE_LACKS_MONOTONIC_TIME
- * bin/fuzz.pl:
- If we just see dollarIddollar we trigger an error, svn:keywords is
- than lacking
+Wed Aug 22 11:50:22 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
-Wed Oct 20 16:07:09 UTC 2010 Steve Huston <shuston@riverace.com>
+ * ace/config-win32-common.h:
+ Added ACE_LACKS_CLOCK_MONOTONIC and
+ ACE_LACKS_CLOCK_REALTIME
- * ace/Timer_Queue_Adapters.cpp (ACE_Thread_Timer_Queue_Adapter::svc):
- * ace/Timer_Queue_T.cpp (expire):
- Temporarily release and reacquire the mutex around timer dispatch.
- This prevents a deadlock on user code with multiple threads doing
- timer-related operations.
+Wed Aug 22 06:13:12 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
-Wed Oct 20 09:22:46 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * ace/os_include/sys/os_time.h:
+ Fixed incorrect check in this file
- * bin/MakeProjectCreator/config/global.features:
- Add nddsmonitor as default to 0
+Tue Aug 21 16:55:13 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
-Wed Oct 20 09:19:25 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * ace/os_include/sys/os_time.h:
+ Introduced new ACE_LACKS_CLOCKID_T which is used to determine whether
+ we need to define clockid_t in ACE. Moved CLOCK_MONOTONIC and
+ CLOCK_REALTIME to file below
- * ace/Log_Msg.h:
+ * ace/os_include/sys/os_types.h:
+ Added CLOCK_MONOTONIC and CLOCK_REALTIME here and introduced new
+ ACE_LACKS_CLOCK_REALTIME and ACE_LACKS_CLOCK_MONOTONIC because on
+ for example HPUX CLOCK_REALTIME is not a define but part of an enum
- * bin/MakeProjectCreator/config/global.features:
+ * ace/config-win32-common.h:
+ Added ACE_LACKS_CLOCKID_T
- * tests/Time_Value_Test.cpp:
+Tue Aug 21 14:38:00 UTC 2012 Simon Massey <simon dot massey at prismtech dot com>
-Tue Oct 19 18:11:57 UTC 2010 Olli Savia <ops@iki.fi>
+ * protocols/ace/INet/SSL_CallbackManager.h:
+ Spelling in comment.
- * ace/Caching_Utility_T.cpp:
- Added missing include.
+Tue Aug 21 12:25:45 UTC 2012 Simon Massey <simon dot massey at prismtech dot com>
-Tue Oct 19 09:44:45 UTC 2010 Olli Savia <ops@iki.fi>
+ * ace/SSL/SSL_Context.h:
+ * ace/SSL/SSL_Context.inl:
- * ace/Caching_Utility_T.cpp:
- Use ACE::is_equal() to compare floating point values.
+ Solaris studio compilers amongst others were issuing warnings due to an
+ incorrect type of function pointer (i.e. not extern "C", but standard
+ C++ type) being stored/used of the form:
-Fri Oct 15 10:18:05 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ Warning (Anachronism): Formal argument callback of type
+ extern "C" int(*)(int,x509_store_ctx_st*)
+ in call to
+ SSL_CTX_set_verify(ssl_ctx_st*, int, extern "C" int(*)(int,x509_store_ctx_st*))
+ is being passed
+ int(*)(int,x509_store_ctx_st*)
- * tests/Bug_3911_Regression_Test.cpp:
- Fixed warning
+ when the C++ code was providing callback functions to certain C system SSL
+ library calls.
-Thu Oct 14 18:29:35 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ Unfortunatly you cannot specify extern "C" linkage anywhere inside a
+ class declaration or inside a function prototype for individual
+ parameters. I.e:
- * tests/run_test.lst:
- * tests/tests.mpc:
- 3911 doesn't work with ace_for_tao
+ class { extern "C" int (*callback_) (int, void *); };
-Thu Oct 14 13:15:00 UTC 2010 Martin Corino <mcorino@remedy.nl>
+ to store an extern "C" function pointer as a data member of the
+ class is illegal, as is:
- * ace/Process.h:
- * ace/Process.cpp:
- Changes to allow to dynamically define the max. number of cmdline args.
- The tao_idl compiler was running out of room in certain instances and
- the static max was very conservative.
+ void function (extern "C" int (*callback) (int, void *);
-Thu Oct 14 09:38:00 UTC 2010 Martin Corino <mcorino@remedy.nl>
+ to declare a function (or a class member) that takes a extern "C"
+ function pointer as a parameter.
- * tests/Bug_3911_Regression_Test.cpp:
- Wchar build fixes.
+ Since we need to specify an extern "C" function pointer as a parameter
+ to be stored in the class and handled by member functions, we are forced
+ to declare a typedef of that extern "C" function pointer outside of the
+ class that we can then use. Unfortunatly you also are not allowed to
+ simply add the extern "C" to the typedef itself, like this:
-Wed Oct 13 08:24:00 UTC 2010 Martin Corino <mcorino@remedy.nl>
+ typedef extern "C" int (*extern_C_callback_t) (int, void *);
- * tests/Bug_3911_Regression_Test.cpp:
- Wchar build fixes.
+ instead you have to place the typedef declaration inside an extern "C"
+ block, thus:
-Wed Oct 13 06:15:00 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ extern "C" {
+ typedef int (*extern_C_callback_t) (int, void *);
+ }
- * ace/Framework_Component.h:
- * ace/Framework_Component.inl:
- * ace/Framework_Component.cpp:
- * ace/Framework_Component_T.h:
- Use ACE_Copy_Disabled, change c-style cast to const cast, use
- sync macros instead of ACE_MT. Thanks to Ranjit Hande
- <hande at avaya dot com> for reporting the c-style cast warnings
+ This then results in the correct call type associated with the
+ function pointer which may then be used inside the function and
+ class declarations to remove these warnings and possiable incorrect
+ call methods undertaken via the STL C functions. A lot of different
+ compilers ignore extern "C" where it is not allowed, the only way
+ I have found to be universally understood is as stated above.
- * tests/Framework_Component_Test.h:
- Layout change
+ * protocols/ace/INet/SSL_CallbackManager.h:
+ * protocols/ace/INet/SSL_CallbackManager.cpp:
-Tue Oct 12 21:12:51 UTC 2010 Adam Mitz <mitza@ociweb.com>
+ Similar problems and interfacing to the changed calling type of the above
+ extern "C" function pointers. NOTE: just declaring a static function for
+ the class is NOT sufficient to obtain the correct extern "C" calling type.
+ We are therefore forced to declare friend functions external to the class
+ (as again we cannot have a extern "C" declaration inside a class even for
+ a static method) to do this job. Since these are extern "C" functions they
+ also of course cannot be overloaded, i.e. they are required to be unique
+ names. They also cannot be non-class static functions to make them private
+ to the cpp file as they need to actually be seen by the class declaration
+ to be made friends and therefore have to be included in the header file.
- * bin/DependencyGenerator/GNUObjectGenerator.pm:
+Tue Aug 21 12:20:43 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- Fixed incorrect Perl regex escaping from my previous commit.
+ * ace/os_include/sys/os_types.h:
+ Fixed HPUX problem
-Tue Oct 12 11:41:00 UTC 2010 Martin Corino <mcorino@remedy.nl>
+Tue Aug 21 02:45:07 UTC 2012 Phil Mesnier <mesnier_p@ociweb.com>
- * tests/Bug_3911_Regression_Test.cpp:
- Fuzz fixes.
+ * ace/config-macosx-leopard.h:
+ setclock not supported on current macs.
-Tue Oct 12 08:06:00 UTC 2010 Martin Corino <mcorino@remedy.nl>
+Mon Aug 20 18:07:25 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * tests/Bug_3911_Regression_Test.cpp:
- * tests/run_test.lst:
- * tests/tests.mpc:
- Added reproducer test for Bugzilla #3911.
-
-Mon Oct 11 16:31:12 UTC 2010 Adam Mitz <mitza@ociweb.com>
+ * ace/Global_Macros.h:
+ Doxyen fixes
- * bin/DependencyGenerator/GNUObjectGenerator.pm:
+ * bin/valgrind.supp:
+ Added another needed suppression
- If the source file contains '../', remove the directory part from
- the name of the object file (see gnu.mpd:383 OBJS make variable).
+Mon Aug 20 10:03:23 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
-Mon Oct 11 11:53:43 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * docs/ACE-monotonic-timer.html:
+ Fixed fuzz
- * ace/Dev_Poll_Reactor.cpp:
- * ace/Select_Reactor_T.cpp:
- Fixed problems with threads=0, thanks to Elez <elezsh at gmail dot com>
- for reporting this and providing a patch
+Mon Aug 20 09:03:22 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
-Fri Oct 8 11:19:44 UTC 2010 Olli Savia <ops@iki.fi>
+ * ace/Module.cpp:
+ Fixed possible memory leak and dead code, uncovered by Coverity scan
- * protocols/ace/RMCast/Flow.cpp:
- Added missing include.
+Mon Aug 20 08:36:46 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
-Fri Oct 8 08:42:37 UTC 2010 Olli Savia <ops@iki.fi>
+ * docs/ACE-monotonic-timer.html:
+ New document describing the ACE monotonic timer support for conditions,
+ message queues and tasks
- * ace/config-linux-common.h:
- * ace/os_include/os_unistd.h:
- * configure.ac:
- * m4/config_h.m4:
- Removed references to ACE_LACKS_PREAD_PROTOTYPE. It is no
- longer used.
+ * docs/index.html:
+ Added new page, removed link to site that doesn't work anymore
-Fri Oct 8 08:20:04 UTC 2010 Olli Savia <ops@iki.fi>
+Mon Aug 20 08:21:00 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/OS_NS_stdio.inl:
- * ace/README:
- * tests/OS_Test.cpp:
- Removed references to ACE_LACKS_RENAME. It is no
- longer used.
+ * ace/os_include/sys/os_types.h:
+ Define CLOCK_MONOTONIC to 1 when it is not defined, should fix
+ hpux problems
-Fri Oct 8 07:51:46 UTC 2010 Olli Savia <ops@iki.fi>
+Mon Aug 20 07:57:53 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/config-integritySCA.h:
- Removed references to ACE_LACKS_IPC_H. It is no
- longer used.
+ * ace/Condition_Attributes.h:
+ * ace/Condition_Attributes.inl:
+ Added accessor for attributes and removed friend declaration,
+ that hopefully fixes the Sun Studio 11 problems
-Fri Oct 8 07:48:38 UTC 2010 Olli Savia <ops@iki.fi>
+ * ace/Condition_Recursive_Thread_Mutex.cpp:
+ * ace/Condition_T.cpp:
+ * ace/Condition_Thread_Mutex.cpp:
+ Use accessor of the attributes.
- * ace/README:
- Removed references to ACE_LACKS_IOSTREAMS_TOTALLY. It is no
- longer used.
+Sat Aug 18 19:25:38 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/os_include/os_stropts.h:
- Fixed typo.
+ * ace/Null_Condition.h:
+ Fix for single threaded builds
-Fri Oct 8 07:42:26 UTC 2010 Olli Savia <ops@iki.fi>
+Sat Aug 18 19:23:21 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/OS_NS_stdio.h:
- * ace/OS_NS_stdio.inl:
- * ace/README:
- * ace/Svc_Conf_Lexer.cpp:
- Removed references to ACE_LACKS_CLEARERR. It is no
- longer used.
+ * ace/Condition_Attributes.h:
+ Added forward declaration, maybe this fixes solaris 9
-Fri Oct 8 06:58:56 UTC 2010 Olli Savia <ops@iki.fi>
+Fri Aug 17 18:05:54 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * protocols/ace/RMCast/Flow.cpp:
- * tests/CDR_Array_Test.cpp:
- * tests/CDR_File_Test.cpp:
- * tests/CDR_Test.cpp:
- * tests/Upgradable_RW_Test.cpp:
- Use ACE::is_equal() to compare floating point values.
+ * ace/OS_NS_Thread.inl:
+ Attempt to fix clang warning
-Thu Oct 7 12:34:20 UTC 2010 Olli Savia <ops@iki.fi>
+Fri Aug 17 13:38:05 UTC 2012 Martin Corino <mcorino@remedy.nl>
- * ASNMP/tests/Counter64_Test.cpp:
- * ace/ETCL/ETCL_Constraint.cpp:
- * ace/Monitor_Control/CPU_Load_Monitor.cpp:
- Use ACE::is_equal() to compare floating point values.
+ * ace/Condition_Recursive_Thread_Mutex.h:
+ * ace/Condition_Thread_Mutex.h:
+ * ace/Null_Condition.h:
+ * ace/Synch_Traits.h:
+ Changes to attempt to fix Solaris9 SUNStudio11 problems.
-Tue Oct 5 07:23:19 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Fri Aug 17 12:28:32 UTC 2012 Martin Corino <mcorino@remedy.nl>
- * ACE-INSTALL.html:
- * COPYING:
- Small updates
+ * ace/config-hpux-11.00.h:
+ * ace/config-linux.h:
+ Fixes (hopefully) for non-compliant POSIX platforms.
- * docs/ACE-porting.html:
- Updated links
+Fri Aug 17 11:19:01 UTC 2012 Martin Corino <mcorino@remedy.nl>
- * include/makeinclude/wrapper_macros.GNU:
- Added support for valgrind=1
+ * tests/Monotonic_Message_Queue_Test.cpp:
+ * tests/Monotonic_Task_Test.cpp:
+ Added include files because of compile errors in certain
+ builds.
-Mon Oct 4 19:55:33 UTC 2010 William R. Otte <wotte@dre.vanderbilt.edu>
+Fri Aug 17 09:04:50 UTC 2012 Martin Corino <mcorino@remedy.nl>
- * bin/make_release.py:
+ * ace/Message_Queue_T.h:
+ * ace/Message_Queue_T.cpp:
+ * ace/Stream.h:
+ * ace/Stream.cpp:
+ * tests/Bug_4055_Regression_Test.cpp:
+ * tests/Monotonic_Task_Test.cpp:
+ Fixed compile errors for a bunch of crappy compilers
+ like the one on RHEL53 and AIX.
- Updates.
+Thu Aug 16 18:47:59 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
-Mon Oct 4 12:32:02 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * ace/ace.mpc:
+ * ace/ace_for_tao.mpc:
+ List Time_Value_T files
- * ace/LSOCK_Stream.h:
- Doxygen changes
+Thu Aug 16 13:43:39 UTC 2012 Martin Corino <mcorino@remedy.nl>
- * ace/Makefile.am:
- Removed zapped file
+ * ace/Message_Queue_T.cpp:
+ * ace/Stream.cpp:
+ * ace/Thread_Manager.cpp:
+ * tests/Bug_4055_Regression_Test.cpp:
+ Fixed problems with single threaded builds.
- * include/makeinclude/platform_sunos5_sunc++.GNU:
- Removed SUN_CC_HAS_PVFC_BUG, this got added 8 years ago and is
- used for any SunCC compiler version. If some old SunCC compiler breaks
- we can readd this flag for just that compiler version
+Thu Aug 16 12:44:05 UTC 2012 Martin Corino <mcorino@remedy.nl>
-Fri Oct 1 16:00:51 UTC 2010 William Otte <wotte@zifnab>
+ * ace/Task_T.inl:
+ * ace/Time_Policy_T.inl:
+ Fuzz fixes.
- * COPYING:
+Thu Aug 16 09:43:00 UTC 2012 Simon Massey <sma at prismtech dot com>
- Updated to include DAnCE.
+ * test/Bug_3943_Regression_Test.cpp:
-Fri Oct 1 11:55:23 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ Another cast required to remove warning.
- * ace/config-g++-common.h:
- * ace/config-qnx-neutrino.h:
- * ace/config-qnx-rtp-common.h:
- Fixed redefinition warnings
+Thu Aug 16 09:22:31 UTC 2012 Martin Corino <mcorino@remedy.nl>
+ * ace/Condition_Attributes.h:
+ * ace/Condition_Attributes.inl:
+ * ace/Condition_Attributes.cpp:
+ * ace/Condition_Recursive_Thread_Mutex.h:
+ * ace/Condition_Recursive_Thread_Mutex.cpp:
+ * ace/Condition_T.h:
+ * ace/Condition_T.cpp:
+ * ace/Condition_Thread_Mutex.h:
+ * ace/Condition_Thread_Mutex.inl:
+ * ace/Condition_Thread_Mutex.cpp:
+ * ace/Message_Queue.h:
+ * ace/Message_Queue_T.h:
+ * ace/Message_Queue_T.cpp:
+ * ace/Module.h:
+ * ace/Module.inl:
+ * ace/Module.cpp:
+ * ace/Monotonic_Time_Policy.h:
+ * ace/Monotonic_Time_Policy.inl:
+ * ace/Monotonic_Time_Policy.cpp:
+ * ace/Null_Condition.h:
+ * ace/OS_NS_Thread.h:
+ * ace/OS_NS_Thread.inl:
+ * ace/OS_NS_Thread.cpp:
+ * ace/Stream.h:
+ * ace/Stream.inl:
+ * ace/Stream.cpp:
+ * ace/Stream_Modules.h:
+ * ace/Stream_Modules.cpp:
+ * ace/Synch_Traits.h:
+ * ace/Task_Ex_T.h:
+ * ace/Task_Ex_T.inl:
+ * ace/Task_Ex_T.cpp:
+ * ace/Task_T.h:
+ * ace/Task_T.inl:
+ * ace/Task_T.cpp:
+ * ace/Thread_Manager.h:
+ * ace/Thread_Manager.cpp:
+ * ace/Thread_Mutex.h:
+ * ace/Time_Policy.h:
+ * ace/Time_Policy.inl:
+ * ace/Time_Policy.cpp:
+ * ace/Time_Policy_T.h:
+ * ace/Time_Policy_T.inl:
+ * ace/Time_Policy_T.cpp:
+ * ace/Time_Value.h:
+ * ace/Time_Value.cpp:
+ * ace/Time_Value_T.h:
+ * ace/Time_Value_T.inl:
+ * ace/Time_Value_T.cpp:
+ * ace/ace.mpc:
* ace/ace_for_tao.mpc:
- Zapped some files
-
- * ace/config-win32-common.h:
- * ace/config-win32-msvc.h:
- * ace/config-win32.h:
- Cleanup
-
- * ace/config-win32-ghs.h:
- Removed this file.
-
-Thu Sep 30 10:49:38 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * debian/mpc-ace.install:
- Improved
-
- * docs/bczar/bczar.html:
- Added DAnCE to doxygen instructions
+ Added a Monotonic time policy and a Time_Value template
+ supporting time policies. Refactored OS_NS_Thread time
+ calculations to use new time policy aware functionality
+ of time values. Added support for monotonic timers with
+ condition variables in message queues, tasks and related
+ classes. See NEWS file and new regression tests for more
+ details.
+ Full backward compatibility is maintained.
+
+ * tests/Bug_4055_Regression_Test.cpp:
+ Updated to fixed state.
+
+ * tests/Monotonic_Message_Queue_Test.cpp:
+ * tests/Monotonic_Task_Test.cpp:
+ * tests/run_test.lst:
+ * tests/tests.mpc:
+ Added new monotonic timer regression tests.
-Thu Sep 30 08:09:34 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * NEWS:
+ Added detailed update descriptions.
- * ace/IOStream.h:
- * ace/config-g++-common.h:
- * ace/config-hpux-11.00.h:
- * ace/config-linux-common.h:
- * ace/config-mvs.h:
- * ace/config-sunos5.5.h:
- * ace/config-win32-borland.h:
- * ace/config-win32-cegcc.h:
- * ace/config-win32-dmc.h:
- * ace/config-win32-ghs.h:
- * ace/config-win32-mingw.h:
- * ace/config-win32-msvc.h:
- Cleanup, move g++ version defines to config-g++-common.h
+Thu Aug 16 09:24:00 UTC 2012 Simon Massey <sma at prismtech dot com>
-Thu Sep 30 05:45:10 UTC 2010 Marcel Smit <msmit@remedy.nl>
+ * bin/PerlACE/Process_Win32.pm:
+ * bin/PerlACE/ProcessVX_Win32.pm:
- * NEWS:
- * ace/Cache_Map_Manager_T.h:
- * ace/Cache_Map_Manager_T.inl:
- * ace/Cache_Map_Manager_T.cpp:
- * ace/Cached_Connect_Strategy_T.h:
- * ace/Cached_Connect_Strategy_T.cpp:
- * ace/Caching_Strategies_T.h:
- * ace/Caching_Utility_T.cpp:
- * ace/Cleanup_Strategies_T.cpp:
- * ace/Hash_Cache_Map_Manager_T.h:
- * ace/Hash_Cache_Map_Manager_T.cpp:
- * ace/Map_T.h:
- * ace/Map_T.inl:
- * ace/Map_T.cpp:
- * ace/Pair_T.h:
- * ace/Pair_T.inl:
- * examples/Web_Crawler/URL_Visitor.h:
- * tests/Cache_Map_Manager_Test.cpp:
- * tests/Cached_Accept_Conn_Test.h:
- * tests/Cached_Conn_Test.cpp:
- * tests/Map_Manager_Test.cpp:
- Removed ACE_Pair from the ACE library.
+ If we wait for a process to exit, and it does, set the RUNNING status to false.
-Wed Sep 29 14:06:40 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Thu Aug 16 08:26:12 UTC 2012 Olli Savia <ops@iki.fi>
- * ace/Cache_Map_Manager_T.h:
- * ace/MEM_SAP.h:
- * ace/Metrics_Cache_T.h:
- * ace/Metrics_Cache_T.inl:
- * ace/Metrics_Cache_T.cpp:
- Doxygen changes
+ * tests/tests.mpc:
+ Bug_4055_Regression_Test uses threads.
-Wed Sep 29 12:19:17 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Wed Aug 15 14:10:00 UTC 2012 Simon Massey <sma at prismtech dot com>
- * ace/Caching_Utility_T.h:
- * ace/Caching_Utility_T.cpp:
- Use bool and ACE_Copy_Disabled
+ * test/Bug_3911_Regression_Test.cpp:
+ * test/Bug_3943_Regression_Test.cpp:
- * ace/Malloc_Base.h:
- * ace/Malloc_T.h:
- Typo fixes
+ Some compilers warning against ordering pointers with integers.
-Wed Sep 29 12:08:58 UTC 2010 Marijke Hengstmengel <mhengstmengel@remedy.nl>
+Wed Aug 15 11:42:28 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * bin/MakeProjectCreator/config/global.features:
- Add ccm_noevent option, default 0, events in CCM are enabled.
- If set, events in CCM are disabled.
+ * include/makeinclude/platform_linux_clang.GNU:
+ Support for c++0x flag
-Tue Sep 28 18:48:58 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Wed Aug 15 11:29:48 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * apps/JAWS3/jaws3-todo:
- Removed, todo for years now
+ * include/makeinclude/platform_clang_common.GNU:
+ Support for c++0x flag
-Tue Sep 28 18:16:52 UTC 2010 Adam Mitz <mitza@ociweb.com>
+Tue Aug 14 22:22:05 UTC 2012 Adam Mitz <mitza@ociweb.com>
- * performance-tests/TCP/tcp_test.cpp:
+ * ace/config-vxworks6.8.h:
- If the 1st char of the host name is a digit, need to set the IP
- address and port as network byte order since that is what's
- returned from ACE_OS::inet_addr().
+ When building for VxWorks kernel mode, define ACE_LACKS_STD_WSTRING.
-Tue Sep 28 11:34:05 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Tue Aug 14 06:35:54 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/Asynch_Connector.cpp:
- * ace/Barrier.h:
- * ace/Barrier.cpp:
- * ace/Condition_Thread_Mutex.h:
- * ace/Condition_Thread_Mutex.inl:
- * ace/Containers_T.cpp:
- * ace/Functor.h:
- * ace/Functor.inl:
- * ace/IO_Cntl_Msg.cpp:
- * ace/Intrusive_List.cpp:
- * ace/Local_Tokens.inl:
- * ace/MEM_IO.cpp:
- * ace/MEM_Stream.h:
- * ace/MEM_Stream.inl:
- * ace/Malloc_T.inl:
- * ace/OS_NS_Thread.inl:
- * ace/OS_NS_string.inl:
- * ace/Object_Manager_Base.cpp:
- * ace/POSIX_Proactor.cpp:
- * ace/Ping_Socket.cpp:
- * ace/Signal.inl:
- * ace/Throughput_Stats.h:
- * ace/Throughput_Stats.cpp:
- * ace/Time_Value.cpp:
- * ace/Timer_Hash_T.cpp:
- * ace/Timer_Heap_T.cpp:
- * ace/Vector_T.h:
- * ace/Vector_T.cpp:
- * ace/config-linux-common.h:
- Removed code that was ifdefed out for years now
+ * bin/valgrind.supp:
+ Extended suppression list
-Tue Sep 28 08:31:37 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+Thu Aug 9 07:03:10 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * performance-tests/Misc/test_guard.cpp:
- * tests/ACE_Test.cpp:
- * examples/Reactor/TP_Reactor/client.cpp:
- Fixed compilation errors with missing includes.
+ * docs/bczar/bczar.html:
+ Added packages
-Mon Sep 27 18:04:34 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * include/makeinclude/platform_g++_common.GNU:
+ Use -Wno-deprecated with C++11 due to the heavy usage of auto_ptr
- * ace/ACE.h:
- * ace/Thread.h:
- * ace/Thread_Adapter.h:
- * ace/Thread_Mutex.h:
- Doxygen changes
+ * tests/randomize.h:
+ Doxygen fix
-Mon Sep 27 14:47:47 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Wed Aug 8 22:13:55 UTC 2012 Adam Mitz <mitza@ociweb.com>
- * ace/String_Base.h:
- Doxygen changes
+ * ace/ACE.cpp:
+ * ace/ACE_crc_ccitt.cpp:
+ * ace/Basic_Types.h:
+ * ace/Configuration_Import_Export.cpp:
+ * ace/Handle_Set.inl:
+ * ace/INET_Addr.inl:
+ * ace/Message_Queue_Vx.inl:
+ * ace/Name_Request_Reply.cpp:
+ * ace/OS_NS_stdlib.cpp:
+ * ace/OS_NS_unistd.inl:
+ * ace/Select_Reactor_T.inl:
+ * ace/Service_Config.cpp:
+ * ace/Stack_Trace.cpp:
+ * ace/UUID.cpp:
+ * ace/config-vxworks6.9.h:
+ * include/makeinclude/platform_vxworks6.8.GNU:
+ * include/makeinclude/platform_vxworks6.9.GNU:
- * ace/Svc_Conf_Lexer.cpp:
- Const changes
+ Enable compiling for 64-bit VxWorks 6.9 (x86 RTP static).
- * bin/msvc_static_order.lst:
- Some updates, but this list is very outdated
+Wed Aug 8 15:30:00 UTC 2012 Simon Massey <sma at prismtech dot com>
-Mon Sep 27 14:27:25 UTC 2010 Jeff Parsons <j.parsons@vanderbilt.edu>
+ * ace/config-linux.h:
- * THANKS:
+ According to man pages Linux uses different (compared to UNIX systems) types
+ for setting IP_MULTICAST_TTL and IPV6_MULTICAST_LOOP / IP_MULTICAST_LOOP
+ in setsockopt/getsockopt.
+ In the current (circa 2012) kernel source however there is an explicit check
+ for IPV6_MULTICAST_LOOP being sizeof(int). Anything else is rejected so it must
+ not be a passed a bool, irrespective of what the man pages (still) say.
+ i.e. #define ACE_HAS_IPV6_MULTICAST_LOOP_AS_BOOL 1 is wrong.
- Added Matthew Waller <matthewrwaller at gmail dot com>
+ * ace/SOCK_Dgram_Mcast.h:
+ * ace/SOCK_Dgram_Mcast.inl:
-Mon Sep 27 14:08:11 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+ Override read/write acessor for the constructor options
+ This class is typically default instantiated in a connection handler templated
+ framework so these cannot be specified on construction.
- * ace/Log_Msg.h:
- * ace/Log_Msg.cpp:
- Fixed compilation with ACE_HAS_DUMP. The later happens because
- ACE_Log_Msg depends on ACE_Atomic_Op and ACE_Atomic_Op needs
- ACE_DEBUG when ACE_HAS_DUMP is defined. This change moves
- include of ace/Atomic_Op.h from header to CPP file and adds
- forward declaration for ACE_Atomic_Op.
+Mon Aug 6 20:54:17 UTC 2012 Adam Mitz <mitza@ociweb.com>
- * ace/Atomic_Op_T.cpp:
- * ace/Guard_T.cpp:
- Removed unnecessary this paramater when doing ACE_END_DUMP.
+ * bin/PerlACE/TestTarget.pm:
- * examples/Misc/test_dump.h:
- * examples/Threads/thread_specific.cpp:
- Fixed logging in these tests.
+ Updated fix from Fri Jul 20 17:37:27 UTC 2012 to work when
+ one of source or destination is a relative path and other is not.
-Mon Sep 27 11:24:02 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+Sat Jul 28 19:22:06 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * examples/C++NPv2/AIO_Client_Logging_Daemon.h:
- Another attempt to fix compile error.
+ * bin/make_release.py:
+ Fixed exclude
-Mon Sep 27 09:42:29 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Fri Jul 27 10:55:51 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * bin/fuzz.pl:
- Enable export file check, use TAO_IDL to generate export files or
- remove the generated by line from the export file itself. Currently
- only for CIAO and DAnCE
+ * etc/ace.doxygen:
+ * etc/ace_inet.doxygen:
+ * etc/ace_qos.doxygen:
+ * etc/ace_rmcast.doxygen:
+ * etc/ace_ssl.doxygen:
+ * etc/acexml.doxygen:
+ Generate UML diagrams, assume stl is buildin
-Sat Sep 25 06:41:39 UTC 2010 Olli Savia <ops@iki.fi>
+Fri Jul 27 08:57:07 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/ACE.h:
- Modified ACE::is_equal() comment once again to make fuzz happy.
+ * etc/ace.doxygen:
+ * etc/ace_inet.doxygen:
+ * etc/ace_qos.doxygen:
+ * etc/ace_rmcast.doxygen:
+ * etc/ace_ssl.doxygen:
+ * etc/acexml.doxygen:
+ Upgraded with doxygen -u
-Fri Sep 24 14:52:44 UTC 2010 Steve Huston <shuston@riverace.com>
+Thu Jul 26 16:22:35 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/Pipe.{h inl cpp}: Added two new methods, close_read() and
- close_write() to close individual pipe handles. Refactored the
- original close() method to use these and factored out the actual
- closing code to a new inlined close_handle() method.
+ * bin/make_release.py:
+ * docs/bczar/bczar.html:
+ Improved instructions
- Thanks to John Lilley <jlilley at datalever dot com> for this
- addition.
+Thu Jul 26 14:40:45 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * NEWS: Added description of the new methods.
+ * docs/bczar/bczar.html:
+ Set all environment variables explicitly before running the doxygen
+ script
-Fri Sep 24 12:41:13 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Thu Jul 26 10:19:34 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ACE-INSTALL.html:
- Updated Remedy platforms
-
- * ACEXML/parser/parser/Parser.h:
- * ace/Containers_T.h:
- * ace/Containers_T.cpp:
- * ace/OS_NS_string.h:
- * ace/OS_NS_wchar.h:
- * apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shexp.h:
- Fixed typo
+ * ace/ARGV.h:
+ * ace/Arg_Shifter.h:
+ Doxygen improvements
-Fri Sep 24 12:32:44 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * rpmbuild/ace-tao.spec:
+ Removed ACE_XML_Utils, only compiled when xercesc is enabled
- * ace/Containers_T.h:
- * ace/Containers_T.cpp:
- * ace/OS_NS_string.h:
- * ace/OS_NS_wchar.h:
- Fixed typo
+Thu Jul 26 09:31:19 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
-Fri Sep 24 12:24:01 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * NEWS:
+ Updated for next release
- * ACE-INSTALL.html:
- Documented vc10, thanks to Paul Carter <pcarter at scires dot com>
- for reporting this.
+ * bin/diff-builds-and-group-fixed-tests-only.sh:
+ * bin/make_release.py:
+ * docs/Download.html:
+ * docs/bczar/bczar.html:
+ Updated for x.1.3 release
-Fri Sep 24 11:44:06 UTC 2010 Olli Savia <ops@iki.fi>
+ * etc/ace.doxygen:
+ * etc/ace_inet.doxygen:
+ * etc/ace_qos.doxygen:
+ * etc/ace_rmcast.doxygen:
+ * etc/ace_ssl.doxygen:
+ * etc/acexml.doxygen:
+ * etc/index.html:
+ Removed deprecated tag
- * ace/ACE.h:
- Adjusted ACE::is_equal() comment to make fuzz happy.
+Thu Jul 26 09:12:26 CEST 2012 Johnny Willemsen <jwillemsen@remedy.nl>
-Fri Sep 24 09:35:00 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+ * ACE version 6.1.3 released.
- * examples/C++NPv2/AIO_Client_Logging_Daemon.h:
- Removed code that is problematic for GCC 2.95.3 in a crossbuild
- for LynxOS 4.0.
+Fri Jul 20 17:37:27 UTC 2012 Adam Mitz <mitza@ociweb.com>
-Fri Sep 24 07:35:27 UTC 2010 Olli Savia <ops@iki.fi>
+ * ace/config-vxworks6.8.h:
+ * ace/config-vxworks6.9.h:
- * ace/ACE.h:
- Added a simple helper ACE::is_equal() which compares equality of two
- objects without using operator==. This is useful for comparing floating
- point values.
+ Changes to build for VxWorks 6.8 kernel mode.
- * tests/OS_Test.cpp:
- Use ACE::is_equal() instead of local copy.
+ * bin/PerlACE/ProcessVX_Win32.pm:
+ * tests/run_test.lst:
-Thu Sep 23 16:14:12 UTC 2010 Adam Mitz <mitza@ociweb.com>
+ Changes for VxWorks testing.
- * ace/SSL/ssl.mpc:
- * bin/MakeProjectCreator/config/pkgconfig.mpb:
- * bin/MakeProjectCreator/templates/gnu.mpd:
- * bin/ace_install_pkgconfig.pl:
- * include/makeinclude/rules.lib.GNU:
- * include/makeinclude/wrapper_macros.GNU:
+ * bin/PerlACE/TestTarget.pm
- Added support for installing pkg-config (.pc) files as part of the
- gnuace "make install". This includes a refactoring of how the
- shared library version numbers are set internally in the makefiles.
+ Fixed a Perl bug (ne vs. !=).
-Thu Sep 23 12:32:05 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+Wed Jul 18 15:40:05 UTC 2012 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
- * ace/Service_Gestalt.cpp:
- Fixed memory leak. Previously it could happen that svc_queue_ was
- allocated during processing of arguments but was not freed if
- application didn't call process_commandline_directives().
+ * Happy 50th Birthday to me!
- * tests/Network_Adapters_Test.cpp:
- Removed non-ASCII character from the comments.
+Tue Jun 26 21:47:18 UTC 2012 Adam Mitz <mitza@ociweb.com>
-Wed Sep 22 18:42:25 UTC 2010 William R. Otte <wotte@dre.vanderbilt.edu>
+ * bin/valgrind.supp:
- * bin/msvc_mpc_auto_compile.pl:
+ Made the suppression for dlopen more generic, so that it
+ can work for different linux/glibc versions.
- Updates for DAnCE.
+Tue Jun 26 13:18:13 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
-Wed Sep 22 14:17:11 UTC 2010 Marcel Smit <msmit@remedy.nl>
+ * tests/Bug_4055_Regression_Test.cpp:
+ Added commented out way to get the hr time
- * debian/Basic_Logging_Service.sgml:
- * debian/Event_Logging_Service.sgml:
- * debian/Notify_Logging_Service.sgml:
- * debian/RTEvent_Logging_Service.sgml:
- Renamed TAO orb services. See $TAO_ROOT/NEWS for details.
+Mon Jun 25 17:40:35 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
-Wed Sep 22 14:06:25 UTC 2010 Marcel Smit <msmit@remedy.nl>
+ * tests/Bug_4055_Regression_Test.cpp:
+ * tests/run_test.lst:
+ * tests/tests.mpc:
+ Added new unit test which currently fails. The ACE condition
+ variables use an absolute timeout. If we for example wait for a
+ timeout 3 seconds in the future and the system time is changed 10
+ seconds back we are really waiting 13 seconds now. The ACE timer
+ queues have support for using a monotonic time source using the
+ time policies but this support is not available for conditions at
+ this moment. When that is added, than in the ACE threading code
+ the monotonic time source can be set on the pthread condition
+ to control that we want to use a monotonic time source.
+
+Mon Jun 25 09:31:34 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Condition_Attributes.h:
+ * ace/Condition_Attributes.inl:
+ * ace/Condition_Attributes.cpp:
+ * ace/Condition_Recursive_Thread_Mutex.h:
+ * ace/Condition_Thread_Mutex.h:
+ * ace/Condition_Thread_Mutex.inl:
+ * ace/ace.mpc:
+ * ace/ace_for_tao.mpc:
+ Moved condition attributes to its own file
- * debian/libtao-orbsvcs-1.8.2.install:
- * debian/libtao-orbsvcs-dev.install:
- * debian/tao-imr.install:
- * debian/tao-naming.install:
- * debian/tao-notify.install:
- * debian/tao-rtevent.install:
- Renamed TAO orb services. See $TAO_ROOT/NEWS for details.
+Fri Jun 22 00:30:11 UTC 2012 James H. Hill <hillj at cs dot iupui dot edu>
-Wed Sep 22 13:58:46 UTC 2010 Marcel Smit <msmit@remedy.nl>
+ * tests/CDR_Test.cpp:
- * debian/tao-concurrency.install:
- * debian/tao-event.install:
- * debian/tao-ft.install:
- * debian/tao-ifr.install:
- * debian/tao-lifecycle.install:
- * debian/tao-load.install:
- * debian/tao-log.install:
- * debian/tao-scheduling.install:
- * debian/tao-time.install:
- * debian/tao-trading.install:
- Renamed TAO orb services. See $TAO_ROOT/NEWS for details.
+ Fixed compilation warnings on CentOS 3.9 and vc9
-Tue Sep 21 08:27:47 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Thu Jun 21 17:08:55 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ASNMP/agent/main.cpp:
- Fixed compile error
+ * ace/DLL.h:
+ * ace/DLL_Manager.h:
+ * ace/DLL_Manager.cpp:
+ Changed the order that the ACE_DLL_Manager attempts to open a library
+ Foo so that it will try <prefix>Foo<decorator>.<suffix> before
+ Foo<decorator>.<suffix>. This makes library loading using ACE succeed
+ on the first try instead of the fourth on any platform requiring a
+ library prefix, like Linux. For platforms that don't have a prefix
+ it will also succeed on the first time. Thanks to Trent Nadeau
+ <Trent dot Nadeau at ngc dot com> for providing this improvement
-Mon Sep 20 13:24:56 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Wed Jun 20 12:54:29 UTC 2012 James H. Hill <hillj at cs dot iupui dot edu>
- * ASNMP/agent/agent.mpc:
- * ASNMP/agent/main.cpp:
- Enable for wchar, thanks to Christian Freund <freund at wrz dot de>
- for reporting this and providing a patch, fixes bugzilla 3889
+ * tests/CDR_Test.cpp:
- * ace/String_Base.h:
- * apps/JAWS3/http/HTTP_Service_Handler.h:
- * apps/JAWS3/small/SS_Service_Handler.h:
- Fixed typo in comment
+ Fixed error in test execution.
- * ace/config-win32-borland.h:
- Some updates based on QC emails
+Mon Jun 18 20:40:29 UTC 2012 James H. Hill <hillj at cs dot iupui dot edu>
- * debian/libtao-dev.install:
- * debian/mpc-ace.install:
- Fixed paths
+ * ace/CDR_Stream.h:
+ * ace/CDR_Stream.cpp:
+ * tests/CDR_Test.cpp:
-Fri Sep 17 20:14:33 UTC 2010 Adam Mitz <mitza@ociweb.com>
+ Extended ACE_OutputCDR placeholders to support all ACE_CDR
+ simple types.
- * ace/FlReactor/ace_flreactor.mpc:
- * ace/FoxReactor/ace_foxreactor.mpc:
- * ace/QtReactor/ace_qt3reactor.mpc:
- * ace/QtReactor/ace_qt4reactor.mpc:
- * ace/TkReactor/ace_tkreactor.mpc:
- * ace/XtReactor/ace_xtreactor.mpc:
+Mon Jun 18 13:20:32 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- Since these have been moved, the default install_dir isn't what we
- want. Set the install_dir to ace/*Reactor.
+ * bin/auto_run_tests.pl:
+ Use -z for debug mode
-Fri Sep 17 07:51:06 UTC 2010 Marcel Smit <msmit@remedy.nl>
+Mon Jun 18 06:44:11 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * bin/fuzz.pl:
- Added Id check for cdp files.
+ * debian/*:
+ Updated with latest files from debian packaging
-Fri Sep 17 07:16:16 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Thu Jun 14 14:05:13 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/Log_Msg.h:
- * ace/OS_Errno.cpp:
- Layout changes
+ * ace/XML_Utils/XML_Error_Handler.cpp:
+ Only print errors on cerr when we have ACE::debug enabled
- * ace/Malloc_T.h:
- * ace/Malloc_T.cpp:
- * ace/Map_Manager.inl:
- * ace/Map_Manager.cpp:
- Moved some methods inline
+Wed Jun 13 05:57:16 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/OS_NS_signal.cpp:
- Fixed problem with versioned macros
+ * docs/bczar/bczar.html:
+ Added another package
-Thu Sep 16 13:36:51 UTC 2010 Martin Corino <mcorino@remedy.nl>
+Tue Jun 12 17:30:47 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * protocols/ace/INet/ClientRequestHandler.h:
- * protocols/ace/INet/URLBase.h:
- * protocols/ace/INet/HTTP_ClientRequestHandler.h:
- Changes to fix export problems with nested classes with MSVC 9.
+ * bin/make_release.py:
+ Exclude CIAO_*_OpenDDS workspaces for the moment
-Thu Sep 16 09:25:51 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Mon Jun 11 21:45:19 UTC 2012 Adam Mitz <mitza@ociweb.com>
- * ace/ace.mpc:
- Removed Service_Templates.h
+ * NEWS:
+ * ace/config-lite.h:
+ * include/makeinclude/platform_sunos5_sunc++.GNU:
-Thu Sep 16 09:08:39 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ Added support for Oracle Solaris Studio 12 Update 3 (SunCC 5.12).
- * protocols/tests/HTBP/Send_Large_Msg/server.cpp:
- * protocols/tests/HTBP/ping/client.cpp:
- Added missing includes
+Mon Jun 11 17:05:36 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
-Wed Sep 15 12:45:13 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * bin/auto_run_tests.pl:
+ Added option -d to run OpenDDS tests also
- * ace/Auto_Event.h:
- * ace/OS_NS_arpa_inet.inl:
- * ace/OS_NS_arpa_inet.cpp:
- * ace/OS_NS_errno.cpp:
- * ace/OS_NS_fcntl.cpp:
- * ace/OS_NS_math.cpp:
- * ace/OS_NS_pwd.inl:
- * ace/OS_NS_pwd.cpp:
- * ace/OS_NS_regex.inl:
- * ace/OS_NS_regex.cpp:
- * ace/OS_NS_signal.cpp:
- * ace/OS_NS_sys_resource.cpp:
- * ace/OS_NS_sys_wait.inl:
- * ace/OS_NS_wctype.inl:
- * ace/OS_NS_wctype.cpp:
- * ace/config-tandem.h:
- * ace/os_include/os_pthread.h:
- * ace/os_include/os_signal.h:
- * ace/os_include/sys/os_resource.h:
- * ace/os_include/sys/os_socket.h:
- Small cleanup and layout changes
+ * bin/diff-builds-and-group-fixed-tests-only.sh:
+ Also check OpenDDS lst files
-Wed Sep 15 12:31:07 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Thu Jun 7 10:13:13 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * protocols/tests/HTBP/Reactor_Tests/server.cpp:
- * protocols/tests/HTBP/Send_Recv_Tests/server.cpp:
- * protocols/tests/HTBP/ping/server.cpp:
- Fixed solaris compile problems
+ * ace/Condition_Thread_Mutex.h:
+ * ace/Dynamic_Message_Strategy.h:
+ * ace/Message_Queue.h:
+ * ace/Metrics_Cache_T.h:
+ Doxygen fixes
-Wed Sep 15 09:33:38 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Wed Jun 6 14:46:53 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/XML_Utils/XSCRT/Traversal.hpp:
+ * ace/XML_Utils/XSCRT/Traversal.tpp:
+ Readded tpp file, shouldn't have been deleted
+
+Wed Jun 6 13:09:02 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/XML_Utils/XMLSchema/Traversal.hpp:
+ * ace/XML_Utils/XMLSchema/Types.hpp:
+ * ace/XML_Utils/XMLSchema/Writer.hpp:
+ * ace/XML_Utils/XSCRT/Elements.hpp:
+ * ace/XML_Utils/XSCRT/Parser.hpp:
+ * ace/XML_Utils/XSCRT/Traversal.hpp:
+ * ace/XML_Utils/XSCRT/Writer.hpp:
+ * ace/XML_Utils/XSCRT/XML.hpp:
+ Removed includes
+
+ * ace/XML_Utils/XMLSchema/Traversal.tpp:
+ * ace/XML_Utils/XMLSchema/Types.tpp:
+ * ace/XML_Utils/XMLSchema/Writer.tpp:
+ * ace/XML_Utils/XSCRT/Elements.tpp:
+ * ace/XML_Utils/XSCRT/Parser.tpp:
+ * ace/XML_Utils/XSCRT/Traversal.tpp:
+ * ace/XML_Utils/XSCRT/Writer.tpp:
+ * ace/XML_Utils/XSCRT/XML.tpp:
+ Removed these files.
- * ace/ace.mpc:
- * ace/ace_for_tao.mpc:
- Zapped removed files
+Wed Jun 6 10:27:33 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * docs/svn/config:
- Added another file type
+ * ace/XML_Utils/XML.mpc:
+ Install fixes
-Wed Sep 15 07:51:33 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Wed Jun 6 08:12:22 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * bin/MakeProjectCreator/templates/gnu.mpd:
- Removed invalid comma, thanks to Frank Preischl
- <Frank dot Preischl at ids dot de> for reporting this and Olli Savia
- for correcting my initial patch
-
-Tue Sep 14 18:18:36 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * ace/ace.mwc:
- No need for a workspace with all projects in it
-
- * ace/ace_ce_dll.cfg:
- Removed this file, ancient and not used
-
-Tue Sep 14 16:42:26 UTC 2010 Adam Mitz <mitza@ociweb.com>
-
- * bin/make_release.py (update_latest_tag):
-
- Fixed a bug with the new DAnCE changes and changed the way it does
- the svn properties edits. This function is still not called, but
- the calls are ready to be un-commented whenever the buildczar or
- release manager can re-enable this.
-
-Tue Sep 14 13:00:44 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * ace/Log_Record.h:
- * ace/Log_Record.inl:
- * ace/Log_Record.cpp:
- Removed deprecated encode/decode methods
-
-Tue Sep 14 12:05:19 UTC 2010 Steve Huston <shuston@riverace.com>
-
- * examples/APG/Logging/Callback-3.h: Replaced use of deprecated
- ACE_Log_Record::encode() with CDR converter.
-
-Tue Sep 14 12:01:01 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * ace/FlReactor/ace_flreactor.mpc:
- * ace/FoxReactor/ace_foxreactor.mpc:
- * ace/QtReactor/ace_qt3reactor.mpc:
- * ace/QtReactor/ace_qt4reactor.mpc:
- * ace/TkReactor/ace_tkreactor.mpc:
- * ace/XtReactor/ace_xtreactor.mpc:
- * ace/ace_flreactor.mpc:
- * ace/ace_foxreactor.mpc:
- * ace/ace_qt3reactor.mpc:
- * ace/ace_qt4reactor.mpc:
- * ace/ace_tkreactor.mpc:
- * ace/ace_xtreactor.mpc:
- Moved these files to the subdirectory they need to be in
-
-Tue Sep 14 11:40:39 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * bin/Array.pl:
- * bin/Array_Helper:
- * bin/Hash_Map_Manager.pl:
- * bin/Hash_Map_Manager_Helper:
- * bin/vxworks_modify.pl:
- Removed these files, very old and will not work at all
-
- * bin/PythonACE:
- * bin/PythonACE/__init__.py:
- * bin/PythonACE/fuzz:
- * bin/PythonACE/fuzz/__init__.py:
- * bin/PythonACE/fuzz/_fuzz.py:
- * bin/PythonACE/fuzz/_generic_handler.py:
- * bin/PythonACE/fuzz/_mailer.py:
- * bin/PythonACE/fuzz/_path.py:
- * bin/PythonACE/fuzz/_singleton.py:
- * bin/PythonACE/fuzz/_types.py:
- * bin/PythonACE/fuzz/_warning_handler.py:
- * bin/PythonACE/fuzz/check_includes.py:
- * bin/PythonACE/fuzz/check_no_tabs.py:
- * bin/PythonACE/fuzz/cpp_inline.py:
- * bin/PythonACE/fuzz/inline.py:
- * bin/PythonACE/fuzz/math_include.py:
- * bin/PythonACE/fuzz/max_filename.py:
- * bin/PythonACE/fuzz/max_project_len.py:
- * bin/PythonACE/fuzz/newline.py:
- * bin/PythonACE/fuzz/no_conflict_markers.py:
- * bin/PythonACE/fuzz/noncvs.py:
- * bin/PythonACE/fuzz/ptr_arith_t.py:
- * bin/PythonACE/fuzz/refcountservantbase.py:
- * bin/PythonACE/fuzz/streams_include.py:
- * bin/PythonACE/fuzz/verify_changelog.py:
- * bin/fuzz.py:
- Deleted, fuzz is still perl, if we need a PythonACE later we can
- easily get this again from svn
-
-Tue Sep 14 11:31:42 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * bin/generate_doxygen.pl:
- * html/index.html:
- Removed ciao config handlers
-
-Tue Sep 14 11:30:18 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * bin/generate_doxygen.pl:
- * html/index.html:
- Removed pss
-
-Tue Sep 14 09:41:06 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * debian/mpc-ace.install:
- Don't use environment variables
-
- * protocols/ace/HTBP/HTBP_Filter.h:
- Added missing includes
-
-Tue Sep 14 09:36:06 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * ace/XML_Utils/XML.mpc:
+ Install fixes
- * bin/make_release.py:
- Updated generation of dsc file
+Fri Jun 1 12:43:48 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * protocols/examples/RMCast/Send_Msg/Sender.cpp:
- * protocols/tests/RMCast/Sender.cpp:
- * tests/Based_Pointer_Test.cpp:
- * tests/SSL/Bug_2912_Regression_Test.cpp:
- Added missing includes
+ * ace/Condition_Thread_Mutex.cpp:
+ * ace/Message_Queue_T.h:
+ * ace/Message_Queue_T.cpp:
+ * ace/Thread_Semaphore.h:
+ * ace/Time_Policy.h:
+ * ace/Timer_Hash_T.h:
+ Doxygen fixes
-Mon Sep 13 18:15:27 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Thu May 31 14:05:51 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- *:
- Zapped trailing whitespaces using
- find -name \*.h -o -name \*.cpp -name \*.inl | xargs perl -i -pe's/\s+\n/\n/'
+ * rpmbuild/ace-tao.spec:
+ Added new library
+
+Thu May 31 12:31:38 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/XML_Utils/XMLSchema:
+ * ace/XML_Utils/XMLSchema/Traversal.hpp:
+ * ace/XML_Utils/XMLSchema/TypeInfo.hpp:
+ * ace/XML_Utils/XMLSchema/Types.hpp:
+ * ace/XML_Utils/XMLSchema/Writer.hpp:
+ * ace/XML_Utils/XMLSchema/id_map.hpp:
+ * ace/XML_Utils/XSCRT:
+ * ace/XML_Utils/XSCRT/Elements.hpp:
+ * ace/XML_Utils/XSCRT/ExtendedTypeInfo.hpp:
+ * ace/XML_Utils/XSCRT/Parser.hpp:
+ * ace/XML_Utils/XSCRT/Traversal.hpp:
+ * ace/XML_Utils/XSCRT/Writer.hpp:
+ * ace/XML_Utils/XSCRT/XML.hpp:
+ * ace/XML_Utils/XSCRT/XMLSchema.hpp:
+ Moved these files from DAnCE to ACE
+
+ * ace/XML_Utils/XSCRT/Elements.ipp:
+ * ace/XML_Utils/XSCRT/Parser.ipp:
+ * ace/XML_Utils/XSCRT/Traversal.ipp:
+ * ace/XML_Utils/XSCRT/Writer.ipp:
+ * ace/XML_Utils/XSCRT/XML.ipp:
+ Removed these files.
-Mon Sep 13 14:04:48 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Thu May 31 09:12:07 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- Reverted change below, not correct given new info from Adam
+ * ace/XML_Utils:
+ * ace/XML_Utils/XML.mpc:
+ * ace/XML_Utils/XML_Error_Handler.h:
+ * ace/XML_Utils/XML_Helper.h:
+ * ace/XML_Utils/XML_Schema_Resolver.h:
+ * bin/MakeProjectCreator/config/ace_xml_utils.mpb:
+ New ACE_XML_Utils library. This is coming from DAnCe and had to
+ move to ACE because it is now used in more places and soon will
+ also be used by OpenDDS
- Thu Sep 9 11:49:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Thu May 31 07:57:59 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * bin/MakeProjectCreator/templates/gnu.mpd:
- Removed invalid comma, thanks to Frank Preischl
- <Frank dot Preischl at ids dot de> for reporting this
+ * ace/High_Res_Timer.h:
+ * ace/Message_Block.h:
+ Doxygen improvements
- * debian/debian.rules:
- * debian/mpc-ace.install:
- Improved
+ * ace/High_Res_Timer.inl:
+ Use gsf type to prevent overflow
-Mon Sep 13 09:25:22 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * docs/bczar/bczar.html:
+ Added some more packages
- * bin/generate_doxygen.pl:
- Updated for DAnCE move
+Thu May 24 14:35:04 UTC 2012 Steve Huston <shuston@riverace.com>
- * ace/ETCL/ETCL_Constraint.cpp:
- * ace/ETCL/ETCL_l.cpp.diff:
- * ace/ETCL/ETCL_l.cpp:
- * ace/Makefile.am:
- * ace/Thread_Control.inl:
- * ace/ace.mpc:
- * ace/ace_for_tao.mpc:
- * apps/JAWS3/bench/average.cpp:
- * apps/JAWS3/bench/mkfiles.cpp:
- * apps/JAWS3/bench/rqfiles.cpp:
- * apps/JAWS3/http/HTTP_Data.h:
- * apps/JAWS3/http/HTTP_Service_Handler.h:
- * apps/JAWS3/http/HTTP_Service_Handler.cpp:
- * apps/JAWS3/http/HTTP_States.h:
- * apps/JAWS3/jaws3-todo/Reactive_Socket.h:
- * apps/JAWS3/jaws3-todo/Reactive_Socket_Helpers.h:
- * apps/JAWS3/jaws3-todo/Reactive_Socket_Helpers.cpp:
- * apps/JAWS3/jaws3-todo/Socket.h:
- * apps/JAWS3/jaws3/Concurrency_T.h:
- * apps/JAWS3/small/SS_Data.h:
- * apps/JAWS3/small/SS_Service_Handler.h:
- * apps/JAWS3/small/SS_Service_Handler.cpp:
- * apps/JAWS3/small/SS_State_DONE.h:
- * apps/JAWS3/small/SS_State_DONE.cpp:
- * apps/JAWS3/small/SS_State_ERROR.h:
- * apps/JAWS3/small/SS_State_ERROR.cpp:
- * apps/JAWS3/small/SS_State_PARSE.h:
- * apps/JAWS3/small/SS_State_PARSE.cpp:
- * apps/JAWS3/small/SS_State_READ.h:
- * apps/JAWS3/small/SS_State_READ.cpp:
- * apps/JAWS3/small/SS_State_WRITE.h:
- * apps/JAWS3/small/SS_State_WRITE.cpp:
- * apps/JAWS3/small/SS_Templates.cpp:
- * contrib/FaCE/FaCE.h:
- * examples/APG/Svc_Config/HA_Status_Dynamic.h:
- * examples/APG/Svc_Config/HA_Status_Static.h:
- * examples/Reactor/TP_Reactor/client.cpp:
- * examples/Reactor/TP_Reactor/server.cpp:
- * protocols/ace/HTBP/HTBP_Channel.cpp:
- * protocols/ace/HTBP/HTBP_Filter.h:
- * protocols/ace/HTBP/HTBP_Inside_Squid_Filter.cpp:
- * protocols/ace/HTBP/HTBP_Session.cpp:
- * protocols/ace/TMCast/Group.cpp:
- * protocols/examples/RMCast/Send_Msg/Sender.cpp:
- * protocols/tests/HTBP/Reactor_Tests/client.cpp:
- * protocols/tests/HTBP/Reactor_Tests/server.cpp:
- * protocols/tests/HTBP/Reactor_Tests/test_config.h:
- * protocols/tests/HTBP/Send_Large_Msg/client.cpp:
- * protocols/tests/HTBP/Send_Large_Msg/server.cpp:
- * protocols/tests/HTBP/Send_Recv_Tests/client.cpp:
- * protocols/tests/HTBP/Send_Recv_Tests/server.cpp:
- * protocols/tests/HTBP/ping/client.cpp:
- * protocols/tests/HTBP/ping/server.cpp:
- * protocols/tests/RMCast/Sender.cpp:
- * tests/Based_Pointer_Test.cpp:
- * tests/Bug_2980_Regression_Dll.cpp:
- * tests/SSL/Bug_2912_Regression_Test.cpp:
- Removed include of ace/OS.h, only in a few files we really had
- to add an include of OS_NS_*.h
+ * ace/Cache_Map_Manager_T.cpp (find): Remove extraneous () from
+ 'second' - leftover from ACE_Pair days.
- * ace/OS.h:
- * ace/OS.inl:
- * ace/OS.cpp:
- Removed these files, replaced with OS_NS_* files a long time ago
+ * tests/Cache_Map_Manager_Test.cpp: Add call to the above method.
-Sun Sep 12 19:27:58 UTC 2010 William R. Otte <wotte@dre.vanderbilt.edu>
+ * THANKS: Thanks to Milind Pangarkar for the above test, and fix.
- * bin/make_release.py:
+Thu May 24 07:58:53 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- Some updates to handle moved DAnCE package.
+ * ace/High_Res_Timer.h:
+ * ace/config-win32-msvc.h:
+ Documentation updates
-Sun Sep 12 19:22:21 UTC 2010 William Otte <wotte@zifnab>
+ * ace/High_Res_Timer.inl:
+ Layout changes
- * bin/MakeProjectCreator/modules/GNUACEProjectCreator.pm:
- * bin/MakeProjectCreator/templates/:
+ * ace/High_Res_Timer.cpp:
+ Use this
- Added rules to pullin rules.dance.GNU.
+Thu May 24 05:56:27 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
-Fri Sep 10 16:43:39 UTC 2010 Steve Huston <shuston@riverace.com>
+ * bin/MakeProjectCreator/config/MPC.cfg:
+ Added XSC_ROOT
- * ace/Makefile.am: Removed references to files removed at
- Thu Sep 9 11:14:45 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * bin/valgrind.supp:
+ Simplified this file
-Fri Sep 10 11:07:56 UTC 2010 Marcel Smit <msmit@remedy.nl>
+Mon May 21 18:05:32 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/TSS_T.h:
- Resolved compile issue regarding ACE_Copy_Disabled class.
+ * tests/INTEGRITY.ld:
+ Removed this file.
-Fri Sep 10 07:36:39 UTC 2010 Marcel Smit <msmit@remedy.nl>
+Mon May 21 07:15:10 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/Thread_Control.inl:
- Include before versioning macros.
+ * NEWS:
+ * bin/diff-builds-and-group-fixed-tests-only.sh:
+ * docs/Download.html:
+ * docs/bczar/bczar.html:
+ * etc/index.html:
+ Updated for new release
-Fri Sep 10 07:05:45 UTC 2010 Marcel Smit <msmit@remedy.nl>
+Sat May 19 14:28:57 CEST 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/Thread_Control.inl:
- Resolved compile error (ACE_OS_TRACE could not be found).
+ * ACE version 6.1.2 released.
-Thu Sep 9 12:53:39 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Thu May 17 16:16:09 UTC 2012 Adam Mitz <mitza@ociweb.com>
- * ace/Asynch_Acceptor.h:
- * ace/Asynch_Acceptor.cpp:
- * ace/Hash_Multi_Map_Manager_T.h:
- * ace/OS_NS_Thread.h:
- * ace/OS_NS_Thread.cpp:
- * ace/Service_Config.cpp:
- * ace/TSS_T.cpp:
- * ace/Thread.h:
- * ace/Thread.inl:
- * ace/config-macosx-snowleopard.h:
- * ace/config-macosx-tiger.h:
- * ace/config-macosx.h:
- * tests/Hash_Multi_Map_Manager_Test.cpp:
- Removed deprecated methods and arguments
-
- * docs/FAQ:
- * FAQ:
- Moved to docs
-
-Thu Sep 9 11:54:10 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * apps/soreduce/Signature.cpp:
- * tests/TkReactor_Test.cpp:
- Fixed fuzz
+ * ACE-INSTALL.html:
-Thu Sep 9 11:49:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ Replaced the make flag static_libs with static_libs_only.
+ Using static_libs implies that both static and shared can
+ be built at the same time, which is not true in general.
- * bin/MakeProjectCreator/templates/gnu.mpd:
- Removed invalid comma, thanks to Frank Preischl
- <Frank dot Preischl at ids dot de> for reporting this
+Thu May 17 15:42:36 UTC 2012 Steve Huston <shuston@riverace.com>
-Thu Sep 9 11:14:45 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * ace/Reactor.h: Clarified the timeout conditions on
+ run_reactor_event_loop(). Thank you to Mohsin Zaidi for this
+ clarification.
- * Kokyu/Dispatch_Deferrer.h:
+ * THANKS: Added Mohsin Zaidi to the Hall of Fame.
- * ace/Atomic_Op_T.h:
- * ace/Atomic_Op_T.inl:
- * ace/Configuration.h:
- * ace/Configuration.cpp:
- * ace/Default_Constants.h:
- * ace/Hash_Multi_Map_Manager_T.h:
- * ace/Hash_Multi_Map_Manager_T.cpp:
- * ace/Intrusive_List.h:
- * ace/Intrusive_List.inl:
- * ace/Local_Name_Space_T.h:
- * ace/Log_Msg.h:
- * ace/Log_Msg.cpp:
- * ace/MEM_Acceptor.h:
- * ace/MEM_Acceptor.inl:
- * ace/MEM_Connector.h:
- * ace/MEM_Connector.inl:
- * ace/Message_Queue.h:
- * ace/OS.h:
- * ace/OS_Memory.h:
- * ace/OS_TLI.h:
- * ace/Obstack_T.h:
- * ace/Obstack_T.inl:
- * ace/POSIX_Asynch_IO.h:
- * ace/Process_Manager.h:
- * ace/Process_Manager.cpp:
- * ace/Recursive_Thread_Mutex.h:
- * ace/Recursive_Thread_Mutex.cpp:
- * ace/Refcountable_T.h:
- * ace/Strategies_T.h:
- * ace/Strategies_T.inl:
- * ace/Synch.h:
- * ace/Task.h:
- * ace/Task_Ex_T.h:
- * ace/Task_Ex_T.inl:
- * ace/Task_T.h:
- * ace/Task_T.inl:
- * ace/Thread_Control.cpp:
- * ace/Token_Collection.h:
- * ace/Token_Invariants.h:
- * ace/Token_Manager.h:
- * ace/ace_wchar.h:
- * ace/config-macosx-leopard.h:
- * ace/os_include/net/os_if.h:
- * ace/os_include/sys/os_mman.h:
- * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp:
- * netsvcs/lib/Time_Request_Reply.h:
- * netsvcs/lib/Time_Request_Reply.cpp:
- * tests/Conn_Test.cpp:
- * tests/Dirent_Test.cpp:
- * tests/Svc_Handler_Test.cpp:
- Removed several methods, files, and macros that are marked deprecated
- for several years now.
-
- * ace/Map.h:
- * ace/Method_Object.h:
- * ace/OS_Dirent.h:
- * ace/OS_String.h:
- * ace/Pair.h:
- * ace/Refcountable.h:
- * ace/Service_Templates.h:
- Removed these files.
+Wed May 16 17:41:21 UTC 2012 Steve Huston <shuston@riverace.com>
-Thu Sep 9 09:37:22 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * ace/OS_NS_Thread.cpp (ACE_Thread_ID::to_string): Use string literals
+ for the sprintf formats rather than build them up. Things have
+ simplified to the point we don't need that any longer. Thanks to
+ Rick Ohnemus for providing the patch. Fixes Bugzilla #4021.
- * bin/generate_doxygen.pl:
- Fixed errors
+Wed May 16 06:44:23 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * debian/debian.rules:
- Moving forward with OBS
+ * tests/run_test.lst:
+ * tests/tests.mpc:
+ * tests/Bug_4008_Regression_Test.cpp:
+ Removed bug 4008 test, it was testing incorrect assumptions
-Thu Sep 9 09:29:30 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Wed May 16 06:42:45 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/CDR_Base.h:
- * ace/CDR_Base.cpp:
- * ace/DEV.h:
- * ace/FILE.h:
- * ace/Global_Macros.h:
- * ace/INET_Addr.inl:
- * ace/Malloc_T.h:
- * ace/Malloc_T.inl:
- * ace/Malloc_T.cpp:
- * ace/SOCK_Dgram_Bcast.cpp:
- * ace/SSL/SSL_SOCK.h:
- * ace/Shared_Memory_Pool.cpp:
- * ace/Sock_Connect.cpp:
- * ace/config-aix-5.x.h:
- * ace/config-doxygen.h:
- * ace/config-g++-common.h:
- * ace/config-hpux-11.00.h:
- * ace/config-icc-common.h:
- * ace/config-integritySCA.h:
- * ace/config-linux-common.h:
- * ace/config-macros.h:
- * ace/config-mvs.h:
- * ace/config-openvms.h:
- * ace/config-suncc-common.h:
- * ace/config-sunos5.5.h:
- * ace/config-sunos5.6.h:
- * ace/config-tandem-nsk-mips-v2.h:
- * ace/config-tandem-nsk-mips-v3.h:
- * ace/config-win32-borland.h:
- * ace/config-win32-dmc.h:
- * ace/config-win32-ghs.h:
- * ace/config-win32-msvc-10.h:
- * ace/config-win32-msvc-7.h:
- * ace/config-win32-msvc-8.h:
- * ace/config-win32-msvc-9.h:
- * examples/IOStream/server/iostream_server.h:
- * examples/IPC_SAP/SOCK_SAP/C-inserver.cpp:
- * examples/IPC_SAP/SSL_SAP/SSL-server-fancy.cpp:
- * examples/Reactor/Misc/test_event_handler_t.cpp:
+ * ace/Basic_Types.h:
+ * ace/Basic_Types.cpp:
+ * ace/Functor.inl:
+ * ace/High_Res_Timer.inl:
+ * ace/OS_NS_time.h:
+ * ace/OS_NS_time.inl:
* tests/Basic_Types_Test.cpp:
- * tests/Conn_Test.cpp:
- * tests/Message_Queue_Test.cpp:
- * tests/SSL/Thread_Pool_Reactor_SSL_Test.h:
- * tests/SSL/Thread_Pool_Reactor_SSL_Test.cpp:
- Cleanup, all compilers support templated typedefs
+ * tests/Bug_2434_Regression_Test.cpp:
+ * tests/Time_Value_Test.cpp:
+ More cleanup due to removal of NSK
- * ace/config-cray.h:
- * ace/config-cxx-common.h:
- Removed these files, obsolete
+ * ace/Basic_Types.inl:
+ Removed this file.
-Thu Sep 9 09:01:10 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Tue May 15 18:16:09 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/ACE.cpp:
- * ace/ACE_export.h:
- * ace/ETCL/ETCL_y.cpp:
- * ace/INET_Addr.cpp:
+ * ace/ACE.inl:
+ * ace/Atomic_Op_T.h:
+ * ace/Basic_Types.h:
+ * ace/Basic_Types.inl:
+ * ace/Basic_Types.cpp:
+ * ace/CDR_Base.h:
+ * ace/Functor.h:
+ * ace/Functor.inl:
+ * ace/Handle_Set.cpp:
+ * ace/High_Res_Timer.cpp:
* ace/Log_Msg.cpp:
- * ace/OS.inl:
- * ace/OS_NS_Thread.h:
+ * ace/Numeric_Limits.h:
* ace/OS_NS_Thread.inl:
* ace/OS_NS_Thread.cpp:
- * ace/OS_NS_ctype.cpp:
- * ace/OS_NS_netdb.inl:
- * ace/OS_NS_pwd.inl:
* ace/OS_NS_stdlib.inl:
+ * ace/OS_NS_sys_select.inl:
+ * ace/OS_NS_sys_wait.inl:
+ * ace/OS_NS_time.h:
* ace/OS_NS_time.inl:
- * ace/OS_NS_time.cpp:
- * ace/POSIX_CB_Proactor.cpp:
- * ace/POSIX_Proactor.cpp:
- * ace/config-cxx-common.h:
- * ace/config-doxygen.h:
- * ace/config-integritySCA.h:
- * ace/config-lynxos.h:
- * ace/config-macros.h:
- * ace/config-openvms.h:
- * ace/config-tandem-nsk-mips-v2.h:
- * ace/config-tandem-nsk-mips-v3.h:
- * ace/config-vxworks6.4.h:
- * ace/config-win32-common.h:
+ * ace/OS_NS_unistd.inl:
+ * ace/Profile_Timer.cpp:
+ * ace/Sched_Params.cpp:
+ * ace/Stats.cpp:
+ * ace/Task.cpp:
+ * ace/Throughput_Stats.cpp:
+ * ace/Time_Value.h:
+ * ace/Time_Value.inl:
+ * ace/Truncate.h:
+ * ace/UUID.cpp:
* ace/os_include/os_pthread.h:
- * ace/os_include/os_pwd.h:
- * ace/os_include/os_signal.h:
- * ace/os_include/os_stdlib.h:
- * ace/os_include/os_time.h:
- * ace/os_include/sys/os_types.h:
- Removed Tru64, Irix, Unixware, and SCO support
-
- * debian/debian.rules:
- Improved
-
- * examples/QOS/Change_Receiver_FlowSpec/Receiver_QoS_Event_Handler.h:
- * examples/QOS/Change_Receiver_FlowSpec/Sender_QoS_Event_Handler.h:
- * examples/QOS/Change_Sender_TSpec/Receiver_QoS_Event_Handler.h:
- * examples/QOS/Change_Sender_TSpec/Sender_QoS_Event_Handler.h:
- * examples/QOS/Simple/Receiver_QoS_Event_Handler.h:
- * examples/QOS/Simple/Sender_QoS_Event_Handler.h:
- Zapped ACE_RCSID
-
- * ace/config-irix6.5.x-sgic++.h:
- * ace/config-irix6.x-common.h:
- * ace/config-irix6.x-g++.h:
- * ace/config-irix6.x-sgic++.h:
- * ace/config-sco-5.0.0-nothread.h:
- * ace/config-sco-5.0.0.h:
- * ace/config-unixware-7.1.0.h:
- * ace/config-unixware-7.1.0.udk.h:
- * include/makeinclude/platform_irix6.x_common.GNU:
- * include/makeinclude/platform_irix6.x_g++.GNU:
- * include/makeinclude/platform_irix6.x_sgic++.GNU:
- * include/makeinclude/platform_tru64_cxx.GNU:
- * include/makeinclude/platform_tru64_g++.GNU:
- * include/makeinclude/platform_tru64_post.GNU:
- * include/makeinclude/platform_tru64_pre.GNU:
- * include/makeinclude/platform_unixware_g++.GNU:
- Removed the files because Tru64, Irix, Unixware, and SCO support are
- removed now
-
-Wed Sep 8 14:54:45 UTC 2010 William Otte <wotte@zifnab>
-
- * docs/bczar/bczar.html:
+ * performance-tests/Server_Concurrency/Latency_Stats.h:
+ * performance-tests/Server_Concurrency/Leader_Follower/leader_follower.cpp:
+ * performance-tests/Server_Concurrency/Queue_Based_Workers/workers.cpp:
+ * performance-tests/UDP/udp_test.cpp:
+ * tests/Atomic_Op_Test.cpp:
+ * tests/Basic_Types_Test.cpp:
+ * tests/CDR_Array_Test.cpp:
+ Removed support for Tandem NSK. That was the last platform that
+ needed the emulated versions of ACE_INT64 and ACE_UINT64, that
+ emulation has now been removed
- Updated documentation for removal of Release makefile.
+ * ace/config-tandem-nsk-mips-v2.h:
+ * ace/config-tandem-nsk-mips-v3.h:
+ Removed these files.
-Wed Sep 8 14:40:57 UTC 2010 William Otte <wotte@zifnab>
+Mon May 14 18:48:14 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * Release:
+ * performance-tests/Server_Concurrency/Latency_Stats.h:
+ Fixed conversion warnings
- Removing obsolete release makefile.
+Sun May 13 17:13:31 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
-Wed Sep 8 10:57:12 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * ace/Sample_History.h:
+ * ace/Sample_History.inl:
+ * ace/Sample_History.cpp:
+ Introduced scale_factor_type traits to handle the fact that the
+ ACE HighResTimer scale factor is now ACE_UINT64
- * debian/ace.dsc:
- * debian/debian.changelog:
- * debian/debian.control:
- * debian/debian.rules:
- * debian/changelog:
- * debian/control:
- * debian/dsc:
- * debian/rules:
- Renamed to the names we use on OBS
+Sun May 13 12:27:03 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
-Wed Sep 8 09:11:03 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * ace/High_Res_Timer.h:
+ Fixed typo
- * tests/SSL/Bug_2912_Regression_Test.cpp:
- Fixed compile error
+ * ace/Basic_Stats.h:
+ * ace/Basic_Stats.cpp:
+ * ace/Throughput_Stats.h:
+ * ace/Throughput_Stats.cpp:
+ Introduced scale_factor_type traits to handle the fact that the
+ ACE HighResTimer scale factor is now ACE_UINT64
-Wed Sep 8 05:53:24 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * ace/Timeprobe_T.cpp:
+ Use correct trait for the scale factor
- * examples/APG/ThreadPools/Futures.cpp:
- Added missing include
+ * performance-tests/RPC/client.cpp:
+ * performance-tests/SCTP/SOCK_SEQPACK_clt.cpp:
+ * performance-tests/SCTP/SOCK_STREAM_clt.cpp:
+ * performance-tests/Server_Concurrency/Latency_Stats.h:
+ * performance-tests/TCP/tcp_test.cpp:
+ Use ACE_High_Res_Timer::global_scale_factor_type
-Tue Sep 7 17:07:58 UTC 2010 Steve Huston <shuston@riverace.com>
+Sat May 12 11:11:45 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/Process.h: Noted the affects of handle_inheritance() on Windows.
+ * ace/Time_Value.h:
+ * ace/Time_Value.cpp:
+ None of the windows compilers define ACE_LACKS_LONGLONG_T
-Tue Sep 7 14:23:13 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * ace/High_Res_Timer.h:
+ * ace/High_Res_Timer.inl:
+ * ace/High_Res_Timer.cpp:
+ Integrated patches from bugzilla 3703 increasing the precision
+ of the high resolution timers on windows
- * ace/Message_Queue_T.cpp:
- * examples/APG/ThreadPools/LF_ThreadPool.cpp:
- * examples/APG/ThreadPools/ThreadPool.cpp:
- * examples/APG/ThreadSafety/Mutex.cpp:
- * examples/APG/Threads/Condition_Variables.cpp:
- * protocols/ace/HTBP/HTBP_ID_Requestor.h:
- * protocols/ace/TMCast/Group.cpp:
- * protocols/ace/TMCast/MTQueue.hpp:
- * tests/Bug_3878_Regression_Test.cpp:
- * tests/Upgradable_RW_Test.cpp:
- Fixed compile problems
-
-Tue Sep 7 11:35:04 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Sat May 12 11:03:57 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * bin/fuzz.pl:
- Fix fuzz problem
+ * ASNMP/asnmp/transaction.cpp:
+ * Kokyu/Dispatch_Deferrer.cpp:
+ Compare return value of schedule_timer with -1
-Tue Sep 7 10:52:59 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * ace/OS_NS_time.h:
+ None of the windows compilers define ACE_LACKS_LONGLONG_T
- * Kokyu/DSRT_Direct_Dispatcher_Impl_T.cpp:
- Use ACE_GUARD
+ * bin/PerlACE/TestTarget_WinCE.pm:
+ Typo fix
- * Kokyu/Dispatcher_Task.cpp:
- Initialise pointer with 0
+Sat May 12 11:01:50 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * PROBLEM-REPORT-FORM:
- * VERSION:
- Updated support email addresses
+ * ace/config-win32-common.h:
+ None of the windows compilers define ACE_LACKS_LONGLONG_T
- * ace/ACE.inl:
- Layout changes
+Sat May 12 10:54:24 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/ACE.cpp:
- Layout changes, simplified some ifdef checks
+ * ace/Numeric_Limits.h:
+ Fixed typo
- * ace/Auto_IncDec_T.h:
- * ace/Env_Value_T.h:
- Use ACE_Copy_Disabled
+Fri May 11 17:42:08 UTC 2012 Steve Huston <shuston@riverace.com>
- * ace/Bound_Ptr.inl:
- Documentation updates
+ * ace/Dev_Poll_Reactor.cpp (mask_ops_i): Return -1 if epoll_ctl
+ fails and we don't recover from it. Fixes Bugzilla #4019. Thanks
+ to David Simmonds for this fix.
- * ace/CORBA_macros.h:
- Removed all deprecated macros
+Fri May 4 17:25:53 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/Dynamic_Service_Base.cpp:
- Use ACE_GUARD_RETURN
+ * ace/Acceptor.cpp:
+ Fixed incorrect check of the return value of schedule_timer,
+ an error is indicated with -1, not 0. Thanks to Deux deVille
+ <dev2 at weitling dot net> for reporting this
- * ace/Event_Handler_T.h:
- * ace/Event_Handler_T.inl:
- * ace/Event_Handler_T.cpp:
- Removed checks for ACE_HAS_TEMPLATE_TYPEDEFS, I think all compilers
- have this now, let us see if nothing breaks
+Thu May 3 07:15:54 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/FILE.h:
- Doxygen updates
+ * tests/Bug_3673_Regression_Test.cpp:
+ Fixed typo
- * ace/Future.h:
- * ace/Future.cpp:
- Use mutex defines
+Wed May 2 18:36:25 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/Future_Set.h:
- Use ACE_Copy_Disabled
+ * ace/OS_NS_math.h:
+ Fixed compile warning with WinCE
- * ace/Future_Set.cpp:
- Initialise pointer with 0
+Wed May 2 17:08:28 UTC 2012 Jeff Parsons <j.parsons@vanderbilt.edu>
- * ace/Global_Macros.h:
- Removed checks for ACE_HAS_TEMPLATE_TYPEDEFS, doxygen changes, make it
- possible for users to redefine ACE_GUARD macros
+ * THANKS:
- * ace/Guard_T.h:
- * ace/Guard_T.inl:
- * ace/Guard_T.cpp:
- Doxygen changes, disable ACE_Guard checks for this file
+ Added Markus Manck <Markus dot Manck at Philotech dot de>
- * ace/Hash_Map_Manager_T.h:
- * ace/Hash_Multi_Map_Manager_T.h:
- * ace/Map_Manager.h:
- Update to indicate the usage of ACE_GUARD
+Tue May 1 17:38:13 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/INET_Addr.h:
- Doxygen changes
+ * bin/msvc_mpc_auto_compile.pl:
+ Added -project_root to override $ACE_ROOT as root to search for
+ solutions. This is needed when using this script in a flat directory
+ layout
- * ace/Local_Tokens.h:
- Disable part of this file for ACE_Guard fuzz check
+Tue May 1 12:52:45 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/Log_Msg.cpp:
- Use ACE_OS::thr_self
+ * ace/OS_NS_sys_time.cpp:
+ * ace/config-win32-msvc-10.h:
+ * ace/config-win32-msvc-8.h:
+ * ace/config-win32-msvc-9.h:
+ WinCE also has non conformant timeval. When _USE_32BIT_TIME_T is not
+ defined we have to use our workaround in all cases
- * ace/Malloc_T.h:
- Disable part of this file for ACE_Guard fuzz check, doxygen changes
+Tue May 1 11:42:22 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/Message_Queue_T.h:
- * ace/Message_Queue_T.cpp:
- * ace/Message_Queue_Vx.h:
- * ace/Message_Queue_Vx.cpp:
- Removed ACE_Guard argument to some methods, not used and now cause
- fuzz to fail
+ * ace/os_include/sys/os_stat.h:
+ Fixed compile error
- * ace/Mutex.h:
- * ace/Mutex.inl:
- Added non const lock(), this fixes bugzilla 3878. Thanks to
- Susan Finster <sfinster at daetwyler-rd dot com> for reporting this
+Tue May 1 10:25:37 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/Null_Barrier.h:
- * ace/Null_Condition.h:
- * ace/Null_Mutex.h:
- * ace/Null_Semaphore.h:
- Removed old comments, disable part for ACE_Guard, removed
- ACE_Null_Mutex_Guard
+ * ace/os_include/sys/os_stat.h:
+ Compile fix for WinCE 7
- * ace/OS_NS_Thread.cpp:
- Layout changes, use ACE_Guard
+Tue May 1 07:48:30 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/OS_NS_poll.cpp:
- * ace/OS_NS_sys_select.cpp:
+ * ace/Mem_Map.cpp:
Layout changes
- * ace/OS_NS_sys_socket.inl:
- Comment change
-
- * ace/Read_Buffer.h:
- * ace/Remote_Tokens.h:
- * ace/SOCK.h:
- Doxygen changes
-
- * ace/SOCK_Connector.h:
- * ace/SOCK_Dgram_Mcast.h:
- Doxygen changes
+ * ace/config-win32-msvc-9.h:
+ Removed wince comment
- * ace/SOCK_Connector.cpp:
- Layout and const changes
+Sun Apr 29 19:17:29 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/Select_Reactor.h:
- Disable part of this file for ACE_Guard fuzz check
+ * bin/msvc_mpc_auto_compile.pl:
+ More improvements to this script
- * ace/Service_Gestalt.h:
- Use ACE_Copy_Disabled
+Sun Apr 29 19:01:08 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/Sig_Handler.cpp:
- Use ACE_GUARD macros
+ * bin/msvc_mpc_auto_compile.pl:
+ Support flat layout
- * ace/Synch_Traits.h:
- Removed ACE_HAS_TEMPLATE_TYPEDEFS checks
+Fri Apr 27 18:43:31 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/TSS_T.h:
- * ace/TSS_T.cpp:
- Use ACE_Copy_Disabled, reworked some code to fix ACE_Guard fuzz
- checks
+ * bin/msvc_mpc_auto_compile.pl:
+ Corrected output messages
- * ace/Task_Ex_T.h:
- Use ACE_Copy_Disabled
-
- * apps/Gateway/Peer/Peer.cpp:
- * apps/JAWS/server/HTTP_Server.cpp:
- * apps/JAWS/server/JAWS_IO.cpp:
- Initialise pointers with 0
-
- * apps/JAWS/server/HTTP_Helpers.cpp:
- Use ACE_GUARD macros
-
- * apps/JAWS2/JAWS/Cache_Hash_T.cpp:
- * apps/JAWS2/JAWS/Cache_Manager_T.cpp:
- * apps/JAWS2/JAWS/Cache_Object.cpp:
- * apps/JAWS2/JAWS/Concurrency.cpp:
- * apps/JAWS2/JAWS/FILE.cpp:
- * apps/JAWS2/JAWS/Jaws_IO.cpp:
- * apps/JAWS2/JAWS/Reaper.cpp:
- * apps/JAWS3/jaws3/FILE.cpp:
- Use ACE_GUARD macros
-
- * apps/gperf/src/Options.cpp:
- Rename of local variable so that we don't need to disable ACE_OS
- fuzz check
+Fri Apr 27 18:40:51 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * bin/fuzz.pl:
- Improved ACE_Guard checks and enable this one by default
+ * ace/OS_NS_time.h:
+ * ace/config-win32-msvc-9.h:
+ First fixes for WinCE 7
- * bin/generate_doxygen.pl:
- Let DANCE use the CIAO version file for the moment
+Wed Apr 25 07:02:16 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * bin/make_release.py:
- Don't create static and wince solutions as part of the release anymore,
- if you use these, generate them by hand in the future. Added vc10
- project files
-
- * examples/APG/Proactor/HA_Proactive_Status.cpp:
- * examples/APG/Reactor/Client.cpp:
- * examples/APG/Reactor/HAStatus.cpp:
- * examples/APG/Streams/Answerer.cpp:
- * examples/APG/Streams/CommandStream.cpp:
- * examples/APG/ThreadManagement/Pool.cpp:
- * examples/APG/ThreadPools/LF_ThreadPool.cpp:
- * examples/APG/ThreadPools/Task_ThreadPool.cpp:
- * examples/APG/ThreadSafety/Semaphore.cpp:
- * examples/APG/Threads/Message_Blocks.cpp:
- * examples/APG/Threads/Message_Queue.cpp:
- * examples/ASX/Message_Queue/bounded_buffer.cpp:
- * examples/ASX/Message_Queue/priority_buffer.cpp:
- * examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.cpp:
- * examples/C++NPv2/AIO_Client_Logging_Daemon.cpp:
- * examples/C++NPv2/display_logfile.cpp:
- * examples/IPC_SAP/UPIPE_SAP/ex1.cpp:
- * examples/Reactor/Misc/test_demuxing.cpp:
- * examples/Reactor/WFMO_Reactor/Talker.cpp:
- * examples/Threads/barrier2.cpp:
- * examples/Threads/thread_pool.cpp:
- Initialise pointers with 0
+ * ace/Get_Opt.cpp:
+ Reverted Wed Apr 18 08:51:31 UTC 2012 Martin Corino <mcorino@remedy.nl>
- * examples/APG/ThreadPools/ThreadPool.cpp:
- Use ACE_Thread_ID to store a print a thread id using ACE_DEBUG, that
- is the only way that is 100% portable
+Tue Apr 24 01:18:27 UTC 2012 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
- * examples/APG/Threads/Guards.cpp:
- Disable ACE_Guard fuzz
+ * ace/String_Base.h (template): Zapped the 'explicit' keywords
+ introduced by the change in
- * examples/Threads/reader_writer.cpp:
- * examples/Threads/recursive_mutex.cpp:
- Use ACE_GUARD macros
+ Tue Apr 17 19:09:30 UTC 2012 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
- * examples/Threads/thread_specific.cpp:
- * examples/Threads/tss1.cpp:
- Removed code not used
+ since it was breaking too much code.
- * include/makeinclude/platform_g++_common.GNU:
- Added CROSS_COMPILE support to this file
+Wed Apr 18 08:51:31 UTC 2012 Martin Corino <mcorino@remedy.nl>
- * include/makeinclude/platform_linux.GNU:
- * include/makeinclude/platform_linux_common.GNU:
- Moved some bits to platform_g++_common.GNU, works with G++ in
- general
+ * ace/String_Base.h:
+ Reverted 'explicit' declaration for single arg constructor for
+ const ACE_TCHAR* as implicit conversion of this arg type to
+ ACE string class is the expected behaviour (similar to the
+ STL std::string).
- * include/makeinclude/platform_qnx_neutrino.GNU:
- * include/makeinclude/platform_qnx_rtp_gcc.GNU:
- Cleanup
+ * ace/Get_Opt.cpp:
+ Introduced explicit ACE_CString constructor call for single
+ arg ACE_TCHAR (not pointer) constructor.
- * netsvcs/lib/Log_Message_Receiver.h:
- * netsvcs/lib/Log_Message_Receiver.cpp:
- Use ACE_GUARD macros
+Wed Apr 18 06:31:56 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * performance-tests/Misc/Misc.mpc:
- Enable test_guard
+ * ace/Future.cpp:
+ Fixed commented out guard. Thanks to Andreas Dröscher
+ <ace at anticat dot ch> for reporting this.
- * performance-tests/Misc/test_guard.cpp:
- Made this compiling again
+Tue Apr 17 19:09:30 UTC 2012 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
- * performance-tests/Synch-Benchmarks/Base_Test/Baseline_Test.cpp:
- * performance-tests/TCP/tcp_test.cpp:
- Renamed variable to not need ACE_OS fuzz disable code
-
- * protocols/ace/HTBP/HTBP_ID_Requestor.cpp:
- * protocols/ace/HTBP/HTBP_Session.cpp:
- Use ACE_GUARD macros
-
- * protocols/ace/RMCast/Acknowledge.h:
- * protocols/ace/RMCast/Acknowledge.cpp:
- * protocols/ace/RMCast/Bits.h:
- * protocols/ace/RMCast/Flow.h:
- * protocols/ace/RMCast/Flow.cpp:
- * protocols/ace/RMCast/Fragment.h:
- * protocols/ace/RMCast/Fragment.cpp:
- * protocols/ace/RMCast/Link.h:
- * protocols/ace/RMCast/Link.cpp:
- * protocols/ace/RMCast/Parameters.h:
- * protocols/ace/RMCast/Protocol.h:
- * protocols/ace/RMCast/Protocol.cpp:
- * protocols/ace/RMCast/Reassemble.h:
- * protocols/ace/RMCast/Reassemble.cpp:
- * protocols/ace/RMCast/Retransmit.h:
- * protocols/ace/RMCast/Retransmit.cpp:
- * protocols/ace/RMCast/Simulator.h:
- * protocols/ace/RMCast/Simulator.cpp:
- * protocols/ace/RMCast/Socket.h:
- * protocols/ace/RMCast/Socket.cpp:
- * protocols/ace/RMCast/Stack.h:
- * protocols/ace/RMCast/Stack.cpp:
- * protocols/ace/TMCast/FaultDetector.hpp:
- * protocols/ace/TMCast/Group.cpp:
- * protocols/ace/TMCast/Group.hpp:
- * protocols/ace/TMCast/GroupFwd.hpp:
- * protocols/ace/TMCast/LinkListener.hpp:
- * protocols/ace/TMCast/MTQueue.hpp:
- * protocols/ace/TMCast/MTQueue.cpp:
- * protocols/ace/TMCast/Messaging.hpp:
- * protocols/ace/TMCast/Protocol.hpp:
- * protocols/ace/TMCast/Protocol.cpp:
- * protocols/ace/TMCast/TransactionController.hpp:
- Removed commented out code, Id changes, disable ACE_Guard check
- for this project
+ * ace/String_Base.h: Made the single parameter constructors
+ explicit to avoid problems with implict conversions. Thanks to
+ Adam Rymarczuk <adam dot rymarczuk at suntradingllc dot com> for
+ reporting this.
- * rpmbuild/ace-tao.spec:
- Fixed some problems in this spec file
+Thu Apr 12 11:25:25 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * tests/Aio_Platform_Test.cpp:
- * tests/Basic_Types_Test.cpp:
- * tests/Bug_1576_Regression_Test.cpp:
- * tests/Bug_3532_Regression_Test.cpp:
- * tests/Bug_3673_Regression_Test.cpp:
- * tests/Bug_3709_Regression_Test.cpp:
- * tests/Bug_3744_Regression_Test.cpp:
- * tests/Compiler_Features_03_Test.cpp:
- * tests/Compiler_Features_09_Test.cpp:
- * tests/Compiler_Features_13_Test.cpp:
- * tests/Compiler_Features_14_Test.cpp:
- * tests/Env_Value_Test.cpp:
- * tests/Hash_Map_Bucket_Iterator_Test.cpp:
- * tests/Logging_Strategy_Test.cpp:
- * tests/MT_SOCK_Test.cpp:
- * tests/Pipe_Test.cpp:
- * tests/Priority_Task_Test.cpp:
- * tests/Proactor_UDP_Test.cpp:
- * tests/QtReactor_Test.cpp:
- * tests/Reactor_Notification_Queue_Test.cpp:
- * tests/Reactor_Registration_Test.cpp:
- * tests/Reference_Counted_Event_Handler_Test.cpp:
- * tests/Time_Service_Test.cpp:
- Zapped ACE_RCSID
+ * include/makeinclude/platform_linux_icc.GNU:
+ Added support for c++0x
- * tests/Message_Block_Test.cpp:
- * tests/Multicast_Test_IPV6.cpp:
- Initialise pointer with 0
+Tue Apr 10 20:09:23 UTC 2012 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
- * tests/Reader_Writer_Test.cpp:
- Use ACE_GUARD
+ * ace/Dev_Poll_Reactor.cpp (ACE_Dev_Poll_Reactor::resumable_handler):
+ Changed this method to return 1 instead of 0. Thanks to David
+ Simmonds <david dot simmonds at iggroup dot com> for providing
+ this fix. This fixes bugid 4015.
- * tests/Recursive_Mutex_Test.cpp:
- Disable ACE_Guard fuzz for part of this file
+ Added David to the ACE hall of fame.
- * tests/Bug_3878_Regression_Test.cpp:
- New test for bugzilla 3878
+Tue Apr 10 20:10:06 UTC 2012 Adam Mitz <mitza@ociweb.com>
- * tests/SSL/Bug_2912_Regression_Test.cpp:
- * tests/TP_Reactor_Test.cpp:
- Use ACE_GUARD
+ * bin/MakeProjectCreator/templates/gnu.mpd:
- * tests/Simple_Message_Block_Test.cpp:
- * tests/Svc_Handler_Test.cpp:
- * tests/Thread_Pool_Test.cpp:
- * tests/UPIPE_SAP_Test.cpp:
- Initialise pointers with 0
+ Install the Inline_Files even with inline=0. Many of these files
+ are still needed, especially *_T.inl. This resolves bug #4002.
- * tests/Thread_Mutex_Test.cpp:
- Disable ACE_Guard fuzz
+Mon Apr 9 21:57:39 UTC 2012 Steve Huston <shuston@riverace.com>
- * tests/Upgradable_RW_Test.cpp:
- Use ACE_GUARD
+ * ace/Timer_Queue_T.cpp (calculate_timeout): Lock the mutex before
+ accessing timer queue elements to calculate the timeout. Thanks to
+ Kannan Ramaswamy for this fix.
- * tests/run_test.lst:
- * tests/tests.mpc:
- Added 3878
+Sun Apr 8 14:25:23 UTC 2012 Phil Mesnier <mesnier_p@ociweb.com>
-Mon Sep 6 09:30:00 UTC 2010 Simon Massey <buildczar at prismtech dot com>
+ * ace/ace.mpc:
- * ace/Acceptor.cpp:
- Due to the way the code was formatted, I mistook a do {} while loop for
- a while loop with my change. I have corrected this.
+ Move ace_wchar.inl to the header section so that it is always
+ installed even when the library is built with inline=0. This is
+ required because ace_wchar is always inlined.
-Mon Sep 6 08:10:00 UTC 2010 Simon Massey <buildczar at prismtech dot com>
+Fri Apr 6 11:58:40 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/ACE.cpp:
- * ace/Acceptor.cpp:
- * ace/SOCK_IO.cpp:
- * ace/SOCK_Dgram.cpp:
- * tests/SOCK_Test.cpp:
- * tests/MT_SOCK_Test.cpp:
- * NEWS:
- Now that release x.8.3. is out, we are attempting to provide the correct
- fix to the original commit by Steve Huston related to handle_ready()
- (Fri Aug 27 19:17:11 UTC 2010 Steve Huston <shuston@riverace.com>)
- and added back the corresponding NEWS entry.
+ * docs/Download.html:
+ Added another rpm
-Sat Sep 04 18:08:03 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Fri Apr 6 10:48:03 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
* NEWS:
* bin/diff-builds-and-group-fixed-tests-only.sh:
- * bin/make_release.py:
* docs/Download.html:
+ * docs/bczar/bczar.html:
* etc/index.html:
- Updated because of release
+ Updated for next release
-Sat Sep 04 11:30:18 CEST 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Fri Apr 06 09:03:19 CEST 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ACE version 5.8.2 released.
+ * ACE version 6.1.1 released.
-Thu Sep 2 14:46:56 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+Tue Apr 3 22:49:11 UTC 2012 Steve Huston <shuston@riverace.com>
- * ace/Acceptor.cpp:
- * ace/SOCK_IO.cpp:
- * ace/SOCK_Dgram.cpp:
- * ace/ACE.cpp:
- * tests/SOCK_Test.cpp:
- * tests/MT_SOCK_Test.cpp:
- * NEWS:
- Reverted both commits by Steve Huston related to handle_ready()
- and a NEWS entry.
- Wed Sep 1 19:31:24 UTC 2010 Steve Huston <shuston@riverace.com>
- Fri Aug 27 19:17:11 UTC 2010 Steve Huston <shuston@riverace.com>
- This is necessary for a quick release of 1.8.2.
+ * ace/SOCK_Dgram_Mcast.cpp (subscribe_ifs): Set the error code when
+ a Windows API call fails. Also, when calling GetAdaptersAddresses()
+ to both check size and get the info, supply GAA_FLAG_SKIP_MULTICAST
+ as the flag value. This avoids obtaining info for joined multicast
+ addresses, not multicastable interfaces. Without the flag, and if
+ some other process does a join between the size-check call and the
+ info-gathering call, the size will be wrong.
-Wed Sep 1 19:31:24 UTC 2010 Steve Huston <shuston@riverace.com>
+Tue Apr 3 17:01:33 UTC 2012 Jeff Parsons <j.parsons@vanderbilt.edu>
- * ace/ACE.cpp (handle_ready): Changed the timeout behavior to just
- return 0, no errno, as ACE_OS::poll() and ACE_OS::select() both do.
- This restores historic behavior changed inadvertently at
- Fri Aug 27 19:17:11 UTC 2010 Steve Huston <shuston@riverace.com>
+ * THANKS:
- * ace/SOCK_Dgram.cpp:
- * ace/SOCK_IO.cpp:
- * tests/MT_SOCK_Test.cpp:
- * tests/SOCK_Test.cpp: Re-added the if/switch on return value from
- ACE::handle_read|write_ready() to detect timeout and set errno
- here.
+ Added Thomas Stegemann <Thomas dot Stegemann at materna dot de>.
- These changes were necessary to fix the TAO faults test. Thanks
- to Johnny and Simon for narrowing down the cause and testing
- the fix.
+Tue Apr 3 16:18:35 UTC 2012 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
-Wed Sep 1 15:58:47 UTC 2010 Adam Mitz <mitza@ociweb.com>
+ * ace/ACE.cpp (ACE::timestamp): Fixed an "off-by-one" error that
+ caused corruption of timestamps when using
+ ACE_LOG_TIMESTAMP="TIME" env var. Thanks to Andrea Sormanni
+ <andrea dot sormanni at gmail dot com> for reporting this and
+ providing a fix.
- * bin/MakeProjectCreator/templates/gnu.mpd:
+ Added Andrea to the Hall of Fame!
- Changed the short-circuit logic for the .NOTPARALLEL checks to ||
- instead of &&. If any one file is newer, we will have to rebuild.
- Also added a missing foreach for the output files with dependent libs.
+Fri Mar 30 14:33:58 UTC 2012 Steve Huston <shuston@riverace.com>
-Wed Sep 1 09:59:42 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+ * examples/C++NPv1/Process_Per_Connection_Logging_Server.cpp: Changed
+ use of ::sscanf_s() to only those platforms with the setting
+ ACE_HAS_TR24731_2005_CRT (VC8 and up).
- * tests/Time_Value_Test.cpp:
- Fixed compile warning on QNX. time_t on QNX is defined as unsigned
- int.
+Fri Mar 30 13:39:25 UTC 2012 Adam Mitz <mitza@ociweb.com>
-Tue Aug 31 16:53:07 UTC 2010 Jeff Parsons <j.parsons@vanderbilt.edu>
+ * include/makeinclude/platform_win32_msvc.GNU:
- * THANKS:
+ Added iphlpapi to the list of system libraries.
- Added Catherine L. Paquin <catherine dot paquin at ngc dot com>.
+Thu Mar 29 21:50:17 UTC 2012 Adam Mitz <mitza@ociweb.com>
-Tue Aug 31 14:40:17 UTC 2010 Adam Mitz <mitza@ociweb.com>
+ * bin/MakeProjectCreator/templates/gnu.mpd:
- * NEWS:
+ Postbuild steps need a dependency on the executable or library
+ so that parallel make will run them at the right time.
- Updated to proper name of Visual Studio 2010, which may assist
- those searching for it in the NEWS file.
+Wed Mar 28 22:03:45 UTC 2012 Steve Huston <shuston@riverace.com>
-Tue Aug 31 12:56:36 UTC 2010 Steve Huston <shuston@riverace.com>
+ * examples/C++NPv1/Process_Per_Connection_Logging_Server.cpp: Changed
+ the +H handle value scan to know this is a hex value on Windows, but
+ a decimal value on everything else. Thanks to Andy Gokhale for this.
- * NEWS: Added an entry for the change at
- Fri Aug 27 19:17:11 UTC 2010 Steve Huston <shuston@riverace.com>
+Wed Mar 28 21:44:20 UTC 2012 Steve Huston <shuston@riverace.com>
- * ace/README:
- * ace/config-sunos5.6.h:
- * ace/config-sunos5.7.h: Removed all mention of ACE_HAS_LIMITED_SELECT.
+ * tests/Multicast_Test.cpp: Removed the forced set_nic to "lo" for
+ Linux. It's not needed with the changes from:
+ Wed Mar 21 21:57:40 UTC 2012 Steve Huston <shuston@riverace.com>
-Mon Aug 30 18:41:24 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Mon Mar 26 11:27:11 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/ace.mpc:
- Added Obstack.h
+ * include/makeinclude/platform_mingw32.GNU:
+ Added iphlpapi
-Mon Aug 30 16:48:34 UTC 2010 Steve Huston <shuston@riverace.com>
+Sat Mar 24 21:53:13 UTC 2012 Steve Huston <shuston@riverace.com>
- * ace/FIFO.h:
- * ace/FIFO_Recv.h:
- * ace/FIFO_Send.h: Clarified initialization and open behavior.
+ * ace/SOCK_Dgram_Mcast.cpp (subscribe_ifs): For Windows, handle IPv6
+ and IPv4 differently. The make_multicast_ifaddr() call that will end
+ up being made for IPv4 wants the interface's IP address, not name.
-Mon Aug 30 15:33:57 UTC 2010 Steve Huston <shuston@riverace.com>
+ * bin/MakeProjectCreator/config/acedefaults.mpb:
+ * bin/MakeProjectCreator/config/ipv6.mpb: Moved the lit_lib for iphlpapi
+ on Windows from the IPv6 base to acedefaults. SOCK_Dgram_Mcast.cpp
+ uses it for both IPv4 and IPv6 now.
- * ace/Process.h (set_handles): Add a note that passing a socket handle
- with this mechanism does not work on Windows.
+Fri Mar 23 22:06:11 UTC 2012 Steve Huston <shuston@riverace.com>
-Mon Aug 30 10:06:24 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * ace/WIN32_Asynch_IO.cpp: Fixed possible heap corruption in
+ ACE_SOCK_Dgram_Read_Dgram::recv(). Thank you to
+ Dmytro Ovdiienko <dmitriy.ovdienko@gmail.com> for unconvering this.
- * examples/Reactor/Proactor/test_proactor2.cpp:
- * examples/Reactor/Proactor/test_proactor3.cpp:
- * tests/Proactor_Test.cpp:
- * tests/Proactor_Test_IPV6.cpp:
- * tests/Proactor_UDP_Test.cpp:
- ACE_Guard changes
-
-Fri Aug 27 19:17:11 UTC 2010 Steve Huston <shuston@riverace.com>
-
- * ace/ACE.cpp (handle_ready, handle_timed_complete,
- handle_timed_accept): On platforms where poll() is
- available, prefer that to using select() for checking a single
- handle's state and/or waiting for a condition. This preference
- was previously only used if ACE_HAS_LIMITED_SELECT was set. The
- ACE_HAS_LIMITED_SELECT choice is removed, making ACE_HAS_POLL the
- setting that switches this preference. The driving reason for this
- is that if select() is called to detect changes on a handle whose
- values falls outside that which can safely be stored in an fdset,
- the handle-setting macros/functions will set/clear bits outside
- of the fdset. This results in very weird memory changes, often in
- the stack, which are very hard to diagnose. poll()'s operation
- does not suffer from this affect. With the growing use of large
- numbers of handles and use of ACE_Dev_Poll_Reactor on Linux,
- the rate at which this problem was cropping up was increasing.
- Thanks to Olivier Langlois for diagnosing this problem and
- proposing the patch.
-
- (handle_ready): Properly set the poll condition for read and/or
- write. Thanks to kumaran.prem@gmail.com for this fix.
+ * THANKS: Added Dmytro to the Hall of Fame.
- * ace/Acceptor.cpp:
- * ace/SOCK_IO.cpp:
- * ace/SOCK_Dgram.cpp:
- * tests/MT_SOCK_Test.cpp:
- * tests/SOCK_Test.cpp: Replaced use of ACE_OS::select() with
- ACE::handle_ready() and friends.
+Thu Mar 22 16:23:14 UTC 2012 Steve Huston <shuston@riverace.com>
- This all resolves Bugzilla #3606.
+ * ace/SOCK_Dgram_Mcast.h: Corrected the description of conditions
+ under which using OPT_NULLIFACE_ALL works and neatened things up.
-Fri Aug 27 19:10:16 UTC 2010 Brian Johnson <johnsonb@ociweb.com>
+ * tests/Multicast_Test.cpp: Turn on IP_MULTICAST_LOOP all the time.
+ This test requires it and it's not universally the default.
- * bin/MakeProjectCreator/templates/gnu.mpd:
+Thu Mar 22 13:03:46 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- Merging dependent_libs support for gnuace from TAO 1.5a.
- (Bugzilla #3281)
+ * ace/ARGV.cpp:
+ * ace/Acceptor.cpp:
+ * ace/Asynch_Acceptor.cpp:
+ * ace/Cached_Connect_Strategy_T.cpp:
+ * ace/Lib_Find.cpp:
+ * ace/Strategies_T.cpp:
+ * ace/Timer_Heap_T.cpp:
+ Fixed coverity errors
+
+Wed Mar 21 21:57:40 UTC 2012 Steve Huston <shuston@riverace.com>
+
+ * ace/SOCK_Dgram_Mcast.cpp (subscribe_ifs): Expanded the use of
+ code to scan interfaces to be always, not just for IPv6, when
+ subscribing with OPT_NULLIFACE_ALL and no specific interface.
+ Also replaced use of ACE_OS::if_nameindex with getifaddr() when
+ it's available (which was only on Linux anyway) so checks
+ for interface up and multicastable can be made before joining.
+ The code now works for systems with ACE_HAS_GETIFDADDR (incl.
+ Linux, which was my main issue driving this) and Win32. The others
+ end up in the old get_ip_interfaces code which will never work
+ anywhere as far as I can tell because it tries to subscribe to an
+ interface named with the IP address in string form.
+
+ * tests/Multicast_Test.cpp: Removed hack force of interface "lo0"
+ on join(). No need for that with the fix above. For background, this
+ was added at:
+ Thu Jan 21 15:25:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+
+ * ace/Sock_Connect.cpp (get_ip_interfaces_getifaddr): Will no longer
+ return an interface marked 'down'. Partially fixes Bugzilla #1990
+ but other platform-specific changes are needed to resolve it
+ completely.
+
+Sat Mar 17 12:16:15 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
-Fri Aug 27 18:36:37 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * docs/Download.html:
+ Added link to the mailing lists with an advice for people to subscribe
- * ace/OS_NS_Thread.h:
- * ace/OS_NS_Thread.inl:
- Added assignment operator for ACE_Thread_Id
+Sat Mar 17 12:11:15 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
-Fri Aug 27 15:01:41 UTC 2010 Steve Huston <shuston@riverace.com>
+ * bin/cleanbuilds.sh:
+ * bin/diff-builds.pl:
+ Updated teststat links
- * Connector.{h cpp} (ACE_NonBlocking_Connect_Handler): Add a
- handle_close() which calls handle_input() if called by the
- ACE_Dev_Poll_Reactor to remove a failed connect. Apparently,
- Linux epoll, at least sometimes, signals EPOLLERR on a failed
- nonblocking connect, unlike the select() case which selects the
- failed fd for read. Thanks to Kannan Ramaswamy <kannan dot
- ramaswamy at cogcap dot com> for this information and fix.
+Wed Mar 14 10:04:06 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * THANKS: Added Kannan to the Hall of Fame.
+ * docs/Download.html:
+ Added link to ORBZone as community site for CORBA/CCM
-Fri Aug 27 14:17:56 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * tests/run_test.lst:
+ Mark 4008 as not fixed
- * ace/Atomic_Op.h:
- Doxygen changes
+Tue Mar 13 11:24:33 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/OS_NS_Thread.cpp:
- Use ACE_GUARD
+ * ace/Service_Gestalt.cpp:
+ Reverted change below, breaks Missing_Svc_Conf_Test test
- * bin/fuzz.pl:
- Added check for ACE_Guard
+Tue Mar 13 09:36:18 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
-Fri Aug 27 06:56:11 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * ace/Service_Gestalt.cpp:
+ Fixed bugzilla 4008, thanks to Derek Dominish
+ <derek dot dominish at dsto dot defence dot gov dot au> for
+ creating the fix
- * etc/ace.doxygen:
- * etc/acexml.doxygen:
- Fuzz fixes
+Tue Mar 13 09:29:56 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
-Thu Aug 26 13:20:48 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * tests/Bug_4008_Regression_Test.cpp:
+ * tests/run_test.lst:
+ * tests/tests.mpc:
+ New test for bugzilla 4008. Thanks to Derek Dominish
+ <derek dot dominish at dsto dot defence dot gov dot au> for
+ creating this test
- * bin/diff-builds-and-group-fixed-tests-only.sh:
- Added DANCE_ROOT
+Mon Mar 12 20:22:17 UTC 2012 Adam Mitz <mitza@ociweb.com>
-Thu Aug 26 13:08:56 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * include/makeinclude/rules.local.GNU:
- * netsvcs/servers/servers.mpc:
- Use ace_netsvcs as executable name, this makes more sense when
- we install this file in a target directory
+ Revert this part of Friday's change, with a comment added
+ to describe why this use of 'pwd' is different.
-Thu Aug 26 13:04:06 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Fri Mar 9 20:38:22 UTC 2012 Adam Mitz <mitza@ociweb.com>
- * bin/fuzz.pl:
- Check doxygen files for tabs
+ * include/makeinclude/rules.lib.GNU:
- * etc/ace.doxygen:
- * etc/ace_inet.doxygen:
- * etc/ace_qos.doxygen:
- * etc/ace_rmcast.doxygen:
- * etc/ace_ssl.doxygen:
- * etc/acexml.doxygen:
- * html/index.html:
- Changed documentation subdirectories to make debian packaging easier
+ When creating an archive library, use all object files instead of
+ just modified object files. This fixes a bug that can occur when
+ two different subdirectories have objects files with the same name.
+ The archive dosn't track directory names so "replacing" one changed
+ object could actually be clobbering another one.
-Thu Aug 26 12:30:33 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * include/makeinclude/rules.local.GNU:
- * debian/control:
- Made some fixes for x.8.1
+ Use the $(PWD) make variable for current directory.
-Thu Aug 26 11:54:15 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Wed Mar 7 14:58:07 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * bin/auto_run_tests.pl:
- Extended script to also check for $DANCE_ROOT/bin/dance_tests.lst
+ * docs/Download.html:
+ Added new download link for latest minor with versioned namespaces
-Thu Aug 26 10:20:41 UTC 2010 Martin Corino <mcorino@remedy.nl>
+Wed Mar 7 14:37:18 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/OS_NS_Thread.cpp:
- Changes implementing the patches from Bugzilla #3653 (with
- changes and some rejects; *no* asserts allowed in ACE).
+ * rpmbuild/ace-tao.spec:
+ Fix for ppc64
-Wed Aug 25 19:58:19 UTC 2010 Steve Huston <shuston@riverace.com>
+Wed Mar 7 13:31:58 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/Dev_Poll_Reactor.{h cpp}: Regarding change number 2 at
- Fri Mar 26 14:07:55 UTC 2010 Steve Huston <shuston@riverace.com>
- dispatching notifies in only one thread at a time was 1) wrong
- (TP_Reactor doesn't do this), 2) broke important existing
- applications at a customer site. This has been fixed so that the
- notify dispatch behavior is like ACE_TP_Reactor: when the
- notify handle is signaled, extract one notification, release
- the token, dispatch the notification. Thus, each thread will
- dispatch one notification, and multiple threads can dispatch
- them at the same time if there are multiples.
+ * ace/Base_Thread_Adapter.h:
+ * ace/Base_Thread_Adapter.cpp:
+ * ace/ETCL/ETCL_Constraint.inl:
+ * ace/Module.cpp:
+ * ace/Stream.cpp:
+ * ace/Thread_Manager.h:
+ * ace/Timer_Hash_T.cpp:
+ Fixed coverity errors
- Also fixed an error where it was possible to lose notice of a
- notification. Resolves Bugzilla #3328.
+Wed Mar 7 10:55:28 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
-Wed Aug 25 09:49:41 UTC 2010 Martin Corino <mcorino@remedy.nl>
+ * rpmbuild/ace-tao.spec:
+ Added new libraries
- * ace/Arg_Shifter.h:
- * ace/config-macosx-leopard.h:
- * ace/Guard_T.h:
- * ace/Global_Macros.h:
- Selected changes from patches in Bugzilla 3652.
+Wed Mar 7 10:02:49 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
-Tue Aug 24 14:21:01 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * NEWS:
+ * bin/diff-builds-and-group-fixed-tests-only.sh:
+ * docs/Download.html:
+ * docs/bczar/bczar.html:
+ * etc/index.html:
+ Updated for release
- * ace/OS_NS_Thread.h:
- Layout changes
+Wed Mar 07 09:04:40 CET 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/config-win32-common.h:
- Improved MinGW GCC 4.4 support. Thanks to
- Jani Hakala <jani dot j dot hakala at jyu dot fi> for creating the
- patch
+ * ACE version 6.1.0 released.
-Tue Aug 24 14:15:45 UTC 2010 Marijke Hengstmengel <mhengstmengel@remedy.nl>
+Sat Mar 3 20:48:15 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/Log_Msg.cpp
- * ace/Log_Msg.h
- * tests/Log_Msg_Test.cpp
- Revert changes for logging thread id as argument.
+ * ace/Thread_Manager.cpp:
+ Coverity fix
-Tue Aug 24 12:59:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+Sat Mar 3 20:45:30 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * protocols/ace/INet/ClientRequestHandler.h:
- * protocols/ace/INet/URLBase.h:
- * protocols/ace/INet/HTTP_ClientRequestHandler.h:
- Changes to fix export problems with nested classes with MSVC 7/8.
+ * ace/Event_Handler_Handle_Timeout_Upcall.cpp:
+ Coverity fix
-Tue Aug 24 11:29:45 UTC 2010 Marijke Hengstmengel <mhengstmengel@remedy.nl>
+Sat Mar 3 20:22:09 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/Log_Msg.h:
- * ace/Log_Msg.cpp:
- * tests/Log_Msg_Test.cpp:
- * ChangeLog:
- Add %#t to log a thread id that is coming from user code, as argument .
+ * ace/Compression/rle/RLECompressor.h:
+ Fixed export macro
-Mon Aug 23 19:51:59 UTC 2010 Phil Mesnier <mesnier_p@ociweb.com>
+Fri Mar 2 12:41:21 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * tests/Missing_Svc_Conf_Test.cpp:
+ * ace/Compression/rle/RLECompressor.h:
+ Fixed export macro
- Fix some scoreboard problems.
+Wed Feb 29 16:30:00 UTC 2012 Simon Massey <simon dot massey at prismtech dot com>
-Mon Aug 23 15:05:56 UTC 2010 Adam Mitz <mitza@ociweb.com>
+ * ace/CDR_Stream.cpp:
+ Allow strings to be indirected (required for ValueType RepoIDs).
- * ace/Select_Reactor.h:
+Wed Feb 29 07:25:21 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- vc10 needs an "ACE_Export" declaration on the explicit template
- instantiation of ACE_Select_Reactor.
+ * ace/Handle_Set.cpp:
+ * ace/Select_Reactor_Base.cpp:
+ * ace/Service_Types.cpp:
+ Fixed coverity errors
-Mon Aug 23 13:23:03 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Tue Feb 28 14:35:36 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/config-kfreebsd.h:
- New config file for kfreebsd
+ * ace/Process.cpp:
+ Fixed coverity error
- * ace/config-win32-common.h:
- Removed commented out defines
+Tue Feb 28 03:27:28 UTC 2012 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
-Mon Aug 23 11:57:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+ *
+ apps/JAWS3/jaws3/Reactive_IO.cpp (JAWS_IO_Reactive_Transmit::handle_output_source):
+ Check mb == 0 before using it. Thanks to Andrey Karpov <karpov
+ at viva64 dot com> for reporting this.
- * protocols/ace/INet/INet_SSL_Export.h:
- * protocols/ace/INet/HTTPS_Context.h:
- * protocols/ace/INet/HTTPS_SessionFactory.h:
- * protocols/ace/INet/HTTPS_URL.h:
- * protocols/ace/INet/SSL_CallbackManager.h:
- * protocols/ace/INet/SSL_CertificateCallback.h:
- * protocols/ace/INet/SSL_PasswordCallback.h:
- * protocols/ace/INet/SSL_X509Cert.h:
- * protocols/ace/INet/inet_ssl.mpc:
- Changes to fix MSVC 7/8 link errors.
+Tue Feb 28 03:18:56 UTC 2012 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
-Mon Aug 23 11:34:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+ * ace/Throughput_Stats.cpp (ACE_Throughput_Stats::sample): Zapped
+ a redundant else statement. Thanks to Andrey Karpov <karpov at
+ viva64 dot com> for reporting this.
- * protocols/ace/INet/HTTPS_URL.h:
- Fixed GCC41 error concerning comma at end of enum list.
+Tue Feb 28 03:15:37 UTC 2012 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
-Sat Aug 21 12:53:05 UTC 2010 Phil Mesnier <mesnier_p@ociweb.com>
+ * protocols/ace/INet/URLBase.cpp (ACE): Changed
- * tests/Missing_Svc_Conf_Test.cpp:
+ if (pos > 0 && url_string[pos+1] == '/' && url_string[pos+1] == '/')
- Added a descriptive comment block to the source.
+ to
-Fri Aug 20 13:29:22 UTC 2010 Phil Mesnier <mesnier_p@ociweb.com>
+ if (pos > 0 && url_string[pos+1] == '/' && url_string[pos+2] == '/')
- * ace/Service_Gestalt.cpp:
+ Thanks to Andrey Karpov <karpov at viva64 dot com> for reporting
+ this.
- One more shot at fixing the behavior of the service configurator
- in the face of missing defaulted svc.conf file.
+Mon Feb 27 08:11:06 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * tests/Missing_Svc_Conf_Test.cpp:
- * tests/run_test.lst:
- * tests/tests.mpc:
+ * ace/Compression/rle/RLECompressor.h:
+ Doxygen fix
- Added a proper test to ensure changes to this behavior are caught
- in the future.
+ * ace/Compression/rle/RLECompressor.cpp:
+ Fixed gcc warning
-Fri Aug 20 11:58:20 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Fri Feb 24 09:19:40 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/TSS_T.cpp:
- Updated comment
+ * ace/Compression/Compressor.h:
+ Fixed compile warning
- * include/makeinclude/platform_g++_common.GNU:
- If minimaltoc is set to 1, add -mminimal-toc to compiler flags
+Fri Feb 24 09:14:22 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * include/makeinclude/platform_linux.GNU:
- Removed check for ppc64, if you build for ppc64 and need -mminimal-toc
- add minimaltoc=1 to your platform_macros.GNU file
+ * ace/Compression/Compressor.h:
+ * ace/Compression/Compressor.cpp:
+ * ace/Compression/rle/RLECompressor.h:
+ * ace/Compression/rle/RLECompressor.cpp:
+ Added virtual destructors
-Fri Aug 20 09:52:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+Fri Feb 24 08:45:08 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * protocols/ace/INet/inet_ssl.mpb:
- Removed feature subproject config.
+ * ace/Compression/ACE_Compression.mpc:
+ * ace/Compression/rle/ACE_RLECompression.mpc:
+ Fixed id and install problems
- * protocols/ace/INet/inet_ssl.mpc:
- Added sublibrary project I forgot yesterday.
+ * bin/fuzz.pl:
+ Extended check for incorrect id tags
-Thu Aug 19 12:37:14 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Thu Feb 23 08:20:56 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/Functor_T.h:
- Doxygen changes
+ * ace/Compression/Compressor.h:
+ * ace/Compression/rle/RLECompressor.h:
+ * bin/MakeProjectCreator/config/ace_compressionlib.mpb:
+ * bin/MakeProjectCreator/config/ace_rlecompressionlib.mpb:
+ Fuzz fixes
- * include/makeinclude/platform_linux.GNU:
- Make it possible to control -mminimal-toc through the
- platform_macros.GNU file using minimaltoc
+Thu Feb 23 07:52:58 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Compression:
+ * ace/Compression/ACE_Compression.mpc:
+ * ace/Compression/ACE_Compression_export.h:
+ * ace/Compression/Compressor.h:
+ * ace/Compression/Compressor.inl:
+ * ace/Compression/Compressor.cpp:
+ * ace/Compression/rle:
+ * ace/Compression/rle/ACE_RLECompression.mpc:
+ * ace/Compression/rle/ACE_RLECompression_export.h:
+ * ace/Compression/rle/RLECompressor.h:
+ * ace/Compression/rle/RLECompressor.cpp:
+ * bin/MakeProjectCreator/config/ace_compressionlib.mpb:
+ * bin/MakeProjectCreator/config/ace_rlecompressionlib.mpb:
+ Added new ACE compression and rle compressor libraries. This code
+ was first part of TAO, but now moved to ACE because it provides
+ a basic run length encoding compressor that makes it possible to
+ compress data without depending on any external library
-Thu Aug 19 12:09:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+ * docs/bczar/bczar.html:
+ Added package
- * bin/MakeProjectCreator/config/inet.mpb:
- * bin/MakeProjectCreator/config/inetssl.mpb:
- * protocols/ace/INet/inet.mpc:
- * protocols/ace/INet/inet_ssl.mpb:
- Changes to split INet into 2 libraries; regular and SSL.
- Fixes dependencies of DAnCE tools on SSL.
+Tue Feb 21 14:52:02 UTC 2012 Adam Mitz <mitza@ociweb.com>
-Wed Aug 18 09:26:04 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+ * ace/OS_NS_Thread.inl:
+ * ace/config-vxworks6.9.h:
- * netsvcs/lib/Client_Logging_Handler.cpp:
- Fixed a compile warning.
+ Fixed errors from fuzz script.
-Tue Aug 17 07:34:31 UTC 2010 Marijke Hengstmengel <mhengstmengel@remedy.nl>
+Tue Feb 21 14:37:47 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/CDR_Stream.cpp
- Add Id
+ * PROBLEM-REPORT-FORM:
+ Removed build method question
-Mon Aug 16 22:00:06 UTC 2010 Adam Mitz <mitza@ociweb.com>
+Fri Feb 17 23:10:37 UTC 2012 Adam Mitz <mitza@ociweb.com>
- * examples/Reactor/Misc/Reactor_Misc.mpc:
+ * NEWS:
+ * ace/Message_Queue_T.cpp:
+ * ace/Message_Queue_Vx.cpp:
+ * ace/OS_NS_Thread.inl:
+ * ace/OS_NS_arpa_inet.cpp:
+ * ace/OS_NS_unistd.inl:
+ * ace/Stack_Trace.cpp:
+ * ace/config-vxworks.h:
+ * ace/config-vxworks6.9.h:
+ * ace/os_include/sys/os_types.h:
+ * include/makeinclude/platform_vxworks.GNU:
+ * include/makeinclude/platform_vxworks6.9.GNU:
+ * tests/Bug_3943_Regression_Test.cpp:
- Explicitly list an empty Template_Files so that the *_t.cpp doesn't
- get added to Template_Files.
+ Added support for VxWorks version 6.9.
-Mon Aug 16 12:58:31 UTC 2010 Marijke Hengstmengel <mhengstmengel@remedy.nl>
+Tue Feb 14 22:57:00 UTC 2012 William R. Otte <wotte@dre.vanderbilt.edu>
- * ace/Auto_Event.cpp:
- * ace/CDR_Stream.cpp:
- * ace/Cleanup.cpp:
- * ace/Codecs.cpp:
- * ace/DEV_Addr.cpp:
- * ace/Dynamic_Service_Base.cpp:
- * ace/Filecache.cpp:
- * ace/Flag_Manip.cpp:
- * ace/FlReactor/FlReactor.cpp:
- * ace/FoxReactor/FoxReactor.cpp:
- * ace/Handle_Ops.cpp:
- * ace/Hashable.cpp:
+ * ace/ACE.cpp:
+ * ace/Dev_Poll_Reactor.cpp:
+ * ace/Handle_Set.cpp:
+ * ace/High_Res_Timer.h:
+ * ace/High_Res_Timer.cpp:
+ * ace/INET_Addr.h:
* ace/INET_Addr.cpp:
- * ace/Init_ACE.cpp:
- * ace/Local_Tokens.cpp:
- * ace/Logging_Strategy.cpp:
- * ace/Malloc.cpp:
- * ace/MEM_Addr.cpp:
- * ace/Message_Block.cpp:
- * ace/Method_Request.cpp:
- * ace/Multihomed_INET_Addr.cpp:
- * ace/Name_Request_Reply.cpp:
- * ace/OS_NS_string.cpp:
- * ace/OS_Thread_Adapter.cpp:
- * ace/Parse_Node.cpp:
- * ace/Ping_Socket.cpp:
- * ace/POSIX_Asynch_IO.cpp:
- * ace/POSIX_CB_Proactor.cpp:
- * ace/Proactor.cpp:
- * ace/Proactor_Impl.cpp:
- * ace/Process_Manager.cpp:
- * ace/QoS/QoS_Decorator.cpp:
- * ace/QoS/QoS_Manager.cpp:
- * ace/QoS/QoS_Session_Factory.cpp:
- * ace/QoS/QoS_Session_Impl.cpp:
- * ace/QoS/SOCK_Dgram_Mcast_QoS.cpp:
- * ace/Reactor.cpp:
- * ace/Refcountable_T.cpp:
- * ace/Remote_Name_Space.cpp:
- * ace/Select_Reactor_Base.cpp:
- * ace/Service_Config.cpp:
- * ace/Service_Gestalt.cpp:
- * ace/Shared_Memory_SV.cpp:
- * ace/Singleton.cpp:
- * ace/Sock_Connect.cpp:
- * ace/SSL/SSL_Asynch_BIO.cpp:
- * ace/SSL/SSL_Asynch_Stream.cpp:
- * ace/SSL/SSL_Context.cpp:
- * ace/SSL/SSL_SOCK.cpp:
- * ace/SSL/SSL_SOCK_Acceptor.cpp:
- * ace/SSL/SSL_SOCK_Connector.cpp:
- * ace/SSL/SSL_SOCK_Stream.cpp:
- * ace/SString.cpp:
- * ace/Svc_Conf.y
- * ace/Svc_Conf_y.cpp:
- * ace/Task.cpp:
- * ace/Thread_Manager.cpp:
- * ace/Timer_Hash_T.cpp:
- * ace/TkReactor/TkReactor.cpp:
- * ace/Token_Collection.cpp:
- * ace/WIN32_Asynch_IO.cpp:
+ * ace/Monitor_Control/Bytes_Received_Monitor.h:
+ * ace/Monitor_Control/Bytes_Received_Monitor.cpp:
+ * ace/Monitor_Control/Bytes_Sent_Monitor.h:
+ * ace/Monitor_Control/Bytes_Sent_Monitor.cpp:
+ * ace/Monitor_Control/CPU_Load_Monitor.h:
+ * ace/Monitor_Control/CPU_Load_Monitor.cpp:
+ * ace/Monitor_Control/Linux_Network_Interface_Monitor.h:
+ * ace/Monitor_Control/Linux_Network_Interface_Monitor.cpp:
+ * ace/Monitor_Control/Num_Threads_Monitor.h:
+ * ace/Monitor_Control/Num_Threads_Monitor.cpp:
+ * ace/Monitor_Control/Packets_Received_Monitor.h:
+ * ace/Monitor_Control/Packets_Received_Monitor.cpp:
+ * ace/Monitor_Control/Packets_Sent_Monitor.h:
+ * ace/Monitor_Control/Packets_Sent_Monitor.cpp:
+ * ace/OS_NS_netdb.cpp:
+ * ace/OS_NS_sys_socket.h:
+ * ace/OS_NS_sys_socket.inl:
+ * ace/OS_NS_time.inl:
+ * ace/OS_NS_unistd.inl:
+ * ace/SOCK_Dgram.cpp:
+ * ace/SOCK_Dgram_Mcast.cpp:
+ * ace/Select_Reactor_T.cpp:
+ * ace/config-linux.h:
+ * ace/os_include/os_pthread.h:
+ * apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/systems.h:
+ * examples/APG/Signals/SigInfo.cpp:
+ * tests/INET_Addr_Test_IPV6.cpp:
+ * tests/MT_Reference_Counted_Event_Handler_Test.cpp:
+ * tests/Malloc_Test.cpp:
+ * tests/Multicast_Test.cpp:
+ * tests/Naming_Test.cpp:
+ * tests/Proactor_Test.cpp:
+ * tests/Proactor_Test_IPV6.cpp:
+ * tests/Proactor_UDP_Test.cpp:
+ * tests/Process_Test.cpp:
+ * tests/SSL/Bug_2912_Regression_Test.cpp:
+
+ Created a new macro, ACE_LINUX, which replaces all non-standard
+ tests for linux, __linux, and __linux__.
+
+Mon Feb 13 16:38:15 UTC 2012 Adam Mitz <mitza@ociweb.com>
+
+ * include/makeinclude/platform_gnuwin32_common.GNU:
+
+ Set DCCFLAGS and OCCFLAGS to get debug=X and optimize=X to work.
+
+Tue Feb 7 12:56:41 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
* ace/XtReactor/XtReactor.cpp:
- Removed ACE_RCSID
+ Use C++ cast to silence warning
-Thu Aug 12 16:07:55 UTC 2010 Steve Huston <shuston@riverace.com>
+Tue Jan 31 20:19:16 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * configure.ac: Added feature test for ACE_LACKS_STRUCT_LIFNUM.
+ * examples/Web_Crawler/Iterators.cpp:
+ * performance-tests/Misc/context_switch_time.cpp:
+ Fixed gcc 4.7 warning
-Thu Aug 12 08:39:31 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Tue Jan 31 20:17:35 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * rpmbuild/ace-tao.spec:
- Fixed problem compiling FC packages on OSB
+ * examples/IPC_SAP/SOCK_SAP/CPP-memclient.cpp:
+ Fixed gcc 4.7 warning
-Wed Aug 11 20:50:37 UTC 2010 Adam Mitz <mitza@ociweb.com>
+Mon Jan 30 09:48:00 UTC 2012 Simon Massey <simon dot massey at prismtech dot com>
- * bin/MakeProjectCreator/templates/gnu.mpd:
+ * ace/Default_Constants.h:
+ Redefined ACE_MAX_UDP_PACKET_SIZE to 65507 bytes. The actual field size
+ sets a theoretical limit of 65,535 bytes (so 65536 was completly wrong)
+ which is composed of 8 byte header +65,527 bytes of data for a UDP datagram.
+ However the practical limit for the data length which is imposed by the
+ underlying IPv4 protocol is only 65,507 bytes (65507 bytes of data +8 bytes
+ UDP header +20 bytes IP header).
- With ARCH set, we need to create the local ARCH directory for the
- executable in case there are no object files that would otherwise
- have required it.
+Fri Jan 27 09:39:57 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
-Wed Aug 11 13:45:52 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * ace/FlReactor/FlReactor.cpp:
+ Const change
- * ace/config-g++-common.h:
- Only enable GCC builtin atomic op when threads are enabled. Thanks to
- Rafi <rafi dot net at gmail dot com> for reporting this
+ * bin/valgrind.supp:
+ Added another suppress
-Tue Aug 10 17:24:05 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Fri Jan 27 09:01:51 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ACEXML/apps/svcconf/Svcconf.cpp:
- Fixed compile problem
+ * NEWS:
+ * bin/diff-builds-and-group-fixed-tests-only.sh:
+ * bin/make_release.py:
+ * docs/Download.html:
+ * docs/bczar/bczar.html:
+ * etc/index.html:
+ Updated for next release
-Tue Aug 10 08:55:17 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Fri Jan 27 08:58:54 CET 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/Makefile.am:
- Removed zapped file
+ * ACE version 6.0.8 released.
-Mon Aug 9 17:14:27 UTC 2010 Jeff Parsons <j.parsons@vanderbilt.edu>
+Thu Jan 26 20:38:47 UTC 2012 Phil Mesnier <mesnier_p@ociweb.com>
- * THANKS:
+ * ace/Condition_T.cpp:
- Added Robert Shectman <shectman at llnl dot gov>
+ In order to allow building with inlining on MacOSX Lion,
+ Condition_T.cpp needs to explicitly include Time_Value.h. In many
+ cases, Time_Value.h was being incidentally included, such as
+ through Atomic_Op_GCC_T.cpp, but that is specifically excluded for
+ Lion builds using the clang compiler.
-Mon Aug 9 16:02:08 UTC 2010 Adam Mitz <mitza@ociweb.com>
+Tue Jan 24 16:44:22 UTC 2012 Chip Jones <jonesc@ociweb.com>
- * include/makeinclude/platform_vxworks6.3.GNU:
- * include/makeinclude/platform_vxworks6.8.GNU:
+ * NEWS:
+ Added information about IDL dependency generation.
- The location of user-mode (RTP) libraries has changed in 6.8.
+Tue Jan 24 15:26:24 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
-Mon Aug 9 15:14:43 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * bin/MakeProjectCreator/config/conv_lib.mpb:
+ Fixed cleanup bug
- * ACEXML/apps/svcconf/Svcconf_Handler.cpp:
- Zap emulated exception macros
+Tue Jan 24 14:40:00 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/config-macros.h:
- Only define ACE_HAS_EXCEPTIONS when it is not defined yet
+ * bin/fuzz.pl:
+ Can't check mpc files, when they contain gnuace specific stuff they
+ need tabs
-Mon Aug 9 06:38:34 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Tue Jan 24 14:29:18 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/config-sunos5.5.h:
- Fixed compile error
+ * bin/fuzz.pl:
+ Fixed problem
-Mon Aug 9 06:35:14 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Tue Jan 24 13:52:20 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/ace.mpc:
- Removed zapped file
+ * bin/fuzz.pl:
+ Also check mpc files for tabs
+
+Tue Jan 24 13:48:49 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * apps/JAWS2/HTTPU/httpu.mpc:
+ * apps/JAWS2/JAWS/jaws2.mpc:
+ * apps/JAWS3/jaws3/jaws3.mpc:
+ * apps/gperf/tests/gperf_test.mpb:
+ * bin/MakeProjectCreator/config/ace_bzip2.mpb:
+ * bin/MakeProjectCreator/config/ace_fl.mpb:
+ * bin/MakeProjectCreator/config/ace_fox.mpb:
+ * bin/MakeProjectCreator/config/ace_openssl.mpb:
+ * bin/MakeProjectCreator/config/ace_output.mpb:
+ * bin/MakeProjectCreator/config/ace_qt.mpb:
+ * bin/MakeProjectCreator/config/ace_tk.mpb:
+ * bin/MakeProjectCreator/config/ace_x11.mpb:
+ * bin/MakeProjectCreator/config/ace_xt.mpb:
+ * bin/MakeProjectCreator/config/ace_zlib.mpb:
+ * bin/MakeProjectCreator/config/ace_zzip.mpb:
+ * bin/MakeProjectCreator/config/acedefaults.mpb:
+ * bin/MakeProjectCreator/config/conv_lib.mpb:
+ * bin/MakeProjectCreator/config/wxwindows.mpb:
+ * netsvcs/servers/servers.mpc:
+ * performance-tests/Synch-Benchmarks/Base_Test/Synch_Benchmarks_Base_Test.mpc:
+ * performance-tests/Synch-Benchmarks/Perf_Test/Synch_Benchmarks_Perf_Test.mpc:
+ * tests/tests.mpc:
+ Removed left over from automake removal
-Sun Aug 8 23:31:32 UTC 2010 William R. Otte <wotte@dre.vanderbilt.edu>
+Tue Jan 24 13:31:49 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/config-macosx-snowleopard.h:
+ * examples/Reactor/WFMO_Reactor/Network_Events.cpp:
+ Fixed gcc warning
- Clang uses ACE_ANY_OPS_USE_NAMESPACE.
+Mon Jan 23 20:21:50 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
-Fri Aug 6 17:36:45 UTC 2010 Adam Mitz <mitza@ociweb.com>
+ * bin/MakeProjectCreator/templates/gnu.mpd:
+ Fixed support for idl3toxmi and idl3toidl2 flags
+
+Mon Jan 23 12:02:07 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/MakeProjectCreator/templates/gnu.mpd:
+ Added support for idl3toxmi and idl3toidl2 flags
+
+Sun Jan 22 19:41:27 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/Reactor/WFMO_Reactor/APC.cpp:
+ * examples/Reactor/WFMO_Reactor/Abandoned.cpp:
+ * examples/Reactor/WFMO_Reactor/Directory_Changes.cpp:
+ * examples/Reactor/WFMO_Reactor/Handle_Close.cpp:
+ * examples/Reactor/WFMO_Reactor/Network_Events.cpp:
+ * examples/Reactor/WFMO_Reactor/Prerun_State_Changes.cpp:
+ * examples/Reactor/WFMO_Reactor/Registration.cpp:
+ * examples/Reactor/WFMO_Reactor/Registry_Changes.cpp:
+ * examples/Reactor/WFMO_Reactor/Suspended_Removals.cpp:
+ * examples/Reactor/WFMO_Reactor/Talker.cpp:
+ * examples/Reactor/WFMO_Reactor/Window_Messages.cpp:
+ Fixed GCC 4.6.2 release warnings
+
+Sun Jan 22 12:35:11 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/make_release.py:
+ Use the new MPC -workers option to speedup the release process
+
+Fri Jan 20 19:30:51 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/APG/Processes/Process_Mutex.cpp:
+ Use ACE_TEST_ASSERT instead of ACE_ASSERT to fix warnings in gcc 4.6
+ release builds
+
+Fri Jan 20 19:06:02 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/APG/Containers/Allocator.cpp:
+ * examples/Reactor/Misc/test_timer_queue.cpp:
+ Use ACE_TEST_ASSERT instead of ACE_ASSERT to fix warnings in gcc 4.6
+ release builds
+
+Wed Jan 18 09:02:18 UTC 2012 Martin Corino <mcorino@remedy.nl>
* bin/fuzz.pl:
+ Added suppress option to selectively disable checks.
- Added a "trailing whitespace" check (not enabled by default).
- Added the ability to pass multiple test names on the command line.
- Extend the "too long file name" check to some additional file types.
+Tue Jan 17 17:36:31 UTC 2012 Chip Jones <jonesc@ociweb.com>
-Fri Aug 6 08:39:38 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * include/makeinclude/rules.local.GNU:
+ Fixed 'no filename for -include' warning.
- * protocols/ace/TMCast/TMCast.mpc:
- Removed exceptions as base project
+Mon Jan 16 21:58:44 UTC 2012 Chip Jones <jonesc@ociweb.com>
-Thu Aug 5 16:56:01 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * bin/DependencyGenerator/GNUIDLDependencyWriter.pm:
+ * bin/DependencyGenerator/GNUIDLObjectGenerator.pm:
+ * bin/MakeProjectCreator/config/ace_idl_dependencies.mpb:
- * bin/MakeProjectCreator/config/tmcast.mpb:
- * protocols/tests/RMCast/RMCast.mpc:
- Removed exceptions as base project
+ Added these files to support generation of IDL dependencies
+ for gnuace projects.
-Thu Aug 5 09:00:49 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * bin/MakeProjectCreator/config/acedefaults.mpb:
+ * bin/MakeProjectCreator/config/global.features:
- * ace/ACE.cpp:
- * ace/ACE_crc32.cpp:
- * ace/ACE_crc_ccitt.cpp:
- * ace/ARGV.cpp:
- * ace/ATM_Acceptor.cpp:
- * ace/ATM_Addr.cpp:
- * ace/ATM_Connector.cpp:
- * ace/ATM_Params.cpp:
- * ace/ATM_QoS.cpp:
- * ace/ATM_Stream.cpp:
- * ace/Acceptor.cpp:
- * ace/Activation_Queue.cpp:
- * ace/Active_Map_Manager.cpp:
- * ace/Addr.cpp:
- * ace/Arg_Shifter.cpp:
- * ace/Argv_Type_Converter.cpp:
- * ace/Assert.cpp:
- * ace/Asynch_Acceptor.cpp:
- * ace/Asynch_IO.cpp:
- * ace/Asynch_Pseudo_Task.cpp:
- * ace/Atomic_Op.cpp:
- * ace/Atomic_Op_GCC_T.cpp:
- * ace/Atomic_Op_T.cpp:
- * ace/Auto_Ptr.cpp:
- * ace/Barrier.cpp:
- * ace/Base_Thread_Adapter.cpp:
- * ace/Basic_Stats.cpp:
- * ace/CDR_Base.cpp:
- * ace/Capabilities.cpp:
- * ace/Codeset_IBM1047.cpp:
- * ace/Codeset_Registry.cpp:
- * ace/Condition_Thread_Mutex.cpp:
- * ace/Connection_Recycling_Strategy.cpp:
- * ace/Containers.cpp:
- * ace/Copy_Disabled.cpp:
- * ace/Countdown_Time.cpp:
- * ace/DEV.cpp:
- * ace/DEV_Connector.cpp:
- * ace/DEV_IO.cpp:
- * ace/DLL.cpp:
- * ace/DLL_Manager.cpp:
- * ace/Date_Time.cpp:
- * ace/Dev_Poll_Reactor.cpp:
- * ace/Dirent_Selector.cpp:
- * ace/Dump.cpp:
- * ace/Dynamic.cpp:
- * ace/Dynamic_Message_Strategy.cpp:
- * ace/Dynamic_Service_Dependency.cpp:
- * ace/Event.cpp:
- * ace/Event_Handler.cpp:
- * ace/FIFO.cpp:
- * ace/FIFO_Recv.cpp:
- * ace/FIFO_Recv_Msg.cpp:
- * ace/FIFO_Send.cpp:
- * ace/FIFO_Send_Msg.cpp:
- * ace/FILE.cpp:
- * ace/FILE_Addr.cpp:
- * ace/FILE_Connector.cpp:
- * ace/FILE_IO.cpp:
- * ace/File_Lock.cpp:
- * ace/Framework_Component.cpp:
- * ace/Functor.cpp:
- * ace/Functor_String.cpp:
- * ace/Future.cpp:
- * ace/Get_Opt.cpp:
- * ace/Handle_Set.cpp:
- * ace/High_Res_Timer.cpp:
- * ace/ICMP_Socket.cpp:
- * ace/IOStream.cpp:
- * ace/IO_Cntl_Msg.cpp:
- * ace/IO_SAP.cpp:
- * ace/IPC_SAP.cpp:
- * ace/LSOCK.cpp:
- * ace/LSOCK_Acceptor.cpp:
- * ace/LSOCK_CODgram.cpp:
- * ace/LSOCK_Connector.cpp:
- * ace/LSOCK_Dgram.cpp:
- * ace/LSOCK_Stream.cpp:
- * ace/Lib_Find.cpp:
- * ace/Local_Memory_Pool.cpp:
- * ace/Local_Name_Space.cpp:
- * ace/Lock.cpp:
- * ace/Log_Msg.cpp:
- * ace/Log_Msg_Backend.cpp:
- * ace/Log_Msg_Callback.cpp:
- * ace/Log_Msg_IPC.cpp:
- * ace/Log_Msg_NT_Event_Log.cpp:
- * ace/Log_Record.cpp:
- * ace/MEM_Acceptor.cpp:
- * ace/MEM_Connector.cpp:
- * ace/MEM_IO.cpp:
- * ace/MEM_SAP.cpp:
- * ace/MEM_Stream.cpp:
- * ace/MMAP_Memory_Pool.cpp:
- * ace/Malloc_Allocator.cpp:
- * ace/Manual_Event.cpp:
- * ace/Mem_Map.cpp:
- * ace/Message_Queue.cpp:
- * ace/Message_Queue_NT.cpp:
- * ace/Message_Queue_Vx.cpp:
- * ace/Msg_WFMO_Reactor.cpp:
- * ace/Mutex.cpp:
- * ace/Name_Proxy.cpp:
- * ace/Name_Space.cpp:
- * ace/Naming_Context.cpp:
- * ace/Notification_Strategy.cpp:
- * ace/OS.cpp:
- * ace/OS_Errno.cpp:
- * ace/OS_Log_Msg_Attributes.cpp:
- * ace/OS_NS_Thread.cpp:
- * ace/OS_NS_arpa_inet.cpp:
- * ace/OS_NS_ctype.cpp:
- * ace/OS_NS_dirent.cpp:
- * ace/OS_NS_dlfcn.cpp:
- * ace/OS_NS_errno.cpp:
- * ace/OS_NS_fcntl.cpp:
- * ace/OS_NS_math.cpp:
- * ace/OS_NS_netdb.cpp:
- * ace/OS_NS_poll.cpp:
- * ace/OS_NS_pwd.cpp:
- * ace/OS_NS_regex.cpp:
- * ace/OS_NS_signal.cpp:
- * ace/OS_NS_stdio.cpp:
- * ace/OS_NS_stdlib.cpp:
- * ace/OS_NS_strings.cpp:
- * ace/OS_NS_stropts.cpp:
- * ace/OS_NS_sys_mman.cpp:
- * ace/OS_NS_sys_msg.cpp:
- * ace/OS_NS_sys_resource.cpp:
- * ace/OS_NS_sys_select.cpp:
- * ace/OS_NS_sys_shm.cpp:
- * ace/OS_NS_sys_socket.cpp:
- * ace/OS_NS_sys_stat.cpp:
- * ace/OS_NS_sys_time.cpp:
- * ace/OS_NS_sys_uio.cpp:
- * ace/OS_NS_sys_utsname.cpp:
- * ace/OS_NS_sys_wait.cpp:
- * ace/OS_NS_time.cpp:
- * ace/OS_NS_unistd.cpp:
- * ace/OS_NS_wchar.cpp:
- * ace/OS_NS_wctype.cpp:
- * ace/OS_TLI.cpp:
- * ace/OS_main.cpp:
- * ace/Obchunk.cpp:
- * ace/Object_Manager.cpp:
- * ace/Object_Manager_Base.cpp:
- * ace/PI_Malloc.cpp:
- * ace/Pagefile_Memory_Pool.cpp:
- * ace/Pipe.cpp:
- * ace/Priority_Reactor.cpp:
- * ace/Process.cpp:
- * ace/Process_Mutex.cpp:
- * ace/Process_Semaphore.cpp:
- * ace/Profile_Timer.cpp:
- * ace/RW_Mutex.cpp:
- * ace/RW_Process_Mutex.cpp:
- * ace/RW_Thread_Mutex.cpp:
- * ace/Reactor_Impl.cpp:
- * ace/Reactor_Notification_Strategy.cpp:
- * ace/Reactor_Timer_Interface.cpp:
- * ace/Read_Buffer.cpp:
- * ace/Recursive_Thread_Mutex.cpp:
- * ace/Recyclable.cpp:
- * ace/Registry.cpp:
- * ace/Registry_Name_Space.cpp:
- * ace/Remote_Tokens.cpp:
- * ace/SOCK.cpp:
- * ace/SOCK_Acceptor.cpp:
- * ace/SOCK_CODgram.cpp:
- * ace/SOCK_Connector.cpp:
- * ace/SOCK_Dgram.cpp:
- * ace/SOCK_Dgram_Bcast.cpp:
- * ace/SOCK_Dgram_Mcast.cpp:
- * ace/SOCK_IO.cpp:
- * ace/SOCK_SEQPACK_Acceptor.cpp:
- * ace/SOCK_SEQPACK_Association.cpp:
- * ace/SOCK_SEQPACK_Connector.cpp:
- * ace/SOCK_Stream.cpp:
- * ace/SPIPE.cpp:
- * ace/SPIPE_Acceptor.cpp:
- * ace/SPIPE_Addr.cpp:
- * ace/SPIPE_Connector.cpp:
- * ace/SPIPE_Stream.cpp:
- * ace/SUN_Proactor.cpp:
- * ace/SV_Message.cpp:
- * ace/SV_Message_Queue.cpp:
- * ace/SV_Semaphore_Complex.cpp:
- * ace/SV_Semaphore_Simple.cpp:
- * ace/SV_Shared_Memory.cpp:
- * ace/Sample_History.cpp:
- * ace/Sbrk_Memory_Pool.cpp:
- * ace/Sched_Params.cpp:
- * ace/Select_Reactor_T.cpp:
- * ace/Semaphore.cpp:
- * ace/Service_Manager.cpp:
- * ace/Service_Object.cpp:
- * ace/Service_Repository.cpp:
- * ace/Service_Types.cpp:
- * ace/Shared_Memory.cpp:
- * ace/Shared_Memory_MM.cpp:
- * ace/Shared_Memory_Pool.cpp:
- * ace/Shared_Object.cpp:
- * ace/Sig_Adapter.cpp:
- * ace/Sig_Handler.cpp:
- * ace/Signal.cpp:
- * ace/Stack_Trace.cpp:
- * ace/Stats.cpp:
- * ace/Synch_Options.cpp:
- * ace/System_Time.cpp:
- * ace/TLI.cpp:
- * ace/TLI_Acceptor.cpp:
- * ace/TLI_Connector.cpp:
- * ace/TLI_Stream.cpp:
- * ace/TP_Reactor.cpp:
- * ace/TSS_Adapter.cpp:
- * ace/TTY_IO.cpp:
- * ace/Thread.cpp:
- * ace/Thread_Adapter.cpp:
- * ace/Thread_Control.cpp:
- * ace/Thread_Exit.cpp:
- * ace/Thread_Hook.cpp:
- * ace/Thread_Mutex.cpp:
- * ace/Thread_Semaphore.cpp:
- * ace/Throughput_Stats.cpp:
- * ace/Time_Value.cpp:
- * ace/Timeprobe.cpp:
- * ace/Timer_List_T.cpp:
- * ace/Token.cpp:
- * ace/Token_Invariants.cpp:
- * ace/Token_Manager.cpp:
- * ace/Token_Request_Reply.cpp:
- * ace/Trace.cpp:
- * ace/UNIX_Addr.cpp:
- * ace/UPIPE_Acceptor.cpp:
- * ace/UPIPE_Connector.cpp:
- * ace/UPIPE_Stream.cpp:
- * ace/UUID.cpp:
- * ace/WFMO_Reactor.cpp:
- * ace/WIN32_Proactor.cpp:
- * ace/XTI_ATM_Mcast.cpp:
- * ace/ace_wchar.cpp:
- * ace/gethrtime.cpp:
- Removed ACE_RCSID
+ Added IDL dependency as a feature defaulted to off.
-Thu Aug 5 08:13:51 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * bin/MakeProjectCreator/templates/gnu.mpd:
- * ace/CORBA_macros.h:
- * ace/Global_Macros.h:
- * ace/Vector_T.h:
- * ace/ace_wchar.h:
- * ace/config-cxx-common.h:
- * ace/config-doxygen.h:
- * ace/config-g++-common.h:
- * ace/config-hpux-11.00.h:
- * ace/config-icc-common.h:
- * ace/config-integritySCA.h:
- * ace/config-macros.h:
- * ace/config-netbsd.h:
- * ace/config-openvms.h:
- * ace/config-suncc-common.h:
- * ace/config-sunos5.4-sunc++-4.x.h:
- * ace/config-sunos5.5.h:
- * ace/config-tandem-nsk-mips-v2.h:
- * ace/config-tandem-nsk-mips-v3.h:
- * ace/config-unixware-7.1.0.h:
- * ace/config-unixware-7.1.0.udk.h:
- * ace/config-win32-borland.h:
- * ace/config-win32-dmc.h:
- * ace/config-win32-ghs.h:
- * ace/config-win32-interix.h:
- * ace/config-win32-msvc-10.h:
- * ace/config-win32-msvc-7.h:
- * ace/config-win32-msvc-8.h:
- * ace/config-win32-msvc-9.h:
- * include/makeinclude/platform_aix.GNU:
- * include/makeinclude/platform_aix_g++.GNU:
- * include/makeinclude/platform_aix_ibm.GNU:
- * include/makeinclude/platform_cray.GNU:
- * include/makeinclude/platform_freebsd.GNU:
- * include/makeinclude/platform_gnuwin32_common.GNU:
- * include/makeinclude/platform_hpux_aCC.GNU:
- * include/makeinclude/platform_hpux_gcc.GNU:
- * include/makeinclude/platform_integrity_ghs.GNU:
- * include/makeinclude/platform_irix6.x_common.GNU:
- * include/makeinclude/platform_linux_common.GNU:
- * include/makeinclude/platform_lynxos.GNU:
- * include/makeinclude/platform_macosx.GNU:
- * include/makeinclude/platform_macosx_common.GNU:
- * include/makeinclude/platform_macosx_icc.GNU:
- * include/makeinclude/platform_macosx_panther.GNU:
- * include/makeinclude/platform_netbsd.GNU:
- * include/makeinclude/platform_openbsd.GNU:
- * include/makeinclude/platform_openvms.GNU:
- * include/makeinclude/platform_qnx_rtp_gcc.GNU:
- * include/makeinclude/platform_rtems.x_g++.GNU:
- * include/makeinclude/platform_sunos5_g++.GNU:
- * include/makeinclude/platform_sunos5_sunc++.GNU:
- * include/makeinclude/platform_tandem.GNU:
- * include/makeinclude/platform_tru64_cxx.GNU:
- * include/makeinclude/platform_tru64_g++.GNU:
- * include/makeinclude/platform_unixware_g++.GNU:
- * include/makeinclude/platform_vxworks5.5.x.GNU:
- * include/makeinclude/platform_vxworks6.2.GNU:
- * include/makeinclude/platform_vxworks6.3.GNU:
- * include/makeinclude/platform_win32_dmc.GNU:
- * include/makeinclude/platform_win32_icc.GNU:
- * include/makeinclude/platform_win32_interix.GNU:
+ Modified gnuace template to generate IDL dependency rules.
+
+ * include/makeinclude/rules.common.GNU:
+ * include/makeinclude/rules.local.GNU:
* include/makeinclude/wrapper_macros.GNU:
- * tests/Bug_3673_Regression_Test.cpp:
- * tests/Reactor_Exceptions_Test.cpp:
- * tests/tests.mpc:
- Removed support for non exception builds, ACE_HAS_EXCEPTIONS is
- now always defined
- * rpmbuild/ace-tao.spec:
- Small updates
+ Added depend_idl.local rule.
- * ace/Exception_Macros.h:
- * bin/MakeProjectCreator/config/exceptions.mpb:
- Removed these files.
+ This is a merge of work done in the 'ace-mpc_performance'
+ branch.
-Thu Aug 5 07:40:00 UTC 2010 Build CZar <buildczar at prismtech dot com>
+Mon Jan 16 10:33:37 UTC 2012 Martin Corino <mcorino@remedy.nl>
- * ace/OS_NS_Thread.cpp:
- Add the missing ; to the lines added by the fix below.
- Wed Aug 4 14:16:46 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * ace/config-win32-common.h:
+ * ace/config-win32-mingw.h:
+ Moved MinGW specific block to common because the macros
+ it concerns are tested there already.
-Wed Aug 4 17:21:17 UTC 2010 Chris Cleeland <cleeland@ociweb.com>
+Mon Jan 16 09:01:20 UTC 2012 Martin Corino <mcorino@remedy.nl>
- * bin/MakeProjectCreator/config/crosscompile.mpb:
- Added specific clause for cdt6.
+ * ace/config-win32-mingw.h:
+ Fixed incorrectly placed macro test.
-Wed Aug 4 14:16:46 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Sun Jan 15 19:15:48 UTC 2012 Martin Corino <mcorino@remedy.nl>
- * ace/OS_NS_Thread.cpp:
- Check more internal return values
+ * ace/config-win32-mingw.h:
+ Add some customizations and corrections to support using
+ --std=c++0x with MinGW32.
- * rpmbuild/ace-tao.spec-bugfixonly.patch:
- Removed this file, not needed
+Fri Jan 13 23:25:59 UTC 2012 Jeff Parsons <j.parsons@vanderbilt.edu>
-Tue Aug 3 12:14:51 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * THANKS:
- * bin/generate_doxygen.pl:
- * html/index.html:
- DAnCE has its own file now and also some documentation got moved
- out of the tao directory
+ Added Michael Frommberger <michael dot frommberger at gmx dot net>
-Sun Aug 1 18:14:03 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Wed Jan 11 20:43:47 UTC 2012 Martin Corino <mcorino@remedy.nl>
- * NEWS:
- * bin/diff-builds-and-group-fixed-tests-only.sh:
- * bin/make_release.py:
- * docs/Download.html:
- * etc/index.html:
- Updated because of release
+ * ace/config-freebsd.h:
+ * ace/config-win32-common.h:
+ * ace/config-win32-mingw.h:
+ * ace/os_include/os_signal.h:
+ Added ACE_LACKS_SIGSET_T to be able to distinguish between the
+ type and the functions being provided or not.
- * debian/*:
- Did rename actions the release script didn't do, have to sort this
- out later
+Wed Jan 11 18:43:50 UTC 2012 Martin Corino <mcorino@remedy.nl>
-Sun Aug 01 11:30:54 CEST 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * ace/config-win32-mingw.h:
+ Fixed typo.
- * ACE version 5.8.1 released.
+Wed Jan 11 15:41:00 UTC 2012 Simon Massey <simon dot massey at prismtech dot com>
-Thu Jul 29 14:41:32 UTC 2010 Steve Huston <shuston@riverace.com>
+ * ace/config-sunos5.10.h:
+ Is supposed to define ACE_SIZE_T_FORMAT_SPECIFIER_ASCII and ACE_SSIZE_T_FORMAT_SPECIFIER_ASCII
+ correctly for this platform. The old logic was "If already defined - redefine, but if not
+ defined don't define" and wrong. The point of providing the definition of these SIZE_T format
+ specifiers is to provide them if they are not set.
- * ace/Process.h (set_handles): Clarify that passing ACE_INVALID_HANDLE
- for any of the handle values will cause a duplicate of the
- corresponding ACE_STDIN/OUT/ERR to be used in the options.
+Wed Jan 11 14:36:43 UTC 2012 Martin Corino <mcorino@remedy.nl>
-Thu Jul 29 10:43:32 UTC 2010 Marcel Smit <msmit@remedy.nl>
+ * ace/config-win32-mingw.h:
+ * ace/os_include/os_signal.h:
+ Changes to support MinGW64 compiler.
- * bin/MakeProjectCreator/config/global.features:
- * bin/MakeProjectCreator/config/inetssl.mpb:
- * protocols/ace/INet/inet_ssl.mpb:
- Created a new feature, inet_ssl. When set, the INet libary
- builds, using SSL. To let the INet libary use SSL, one should
- enable the inet_ssl feature in default.features and add ssl=1 to
- the platform_macos.GNU.
+Mon Jan 9 11:07:54 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
-Mon Jul 26 20:26:53 UTC 2010 Steve Huston <shuston@riverace.com>
+ * ace/Netlink_Addr.h:
+ * ace/Notification_Queue.h:
+ Doxygen fixes
- * ace/OS_NS_Thread.h: Note that the cpu_set_size to the get/set
- affinity methods is a byte count.
+ * tests/run_test.lst:
+ Removed several old config labels
-Mon Jul 26 07:02:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+Fri Jan 6 11:16:03 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * bin/MakeProjectCreator/config/inet.mpb:
- * protocols/ace/INet/inet.mpc:
- Added avoids += corba_e_compact.
+ * html/Stats/configuration.shtml:
+ * html/Stats/index.shtml:
+ * html/Stats/simple_footprint.shtml:
+ Extended data to be shown and updated links
-Thu Jul 22 04:35:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+Fri Jan 6 10:28:35 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * bin/MakeProjectCreator/config/inet.mpb:
- * protocols/ace/INet/inet.mpc:
- Added avoids += ace_for_tao.
+ * ace/Stream.cpp:
+ Fixed coverity errors
-Wed Jul 21 18:23:32 UTC 2010 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+Wed Jan 4 13:02:12 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/Basic_Types.h (ACE_INT8_FORMAT_SPECIFIER): Added the missing
- "_ASCII" to the ACE_INT8_FORMAT_SPECIFIER macro usage. Thanks
- to Andre Kostur <akostur at incognito dot com> for reporting
- this.
+ * bin/generate_compile_stats.sh:
+ Added link for DAnCE
-Wed Jul 21 15:52:32 UTC 2010 Phil Mesnier <mesnier_p@ociweb.com>
+Wed Jan 4 11:45:43 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/Service_Gestalt.h:
- * ace/Service_Gestalt.inl:
- * ace/Service_Gestalt.cpp:
+ * html/Stats/index.shtml:
+ Fixed link
- Reverted for_TAO specific change, revised the processing to
- ensure default first, then files, then cmdline directives.
+Wed Jan 4 11:42:13 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
-Wed Jul 21 03:07:28 UTC 2010 Phil Mesnier <mesnier_p@ociweb.com>
+ * bin/generate_compile_stats.sh:
+ Work with flat layout and added DAnCE
- * ace/Service_Gestalt.h:
- * ace/Service_Gestalt.cpp:
+Wed Jan 4 11:06:50 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- Fix errors in premature committal.
+ * bin/generate_compile_stats.sh:
+ Updated title to include DAnCE
-Wed Jul 21 02:30:45 UTC 2010 Phil Mesnier <mesnier_p@ociweb.com>
+Wed Jan 4 08:50:18 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/Service_Gestalt.h:
- * ace/Service_Gestalt.inl:
- * ace/Service_Gestalt.cpp:
+ * bin/cleanbuilds.sh:
+ * bin/mail_test_stats.sh:
+ Accept date and email as arguments
- Add a specialized open method to be called by TAO. TAO depends
- on a modified order of directive evaluation.
+Tue Jan 3 18:47:23 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
-Tue Jul 20 18:02:03 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * bin/performance_stats.sh:
+ * bin/topinfo_iorsize_stats.sh:
+ * bin/topinfo_simple_stats.sh:
+ * bin/topinfo_stats.sh:
+ Assume ACE_ROOT is set before running the script, simplified the usage
- * docs/Download.html:
- Fixed some typos, thanks to Thomas Lockhart
- <Thomas dot lockhart at jpl dot nasa dot gov> for reporting this
+Tue Jan 3 18:34:18 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
-Tue Jul 20 15:08:49 UTC 2010 Phil Mesnier <mesnier_p@ociweb.com>
+ * bin/valgrind.supp:
+ Added default suppress file that can be used for valgrind when using
+ valgrind for ACE/TAO/CIAO/DAnCE
- * tests/Bug_3319_Regression_Test.cpp:
+ * docs/bczar/bczar.html:
+ Added package
- Fix the test to be consistent with revised service config
- behavior. The test had assumed that ACE_Service_Config::open()
- would return 0 even if svc.conf were not present, but since it
- was setting the ignore_default_svc_conf_file to 0, the restore
- behavior of the service configurator is to fail with ENOENT in
- that case.
+Tue Jan 3 13:51:18 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
-Tue Jul 20 08:48:00 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+ * bin/performance_stats.sh:
+ Create source directory
- * ace/TSS_T.cpp:
- Fixed a bug in ACE_TSS::ts_get() that only exhibited on
- SunOS/Studio builds. The later configutsyion uses ACE_HAS_THR_C_DEST
- and with that define ts_get() behaved differently. In particular it
- didn't create a ts_obj if tss_adapter was not 0.
+Tue Jan 3 12:52:04 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
-Tue Jul 20 07:38:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+ * bin/performance_stats.sh:
+ * bin/topinfo_iorsize_stats.sh:
+ * bin/topinfo_simple_stats.sh:
+ * bin/topinfo_stats.sh:
+ * bin/footprint_stats.sh:
+ Converting them to support a flat layout
- * protocols/ace/INet/SSL_CallbackManager.h:
- Fixed comment typo.
+Tue Jan 3 12:40:43 UTC 2012 Johnny Willemsen <jwillemsen@remedy.nl>
-Tue Jul 20 05:25:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+ * html/Stats/detailed_footprint.shtml:
+ * html/Stats/detailed_performance.shtml:
+ * html/Stats/footer.html:
+ * html/Stats/index.shtml:
+ * html/Stats/navigation.html:
+ Updated links, docu, status
- * protocols/ace/INet/HTTP_BasicAuthentication.cpp:
- * protocols/ace/INet/HTTP_BasicAuthentication.h:
- * protocols/ace/INet/HTTP_BasicAuthentication.inl:
- * protocols/ace/INet/inet.mpc:
- Added basic support for HTTP Basic Authentication scheme.
+ * html/Stats/compilation.shtml:
+ Removed this file.
-Tue Jul 20 03:56:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+Sat Dec 31 22:12:53 UTC 2011 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
- * protocols/ace/INet/HTTP_SessionBase.cpp:
- Fixed MSVC 7.1 compile problems.
+ * ace/Timer_Wheel_T.cpp: Changed the call to "delete root" in the
+ destructor to "this->free_node (root)" so the ACE_Timer_Wheel_T
+ will work properly when provided a custom allocator. Thanks to
+ Koh <k_onishi at mtj dot biglobe dot ne dot jp> for reporting
+ this bug and providing a fix.
- * protocols/ace/INet/HTTP_Simple_exec.cpp:
- Fixed compile problems for non-SSL builds.
+Fri Dec 30 10:13:59 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
-Tue Jul 20 03:25:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+ * ace/config-linux.h:
+ Added support for ulibc, thanks to Chong Wuk Pak
+ <chong dot pak at lmco dot com> for providing the patch. This fixes
+ bugzilla 3999
- * bin/MakeProjectCreator/config/inetssl.mpb:
- * protocols/ace/INet/inet_ssl.mpb:
- Fuzz fixes.
+Thu Dec 29 17:29:06 UTC 2011 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
-Mon Jul 19 11:50:59 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+ * ace/Mem_Map.cpp (ACE_Mem_Map::map_it): Fixed a missing '('. Thanks to Johnny for reporting this.
- * ace/TSS_T.inl:
- * ace/TSS_T.h:
- * ace/TSS_T.cpp:
- Mostly fixed bug 3539. It doesn't fix a case when main thread
- doesn't own ACE_TSS but still uses it. Fixing the later is not
- straight forward and will require a lot more efforts.
- Also rearranged the code so that it has less duplicates.
+Thu Dec 29 15:14:45 UTC 2011 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
- * tests/run_test.lst:
- Marked the test as fixed.
+ * ace/Mem_Map.cpp (ACE_Mem_Map::map_it): Further improved the
+ error checking. Thanks to JaeSung Lee <berise at gmail dot
+ com> for suggesting this.
-Mon Jul 19 09:15:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+Tue Dec 27 15:19:56 UTC 2011 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
- * bin/MakeProjectCreator/config/inet.mpb:
- * bin/MakeProjectCreator/config/global.features:
- * protocols/ace/INet/inet.mpc:
- Added new feature 'exclude_inet' to allow builds to
- explicitly exclude building INet.
+ * ace/Mem_Map.cpp (ACE_Mem_Map::map_it): mmap through character
+ device doesn't care about it's size, so map with /dev/* is done
+ with a special case. Thanks to JaeSung Lee <berise at gmail dot
+ com> for reporting this and providing a fix.
+
+Tue Dec 27 11:39:53 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
-Mon Jul 19 08:49:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+ * NEWS:
+ * bin/diff-builds-and-group-fixed-tests-only.sh:
+ * docs/Download.html:
+ * docs/bczar/bczar.html:
+ * etc/index.html:
+ Updated for next release
- * protocols/ace/INet/HTTPS_Session.cpp:
- * protocols/ace/INet/HTTPS_Session.h:
- Fixed compile errors byadding version check to disable
- 'relatively' new OpenSSL functionality for builds using
- outdated OpenSSL installations (OpenSSL <= 0.9.8e).
+Tue Dec 27 10:06:28 CET 2011 Johnny Willemsen <jwillemsen@remedy.nl>
-Sat Jul 17 14:06:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+ * ACE version 6.0.7 released.
- * protocols/ace/INet/ClientRequestHandler.h:
- * protocols/ace/INet/URLBase.h:
- Some include shuffling to fix an incomplete type warning
- with MSVC.
+Wed Dec 21 11:25:49 UTC 2011 Marcel Smit <msmit@remedy.nl>
-Sat Jul 17 11:39:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+ * tests/Task_Wait_Test.cpp:
+ Fixed compile issue on Solaris 10.
- * protocols/ace/INet/inet_ssl.mpb:
- Replaced ace_openssl base project by ssl. Fixes missing
- ACE_SSL lib link errors.
+Wed Dec 21 09:41:54 UTC 2011 Martin Corino <mcorino@remedy.nl>
- * protocols/ace/INet/SSL_CallbackManager.cpp:
- Fixed MSVC compile errors.
-
-Sat Jul 17 10:26:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
-
- * bin/MakeProjectCreator/config/inetssl.mpb:
- * bin/MakeProjectCreator/config/inet.mpb:
- Added feature project for SSL based parts of INet.
- Setting feature ssl=1 will automatically cause correct
- dependencies for SSL to be generated in INet based projects.
-
- * protocols/ace/INet/HTTPS_Context.cpp:
- * protocols/ace/INet/HTTPS_Context.h:
- * protocols/ace/INet/HTTPS_Context.inl:
- * protocols/ace/INet/HTTP_SessionBase.cpp:
- * protocols/ace/INet/HTTP_SessionBase.h:
- * protocols/ace/INet/HTTP_SessionBase.inl:
- * protocols/ace/INet/HTTPS_Session.cpp:
- * protocols/ace/INet/HTTPS_SessionFactory.cpp:
- * protocols/ace/INet/HTTPS_SessionFactory.h:
- * protocols/ace/INet/HTTPS_Session.h:
- * protocols/ace/INet/HTTPS_URL.cpp:
- * protocols/ace/INet/HTTPS_URL.h:
- * protocols/ace/INet/HTTPS_URL.inl:
- * protocols/ace/INet/SSL_CallbackManager.cpp:
- * protocols/ace/INet/SSL_CallbackManager.h:
- * protocols/ace/INet/SSL_CallbackManager.inl:
- * protocols/ace/INet/SSL_CertificateCallback.cpp:
- * protocols/ace/INet/SSL_CertificateCallback.h:
- * protocols/ace/INet/SSL_CertificateCallback.inl:
- * protocols/ace/INet/SSL_PasswordCallback.cpp:
- * protocols/ace/INet/SSL_PasswordCallback.h:
- * protocols/ace/INet/SSL_Proxy_Connector.cpp:
- * protocols/ace/INet/SSL_Proxy_Connector.h:
- * protocols/ace/INet/SSLSock_IOStream.cpp:
- * protocols/ace/INet/SSLSock_IOStream.h:
- * protocols/ace/INet/SSL_X509Cert.cpp:
- * protocols/ace/INet/SSL_X509Cert.h:
- * protocols/ace/INet/SSL_X509Cert.inl:
- New files implementing SSL/HTTPS support.
- Includes support for proxy CONNECT tunneling.
-
- * protocols/ace/INet/inet_ssl.mpb:
- Feature project which will include SSL/HTTPS support
- into INet when MPC feature ssl=1 is set.
-
- * protocols/ace/INet/ClientRequestHandler.cpp:
- * protocols/ace/INet/ClientRequestHandler.h:
- * protocols/ace/INet/ConnectionCache.cpp:
- * protocols/ace/INet/ConnectionCache.h:
- * protocols/ace/INet/FTP_ClientRequestHandler.cpp:
- * protocols/ace/INet/FTP_URL.cpp:
- * protocols/ace/INet/FTP_URL.h:
- * protocols/ace/INet/FTP_URL.inl:
- * protocols/ace/INet/HeaderBase.h:
- * protocols/ace/INet/HTTP_ClientRequestHandler.cpp:
- * protocols/ace/INet/HTTP_ClientRequestHandler.h:
- * protocols/ace/INet/HTTP_ClientRequestHandler.inl:
- * protocols/ace/INet/HTTP_Session.cpp:
- * protocols/ace/INet/HTTP_Session.h:
- * protocols/ace/INet/HTTP_StreamPolicyBase.h:
- * protocols/ace/INet/HTTP_StreamPolicy.h:
- * protocols/ace/INet/HTTP_URL.cpp:
- * protocols/ace/INet/HTTP_URL.h:
- * protocols/ace/INet/HTTP_URL.inl:
- * protocols/ace/INet/inet.mpc:
- * protocols/ace/INet/RequestHandler.h:
- * protocols/ace/INet/StreamHandler.cpp:
- * protocols/ace/INet/StreamInterceptor.h:
- * protocols/ace/INet/URLBase.h:
- Some redesign to accomodate addition of HTTPS.
- Some additional logging.
- Some additional documentation.
-
- * protocols/ace/INet/HTTP_Simple_exec.cpp:
- Extended to include HTTPS support.
-
- * protocols/tests/INet/MT_Get/Main.cpp:
- Added some traces.
-
-Fri Jul 16 22:08:05 UTC 2010 Phil Mesnier <mesnier_p@ociweb.com>
-
- * ace/Service_Gestalt.h:
- * ace/Service_Gestalt.cpp:
+ * examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp:
- Further refinement of service initialization process. This
- restores the order of processing, and is more explicit about
- handling a defaulted svc.conf.
+ Added timer queue reset on global reactor instance.
-Thu Jul 15 17:53:47 UTC 2010 Phil Mesnier <mesnier_p@ociweb.com>
+Tue Dec 20 15:43:39 UTC 2011 Steve Huston <shuston@riverace.com>
- * ace/Service_Gestalt.cpp:
- * THANKS:
+ * tests/Task_Wait_Test.cpp:
+ * tests/tests.mpc:
+ * tests/run_test.lst:
+ New test program that tests the ACE_Thread_Manager::wait() from a
+ called-back ACE_Task::close() on thread exit.
- Restore pre-gestalt behavior of returning -1 if svc.conf does
- not exist and an ACE_Service_Config::open() is expecting to use
- the default file.
+Tue Dec 20 15:36:24 UTC 2011 Steve Huston <shuston@riverace.com>
- Thanks to Daynesh Mangal (daynesh@gmail.com) for reporting the
- errant behavior.
+ * ace/Thread.inl (disablecancel): Correct size pased to memset.
+ * ace/Thread_Manager.cpp (ACE_Thread_Descriptor::terminate): Don't
+ dereference potentially invalid pointer.
-Thu Jul 15 12:53:53 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ Resolves Coverity warnings.
- * etc/ace.doxygen:
- * etc/ace_inet.doxygen:
- * etc/ace_man.doxygen:
- * etc/ace_qos.doxygen:
- * etc/ace_rmcast.doxygen:
- * etc/ace_ssl.doxygen:
- * etc/acexml.doxygen:
- Generate deprecated/todo pages
+Mon Dec 19 19:00:07 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
-Thu Jul 15 12:35:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+ * docs/bczar/bczar.html:
+ Added another package
- * ace/SSL/SSL_SOCK_Stream.h:
- * ace/SSL/SSL_SOCK_Stream.inl:
- Added two method overloads available in ACE_SOCK_Stream but
- missing from ACE_SSL_SOCK_Stream.
+Mon Dec 19 13:28:16 UTC 2011 Martin Corino <mcorino@remedy.nl>
-Thu Jul 15 09:49:28 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * ace/Abstract_Timer_Queue.h:
+ * ace/Timer_Hash_T.h:
+ * ace/Timer_Hash_T.cpp:
+ * ace/Timer_Heap_T.h:
+ * ace/Timer_Heap_T.cpp:
+ * ace/Timer_List_T.h:
+ * ace/Timer_List_T.cpp:
+ * ace/Timer_Queue_Adapters.inl:
+ * ace/Timer_Queue_Adapters.cpp:
+ * ace/Timer_Wheel_T.h:
+ * ace/Timer_Wheel_T.cpp:
- * ace/config-doxygen.h:
- Added ACE_HAS_POSITION_INDEPENDENT_POINTERS
+ Added close() method.
-Thu Jul 15 09:29:58 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * ace/Dev_Poll_Reactor.cpp:
+ * ace/Proactor.cpp:
+ * ace/Select_Reactor_T.cpp:
+ * ace/WFMO_Reactor.cpp:
- * bin/generate_doxygen.pl:
- * etc/ace_inet.doxygen:
- * html/index.html:
- Added ACE INet library
+ Implemented support for timer queue close ().
-Thu Jul 15 09:11:51 UTC 2010 William R. Otte <wotte@dre.vanderbilt.edu>
+ The rationale for these changes is that when using reactors with
+ user defined timer queues the reactor does not delete the timer queue
+ when being deleted itself. Without any other cleanup this created the
+ possibility (as encountered in TAO/tests/Bug_3837_Regression after
+ introduction of the TIME_POLICY changes) of outstanding timer handlers
+ in the queue being triggered and attempting to access the reactor after
+ the reactor has been destroyed.
+ Calling close () for timer queues the reactor does not delete solves
+ this potential problem.
- * ace/config-macosx-snowleopard.h:
- * include/makeinclude/platform_clang_common.GNU:
- * include/makeinclude/platform_macosx_common.GNU:
+Mon Dec 19 12:12:37 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
- Preliminary support for clang compiler.
+ * bin/fuzz.pl:
+ Simplified check
-Tue Jul 13 14:39:55 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Mon Dec 19 09:17:33 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
- * NEWS:
- Updated
+ * ace/ace_for_tao.mpc:
+ Added missing files
-Tue Jul 13 14:33:23 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Sun Dec 18 11:56:00 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/Cached_Connect_Strategy_T.h:
- * ace/Capabilities.h:
- Doxygen fixes
+ * ace/Timer_Queue_T.h:
+ Fixed CentOS warning
-Tue Jul 13 14:20:09 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Sun Dec 18 11:41:56 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
- * ace/os_include/os_errno.h:
- Fixed problems with msvc 10, , thanks to Max Zhou
- <earthdog at 126.com> for supplying these changes, this fixes
- bugzilla 3873
+ * ace/ace_for_tao.mpc:
+ Removed obsolete file
-Tue Jul 13 11:08:38 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Sun Dec 18 11:35:18 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
- * bin/MakeProjectCreator/config/vc10nmake.mpb:
- * netsvcs/lib/lib.mpc:
- vc10 support, thanks to Max Zhou <earthdog at 126.com> for
- supplying these changes
+ * bin/generate_compile_stats.sh:
+ Fixed incorrect command
-Mon Jul 12 11:04:58 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Sun Dec 18 10:29:12 UTC 2011 Martin Corino <mcorino@remedy.nl>
- * ace/ACE.cpp:
- * ace/Activation_Queue.h:
- * ace/Active_Map_Manager.h:
- * ace/Dev_Poll_Reactor.h:
- * ace/Dev_Poll_Reactor.inl:
- * ace/Event_Handler.h:
- * ace/Filecache.h:
- * ace/Manual_Event.h:
- * ace/Map_Manager.h:
- * ace/Mem_Map.h:
- * ace/Message_Block.h:
- * ace/OS_Log_Msg_Attributes.h:
- * ace/OS_NS_unistd.h:
- * ace/Object_Manager.h:
- * ace/Recursive_Thread_Mutex.h:
- Layout, const, and doxygen fixes
+ * ace/Abstract_Timer_Queue.h:
-Mon Jul 12 10:11:24 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ Added missing abstract method dump().
- * ace/DLL.h:
- * ace/DLL_Manager.h:
- * ace/Dirent.h:
- * ace/Dump_T.h:
- * ace/Event_Handler.h:
- * ace/File_Lock.h:
- * ace/INET_Addr.h:
- * ace/Log_Msg_Callback.h:
- * ace/Log_Record.h:
- * ace/Logging_Strategy.h:
- Fixed set of doxygen warnings
+Fri Dec 16 08:03:07 UTC 2011 Marcel Smit <msmit@remedy.nl>
-Mon Jul 12 08:19:58 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * ace/Time_Policy_T.h:
+ No dllimport/export in template classes.
- * ace/Connector.h:
- * ace/Malloc_Base.h:
- * ace/SString.h:
- * ace/Stream.h:
- * ace/Task.h:
- Fixed set of doxygen warnings
+Thu Dec 15 19:45:30 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
-Fri Jul 09 09:35:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+ * ace/Countdown_Time_T.h:
+ No need for an export macro with a C++ template
- * bin/PerlACE/Process_Unix.pm:
- Fix killall() valgrind handling.
+Thu Dec 15 13:22:07 UTC 2011 Marcel Smit <msmit@remedy.nl>
-Thu Jul 08 14:41:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+ * ace/Event_Handler_Handle_Timeout_Upcall.inl:
+ * tests/Timer_Queue_Test.cpp:
+ Fuzz. Removed tab character
- * bin/PerlACE/Process_Unix.pm:
- Fix killall() valgrind handling.
+Thu Dec 15 13:12:39 UTC 2011 Marcel Smit <msmit@remedy.nl>
-Thu Jul 08 07:56:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+ * ace/Event_Handler_Handle_Timeout_Upcall.inl:
+ * ace/Event_Handler_Handle_Timeout_Upcall.cpp:
+ * ace/Proactor.cpp:
+ * ace/Timer_Hash.h:
+ * ace/Timer_Hash_T.h:
+ * ace/Timer_Hash_T.cpp:
+ * ace/Timer_Heap.h:
+ * ace/Timer_Heap_T.h:
+ * ace/Timer_Heap_T.cpp:
+ * ace/Timer_List.h:
+ * ace/Timer_List_T.h:
+ * ace/Timer_List_T.cpp:
+ * ace/Timer_Queue_Adapters.cpp:
+ * ace/Timer_Queue_T.h:
+ * ace/Timer_Queue_T.cpp:
+ * ace/Timer_Wheel.h:
+ * ace/Timer_Wheel_T.h:
+ Fuzz. Removed tab character
- * bin/PerlACE/Process_Unix.pm:
- Make killall() recognize and handle valgrind runs correctly.
+Thu Dec 15 12:52:18 UTC 2011 Marcel Smit <msmit@remedy.nl>
-Wed Jul 7 14:53:12 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
+ * ace/Abstract_Timer_Queue.h:
+ * ace/Abstract_Timer_Queue.cpp:
+ * ace/Event_Handler_Handle_Timeout_Upcall.h:
+ * ace/Timer_Queue_Iterator.h:
+ * ace/Timer_Queue_Iterator.cpp:
+ Fuzz. Added Id-tags.
- * tests/run_test.lst:
- * tests/Bug_3539_Regression_Test.cpp:
- * tests/tests.mpc:
- Added a test for bug 3539 as non-fixed.
+Thu Dec 15 11:00:00 UTC 2011 Martin Corino <mcorino@remedy.nl>
-Wed Jul 7 11:43:16 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ Merged timer_policy branch.
- * docs/bczar/bczar.html:
- Extended instructions
+ === start changelog ===
-Tue Jul 6 12:28:43 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ Thu Dec 15 09:45:00 UTC 2011 Martin Corino <mcorino@remedy.nl>
- * docs/Download.html:
- CIAO is also online available
+ * NEWS:
-Tue Jul 6 11:29:41 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ Added description of new TIME_POLICY features.
- * ace/Message_Queue_T.cpp:
- * ace/Service_Repository.h:
- * ace/Task_T.h:
- Fixed doxygen warnings
+ * tests/Timer_Queue_Test.cpp:
-Tue Jul 6 11:22:08 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ Added explicit test of specific TIME_POLICY feature.
- * etc/ace.doxygen:
- Improved doxygen configuration
+ Mon Dec 12 21:28:00 UTC 2011 Martin Corino <mcorino@remedy.nl>
-Tue Jul 6 11:11:06 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * ace/Abstract_Timer_Queue.h:
+ * ace/Time_Policy.h:
+ * ace/Time_Policy.inl:
+ * ace/Time_Policy_T.h:
+ * ace/Time_Policy_T.inl:
+ * ace/Timer_Queue_T.cpp:
+ * ace/Timer_Queue_T.h:
+ * tests/Timer_Queue_Test.cpp:
- * etc/ace.doxygen:
- * etc/ace_man.doxygen:
- * etc/ace_qos.doxygen:
- * etc/ace_rmcast.doxygen:
- * etc/ace_ssl.doxygen:
- * etc/acexml.doxygen:
- Reduced the size of the colloboration graphs
+ Added backwards compatibility support.
-Mon Jul 5 15:20:14 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ Mon Dec 05 10:26:00 UTC 2011 Martin Corino <mcorino@remedy.nl>
- * rpmbuild/ace-tao.spec:
- Removed some test code
+ * ace/Time_Policy.inl
-Mon Jul 5 14:59:25 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ Prevent setting delegate to null pointer.
- * rpmbuild/ace-tao.spec:
- Added missing file, thanks to Anatoli Sakhnik
- <sakhnik at gmail dot com> for reporting this, this should fix
- bugzilla 3870
+ Sun Dec 04 15:40:00 UTC 2011 Martin Corino <mcorino@remedy.nl>
-Mon Jul 05 14:32:30 UTC 2010 Martin Corino <mcorino@remedy.nl>
+ * ace/Countdown_Time.cpp:
+ * ace/Countdown_Time.inl:
- * bin/PerlACE/Process_Unix.pm:
- Fixes problem with killall() function being not selective enough.
+ Renamed to *_T.*
-Mon Jul 5 13:56:57 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * ace/Countdown_Time.h
+ * ace/Countdown_Time_T.cpp
+ * ace/Countdown_Time_T.h
+ * ace/Countdown_Time_T.inl
- * etc/ace.doxygen:
- * etc/ace_qos.doxygen:
- * etc/ace_rmcast.doxygen:
- * etc/ace_ssl.doxygen:
- * etc/acexml.doxygen:
- Disable include and included graphs, this should reduce the size
- of the documentation a lot
+ Changed ACE_Countdown_Time to TIME_POLICY based
+ template class ACE_Countdown_Time_T,
+ Created typedef for default template instantiation
+ as ACE_Countdown_Time.
-Mon Jul 5 13:29:23 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * ace/Time_Policy.cpp
+ * ace/Time_Policy.h
+ * ace/Time_Policy.inl
+ * ace/Time_Policy_T.cpp
+ * ace/Time_Policy_T.h
+ * ace/Time_Policy_T.inl
- * bin/generate_doxygen.pl:
- Some preparations to move the DAnCE doxygen files to DAnCE
+ Added support for dynamically loadable/shared time
+ policies.
- * docs/bczar/bczar.html:
- Updated release notes, made it possible to generate doxygen on
- a regular system instead of on naboo, the side effect is that the
- doxygen packages on naboo are 350Mb, on FC13 with all latest tools
- they are 1.4GB
+ * ace/ace.mpc
-Mon Jul 5 11:22:09 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ Updated for file changes.
- * ace/Select_Reactor_Base.cpp:
- Fixed doxygen warning
+ Fri Dec 02 11:48:00 UTC 2011 Martin Corino <mcorino@remedy.nl>
- * etc/ace.doxygen:
- * etc/ace_man.doxygen:
- * etc/ace_qos.doxygen:
- * etc/ace_rmcast.doxygen:
- * etc/ace_ssl.doxygen:
- * etc/acexml.doxygen:
- Define ACE_INLINE as inline and not as 1
+ * ace/Timer_Queue_T.h:
+ * ace/Timer_Queue_T.inl:
-Mon Jul 5 10:56:15 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ Reverting set_time_policy() change. Interpretation error.
- * rpmbuild/ace-tao.spec-release.patch:
- Removed this file.
+ Thu Dec 01 17:52:00 UTC 2011 Martin Corino <mcorino@remedy.nl>
-Mon Jul 5 09:11:21 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ * ace/Time_Policy.h:
+ * ace/Time_Policy.inl:
- * docs/Download.html:
- Removed link to very old patches and fixed typo
+ Added ACE_HR_Time_Policy.
+
+ * ace/Timer_Queue_T.h:
+ * ace/Timer_Queue_T.inl:
-Mon Jul 5 09:05:43 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+ Replaced set_time_policy() by get_time_policy() since setting
+ the policy is not possible but configuring might be.
+
+ Thu Dec 01 14:05:00 UTC 2011 Martin Corino <mcorino@remedy.nl>
+
+ * ace/Proactor.cpp:
+ * ace/Timer_Queue_T.cpp:
+ * ace/Timer_Queue_T.h:
+
+ Fixed compile errors.
+
+ Thu Dec 01 13:34:00 UTC 2011 Martin Corino <mcorino@remedy.nl>
+
+ * ace/Timer_Hash_T.cpp:
+ * ace/Timer_Hash_T.h:
+ * ace/Timer_Heap_T.h:
+ * ace/Timer_Wheel_T.h:
+
+ Small cleanup to prevent potential compiler warnings.
+
+ Mon Aug 24 02:27:36 UTC 2009 Carlos O'Ryan <coryan@glamdring>
+
+ * ace/Timer_Queue_T.cpp:
+ Need to release the internal timer queue lock before dispatching
+ calls in expire_single(), otherwise we get nasty deadlocks in
+ the TP_Reactor implementation.
+
+ Thu Jul 2 02:55:09 UTC 2009 Carlos O'Ryan <coryan@glamdring>
+
+ * ace/Abstract_Timer_Queue.h:
+ * ace/Timer_Queue_T.h:
+ * ace/Timer_Queue_T.inl:
+ * ace/Timer_Queue_T.cpp:
+ I wanted to use gettimeofday() for the pure virtual function and
+ some other name for the inline function used in the timer queue
+ internals.
+ This is the second and final pass to get that change in. This
+ time, I renamed the internal function to gettimeofday_static(),
+ used the compiler (and grep) to find all uses. Once that
+ compiled I renamed the virtual function from
+ gettimeofday_abstract() to the gettimeofday() function.
+ I know it is convoluted, but it gets the job done without me
+ having to think too much.
+
+ * ace/Timer_Hash_T.h:
+ * ace/Timer_Hash_T.cpp:
+ * ace/Select_Reactor_T.cpp:
+ * ace/Dev_Poll_Reactor.cpp:
+ * ace/Proactor.cpp:
+ * ace/Timer_Queue_Adapters.cpp:
+ * tests/Timer_Queue_Reference_Counting_Test.cpp:
+ * tests/Timer_Queue_Test.cpp:
+ * examples/APG/Timers/Timers.cpp:
+ * examples/APG/Timers/TimerDispatcher.cpp:
+ * examples/C++NPv2/Logging_Event_Handler_Ex.cpp:
+ Fixed users and tests to use the real name for gettimeofday() in
+ ACE_Abstract_Timer_Queue<>
+
+ Wed Jul 1 02:09:44 UTC 2009 Carlos O'Ryan <coryan@glamdring>
+
+ * ace/ace.mpc:
+ * ace/Makefile.am:
+ * ace/Event_Handler_Handle_Timeout_Upcall.h:
+ * ace/Event_Handler_Handle_Timeout_Upcall.inl:
+ * ace/Event_Handler_Handle_Timeout_Upcall.cpp:
+ First I noticed that this class did not depend on the lock type
+ at all, this was fortunate because I wanted to use it in a
+ generic way. So, change the class from a template class to a
+ regular class. That required moving the class to its own file too.
+
+ * ace/Timer_List_T.h:
+ * ace/Timer_List_T.cpp:
+ * ace/Timer_Wheel_T.h:
+ * ace/Timer_Wheel_T.cpp:
+ * ace/Timer_Hash_T.h:
+ * ace/Timer_Hash_T.cpp:
+ * ace/Timer_Heap_T.h:
+ * ace/Timer_Heap_T.cpp:
+ Fixed several inconsistencies across these classes, for example,
+ most of them had typedef as a shorthand for the base class, but
+ the name of this typedef was not consistent.
+ Likewise, not all of the classes made the TIME_POLICY parameter
+ a default template parameter.
+
+ * ace/Timer_Queue_T.h:
+ * ace/Timer_Queue_T.inl:
+ * ace/Timer_Queue_T.cpp:
+ Introduced an intermediate class between Abstract_Timer_Queue<>
+ and Timer_Queue_T<>. This is ugly, but the Proactor "needs" to
+ set a back-pointer from the FUNCTOR to the Proacter instance
+ whenever a timer queue is assigned to the Proactor.
+ This code smells funny. Either the API is wrong (the Proactor
+ should always create the functor with the backpointer,) or the
+ need for the back pointer is suspicious (I think there is a
+ thread in the Proactor that signals timers, but maybe it should
+ be contained in the Upcall object itself?)
+ The more I look here, the uglier the smell.
+
+ * ace/Select_Reactor_T.cpp:
+ * ace/Timer_Queue_Adapters.cpp:
+ * tests/Timer_Queue_Reference_Counting_Test.cpp:
+ * tests/Timer_Queue_Test.cpp:
+ As a temporary measure, I appended "_abstract" to the
+ gettimeofday() function name in Abstract_Timer_Queue<>.
+ Shortly, I will change the Timer_Queue_T<> class to use
+ gettimeofday_non_virtual() or _static() or something similar.
+ Had to make the change in two steps to find all the uses of the
+ original function.
+ There was probably an easier/cleaner way to do this.
+
+ * tests/Timer_Queue_Test.cpp:
+ Take advantage of the new ACE_Abstract_Timer_Queue<> to make the
+ different types of queues more compatible in ths test, including
+ queues with different time source policies.
+
+ * ace/Proactor.h:
+ As with the Reactive version, I noticed that
+ ACE_Proactor_Handle_Timeout_Upcall did not depend on its
+ template parameter, so I changed the class to a non-template
+ version.
+
+ * ace/Proactor.cpp:
+ Instead of making the Proactor a friend of the Timer_Handler
+ task, expose a safe interface to do what the proactor wants to
+ do.
+ The proactor needed access to timer queue internal details to
+ implement schedule(), but the reactor did not... hmmm... well,
+ turns out the Reactor had nicely refactor that work to the
+ upcall functor. So I did the same in the Proactor case.
+
+
+ * ace/Timer_List.h:
+ * ace/Timer_Wheel.h:
+ * ace/Timer_Hash.h:
+ * ace/Timer_Heap.h:
+ Use Event_Handler_Handle_Timeout_Upcall without the template
+ parameter.
+
+ * ace/Abstract_Timer_Queue.h:
+ Remove the setter for getimeofday(), this is implemented by the
+ TIME_POLICY template parameter in Timer_Queue_T<>
+
+ * tests/Reactor_Timer_Test.cpp:
+ * tests/Network_Adapters_Test.cpp:
+ * tests/Proactor_Timer_Test.cpp:
+ Use a different idiom to set the time policy for this test.
+
+ * examples/Timer_Queue/Thread_Timer_Queue_Test.h:
+ * examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.h:
+ * examples/APG/Timers/Timers.cpp:
+ * examples/APG/Timers/TimerDispatcher.cpp:
+ * examples/Reactor/Misc/test_timer_queue.cpp:
+ * examples/C++NPv2/Logging_Event_Handler_Ex.cpp:
+ Need an additional #include for ACE_Event_Handler_Handle_Timeout
+ Said class class is no longer a template class, so use it
+ correctly.
+ Changed name of gettimeofday() in timer queue to
+ gettimeofday_abstract() This is a temporary change to find all
+ the uses, will revert again soon.
+
+ * Merged in changes from bug-3607 branch.
+
+ * ace/ace.mpc:
+ * ace/Abstract_Timer_Queue.h:
+ * ace/Abstract_Timer_Queue.cpp:
+ * ace/Timer_Queue_Iterator.h:
+ * ace/Timer_Queue_Iterator.inl:
+ * ace/Timer_Queue_Iterator.cpp:
+ * ace/Timer_Queuefwd.h:
+ * ace/Timer_Queue.h:
+ * ace/Timer_Queue_T.h:
+ * ace/Timer_Queue_T.inl:
+ * ace/Timer_Queue_T.cpp:
+ * ace/Timer_List_T.h:
+ * ace/Timer_List_T.cpp:
+ * ace/Timer_Wheel_T.h:
+ * ace/Timer_Wheel_T.cpp:
+ * ace/Timer_Hash_T.h:
+ * ace/Timer_Hash_T.cpp:
+ * ace/Timer_Heap_T.h:
+ * ace/Timer_Heap_T.cpp:
+ Heavy refactoring in ACE_Timer_Queue_T class and friends.
+ First, created a template base class (ACE_Abstract_Timer_Queue) that:
+ 1) Only depends on the type held by the timer queue, not to lock
+ or upcall strategy.
+ 2) It is a pure abstract class, i.e., none of its member
+ functions have any implementation.
+ 3) Provides new pure virtual functions to encapsulates some
+ logic that was spread between tests, TP_Reactor and
+ Dev_Poll_Reactor.
+ Then I re-wrote all the standard timer queue objects in terms of
+ this class. In particular, the reactors use only the abstract
+ interface.
+ I also re-factored the Timer_Queue_Iterator to only depend on
+ the type of objects held by the timer queue. The rest of the
+ parameters where not used either.
+ Implement functionality that was spread in Dev_Poll_Reactor,
+ TP_Reactor and a test into expire_single.
+
+ * ace/Proactor.h:
+ * ace/TP_Reactor.cpp:
+ * ace/Dev_Poll_Reactor.cpp:
+ Both classes implemented the logic to dispatch a single timer
+ but release a mutex before the upcall. This was confusing as
+ well as required exposing too much detail about the Timer_Queue
+ classes.
+ The new mechanism is a single function in (expire_single)
+ ACE_Abstract_Timer_Queue<> (implemented in ACE_Timer_Queue_T<>)
+ which receives a command object to encapsulate the mutex release.
+
+ * ace/Functor.h:
+ * ace/Functor.cpp:
+ * ace/Functor_T.h:
+ * ace/Functor_T.inl:
+ Add helper ACE_Command_* objects. One is a no-op, for the test
+ below. The other is a callback that ignores the silly void*
+ argument in the ACE_Command_Base::execute() member function.
+
+ * tests/Timer_Queue_Reference_Counting_Test.cpp:
+ Re-factored test in terms of expire_single()
+
+ Tue Jun 30 01:10:04 UTC 2009 Carlos O'Ryan <coryan@glamdring>
+
+ * This is a temporary commit into the 3707 branch. I realized too
+ late that the changes from 3706 will be needed to make this work.
+
+ * ace/ace.mpc:
+ * ace/Time_Policy.h:
+ * ace/Time_Policy.inl:
+ * ace/Time_Policy.cpp:
+ New classes to encapsulate how "now" is computed in the Timer
+ Queues. This will be an additional template parameter, so the
+ default configuration has zero overhead.
+
+ * ace/Timer_Queuefwd.h:
+ * ace/Timer_List.h:
+ * ace/Timer_List_T.h:
+ * ace/Timer_List_T.cpp:
+ * ace/Timer_Queue_T.h:
+ * ace/Timer_Queue_T.inl:
+ * ace/Timer_Queue_T.cpp:
+ * ace/Timer_Wheel.h:
+ * ace/Timer_Wheel_T.h:
+ * ace/Timer_Wheel_T.cpp:
+ * ace/Timer_Hash.h:
+ * ace/Timer_Hash_T.h:
+ * ace/Timer_Hash_T.cpp:
+ * ace/Timer_Heap.h:
+ * ace/Timer_Heap_T.h:
+ * ace/Timer_Heap_T.cpp:
+ Re-factor timer queue classes to use new TIMER_POLICY
+ parameter.
+
+ * tests/Timer_Queue_Test.cpp:
+ Modify test to use TIMER_POLICY. But here is the rub, the test
+ does not compile because all timer queue types are "different"
+ to each other. I need to introduce the base class from the
+ bug-3706 branch to make things work.
+
+ Sun Jun 28 22:15:47 UTC 2009 Carlos O'Ryan <coryan@glamdring>
+
+ * ace/ace.mpc:
+ * ace/Abstract_Timer_Queue.h:
+ * ace/Abstract_Timer_Queue.cpp:
+ * ace/Timer_Queue_Iterator.h:
+ * ace/Timer_Queue_Iterator.inl:
+ * ace/Timer_Queue_Iterator.cpp:
+ * ace/Timer_Queuefwd.h:
+ * ace/Timer_Queue.h:
+ * ace/Timer_Queue_T.h:
+ * ace/Timer_Queue_T.inl:
+ * ace/Timer_Queue_T.cpp:
+ * ace/Timer_List_T.h:
+ * ace/Timer_List_T.cpp:
+ * ace/Timer_Wheel_T.h:
+ * ace/Timer_Wheel_T.cpp:
+ * ace/Timer_Hash_T.h:
+ * ace/Timer_Hash_T.cpp:
+ * ace/Timer_Heap_T.h:
+ * ace/Timer_Heap_T.cpp:
+ Heavy refactoring in ACE_Timer_Queue_T class and friends.
+ First, created a template base class (ACE_Abstract_Timer_Queue) that:
+ 1) Only depends on the type held by the timer queue, not to lock
+ or upcall strategy.
+ 2) It is a pure abstract class, i.e., none of its member
+ functions have any implementation.
+ 3) Provides new pure virtual functions to encapsulates some
+ logic that was spread between tests, TP_Reactor and
+ Dev_Poll_Reactor.
+ Then I re-wrote all the standard timer queue objects in terms of
+ this class. In particular, the reactors use only the abstract
+ interface.
+ I also re-factored the Timer_Queue_Iterator to only depend on
+ the type of objects held by the timer queue. The rest of the
+ parameters where not used either.
+ Implement functionality that was spread in Dev_Poll_Reactor,
+ TP_Reactor and a test into expire_single.
+
+ * ace/Proactor.h:
+ * ace/TP_Reactor.cpp:
+ * ace/Dev_Poll_Reactor.cpp:
+ Both classes implemented the logic to dispatch a single timer
+ but release a mutex before the upcall. This was confusing as
+ well as required exposing too much detail about the Timer_Queue
+ classes.
+ The new mechanism is a single function in (expire_single)
+ ACE_Abstract_Timer_Queue<> (implemented in ACE_Timer_Queue_T<>)
+ which receives a command object to encapsulate the mutex release.
+
+ * ace/Functor.h:
+ * ace/Functor.cpp:
+ * ace/Functor_T.h:
+ * ace/Functor_T.inl:
+ Add helper ACE_Command_* objects. One is a no-op, for the test
+ below. The other is a callback that ignores the silly void*
+ argument in the ACE_Command_Base::execute() member function.
+
+ * tests/Timer_Queue_Reference_Counting_Test.cpp:
+ Re-factored test in terms of expire_single()
+
+ === end changelog ===
+
+Wed Dec 14 16:09:22 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
- * docs/Download.html:
- Updated filenames in text
+ * bin/auto_run_tests.pl:
+ Fixed DANCE_ROOT
-Mon Jul 5 08:57:09 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Mon Dec 12 19:04:55 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
- * docs/Download.html:
- Update latest minor release to x.8.0
+ * bin/MakeProjectCreator/config/vc11.features:
+ * bin/MakeProjectCreator/config/vc11nmake.mpb:
+ New files for vc11
-Mon Jul 5 08:19:17 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Mon Dec 12 07:33:25 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
- * bin/diff-builds-and-group-fixed-tests-only.sh:
- Updated for x.8.0
+ === start changelog ===
- * bin/generate_rel_manpages:
- Remove restriction to run on naboo, removed doxygen check, updated
- error message
+ Fri Dec 9 10:41:02 UTC 2011 Marcel Smit <msmit@remedy.nl>
- * docs/Download.html:
- Updated to x.8.0
+ * docs/svn/config:
+ Subversion should ignore *_svnt_T.*.
- * etc/ace.doxygen:
+ === end changelog ===
+
+Mon Dec 5 22:23:25 UTC 2011 Steve Huston <shuston@riverace.com>
+
+ * ace/DLL.h:
+ * ace/DLL_Manager.h: Corrected and expanded the descriptions of how
+ DLL/library names are handled, decorated, and located.
+
+Mon Dec 5 20:16:51 UTC 2011 Steve Huston <shuston@riverace.com>
+
+ * ace/Atomic_Op.{h inl}:
+ * ace/Atomic_Op_T.{h inl}:
+ * ace/Atomic_Op_GCC_T.{h inl}:
+ Added new method TYPE exchange (TYPE newval) which exchanges the
+ ACE_Atomic_Op's value with the specified new value. Thanks to John
+ Lilley for contributing this addition.
+
+ * tests/Atomic_Op_Test.cpp: Added test for exchange().
+
+ * NEWS: Added description of the new exchange() method.
+
+Mon Dec 5 12:27:54 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/TTY_IO.h:
+ Doxygen fix
+
+ * ace/config-linux.h:
Layout changes
- * etc/index.html:
- Added 5.8
+ * tests/Cached_Accept_Conn_Test.h:
+ * tests/Cached_Accept_Conn_Test.cpp:
+ * tests/MEM_Stream_Test.cpp:
+ * tests/QtReactor_Test.cpp:
+ Layout changes and removed some ACE_UNUSED_ARG usage
- * rpmbuild/ace-tao.spec:
- Changed version numbers to x.8.0 and added new ACE INet library
+Mon Dec 5 11:25:31 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/cleanbuilds.sh:
+ * bin/mail_test_stats.sh:
+ Extended our daily test stats with another email, the failing tests
+ for today excluding the not fixed ones
+
+Mon Dec 5 08:35:54 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/Download.html:
+ Release has vc9/vc10
-Sun Jul 04 18:57:33 CEST 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+Mon Dec 5 08:22:11 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
- * ACE version 5.8 released.
+ * bin/diff-builds-and-group-fixed-tests-only.sh:
+ * docs/Download.html:
+ * etc/index.html:
+ Made 6.0.6 publicly available
+
+ * docs/bczar/bczar.html:
+ Updated for next release and added wget step to get subversion config
+ file to make sure we checkout using commit timestamps
Local Variables:
mode: change-log
diff --git a/dep/acelite/NEWS b/dep/acelite/NEWS
index d648b09c237..cf60110b536 100644
--- a/dep/acelite/NEWS
+++ b/dep/acelite/NEWS
@@ -1,3 +1,186 @@
+USER VISIBLE CHANGES BETWEEN ACE-6.1.3 and ACE-6.1.4
+====================================================
+
+. Added a new ACE_Time_Value derived template class (Time_Value_T.h):
+
+ template <class TIME_POLICY> class ACE_Time_Value_T
+
+ This template class overloads 4 new virtual methods from
+ the ACE_Time_Value base class to provide time policy aware
+ time values:
+ to_relative_time ()
+ to_absolute_time ()
+ now ()
+ duplicate ()
+
+. Updated time policy classes to return ACE_Time_Value_T<> instantiations
+ for the corresponding time policy instead of 'common' time values.
+
+. Added new ACE_Monotonic_Time_Policy (Monotonic_Time_Policy.h).
+ This class provides a monotonic time source for supported
+ platforms (Windows and POSIX platforms providing the required
+ clock_gettime() time source; currently verified for Windows and
+ Linux)
+
+. Updated OS_NS_Thread to use the new time policy support in ACE_Time_Value
+ for (relative) time calculations and added new ACE_OS::condattr_setclock ()
+ method.
+
+. Added TIME_POLICY support to ACE_Condition_Attributes to allow for
+ monotonic timer support for ACE_Condition.
+
+. Added TIME_POLICY support to ACE_Message_Queue-s, ACE_Task-s and
+ related classes to enable support for monotonic timers in the timed
+ wait methods (ACE_Condition based). See docs/ACE-monotonic-timer.html
+ for how to use this.
+
+. Added two new regression tests:
+ Monotonic_Task_Test
+ Monotonic_Message_Queue_Test
+ and updated the Bug_4055_Regression_Test to a fixed state.
+
+USER VISIBLE CHANGES BETWEEN ACE-6.1.2 and ACE-6.1.3
+====================================================
+
+. Added support for Oracle Solaris Studio 12 Update 3 (SunCC 5.12)
+
+. Added new XML_Utils library which comes from DAnCE but is now also used
+ by OpenDDS
+
+USER VISIBLE CHANGES BETWEEN ACE-6.1.1 and ACE-6.1.2
+====================================================
+
+. Added compile time support for Windows CE 7, no runtime testing has
+ been performed
+
+. The High Res Timer global scale factor on Windows is now 64bit, see bugzilla
+ 3703 for the background of this. If you use the gsf in your code, use the
+ new ACE_High_Res_Timer::global_scale_factor_type type trait to not get
+ any conversion warnings
+
+. Removed Tandem NSK v2/v3 support which resulted in cleanup throughout all
+ code. The emulations for ACE_INT64/ACE_UINT64 have been removed because no
+ platform is using them anymore
+
+USER VISIBLE CHANGES BETWEEN ACE-6.1.0 and ACE-6.1.1
+====================================================
+
+. Minor bug fixes
+
+USER VISIBLE CHANGES BETWEEN ACE-6.0.8 and ACE-6.1.0
+====================================================
+
+. Added compilation support for VxWorks 6.9, no runtime
+ testing has been performed
+
+. Added ACE Run-length encoding compressor
+
+. Fixed several Coverity reported issues
+
+USER VISIBLE CHANGES BETWEEN ACE-6.0.7 and ACE-6.0.8
+====================================================
+
+. Added support for MPC's new feature that creates dependency files for IDL
+ files when generating '-type gnuace' projects. Turned off by default, it
+ can be enabled in a features file or on the command line with
+ '-features ace_idl_dependencies=1'.
+
+USER VISIBLE CHANGES BETWEEN ACE-6.0.6 and ACE-6.0.7
+====================================================
+
+. Added a new method to ACE_Atomic_Op<LOCK, TYPE>, TYPE exchange (TYPE newval)
+ which does an atomic exchange of the new value with ACE_Atomic_Op's value
+ and returns the old value. The tests/Atomic_Op_Test.cpp test program has a
+ test case that exemplifies its usage; see the Exchange_Tester class.
+
+. Added a new feature to timer queue templates classes: TIME_POLICY.
+ This feature is specified through a new template argument and provides the
+ timer queue with a policy for a timer (time of day) value. This feature is
+ intended to replace (in time) the gettimeofday setter method which has been
+ marked @deprecated. For now backwards compatibility is guaranteed.
+ The TIME_POLICY feature provides flexibility with regards to providing a timer
+ source to the timer queues as well as the possibility for a fully optimized
+ calling path.
+ A number of standard time policies are provided in ace/Time_Policy.h.
+ The tests/Timer_Queue_Test.cpp has been updated to reflect and exemplify these
+ changes.
+
+. Added the TIME_POLICY feature also to countdown time class which has now
+ become a template (ace/Countdown_Time_T.h)
+
+. Initial support for Microsoft Visual Studio 11
+
+. Increased overall code quality by using Coverity and Klocwork
+
+USER VISIBLE CHANGES BETWEEN ACE-6.0.5 and ACE-6.0.6
+====================================================
+
+. Removed autoconf support, only traditional way of
+ compilation is shipped from now
+
+. Add support for RHEL 6.1 64bit
+
+USER VISIBLE CHANGES BETWEEN ACE-6.0.4 and ACE-6.0.5
+====================================================
+
+. Improved support for Android and added the ability to run all ACE/TAO tests
+ automatically using the Android emulator
+
+USER VISIBLE CHANGES BETWEEN ACE-6.0.3 and ACE-6.0.4
+====================================================
+
+. Removed support for C++ Builder
+
+. Added support for building with the Android NDK, at least r5c. This
+ is currently available for linux host platforms.
+
+USER VISIBLE CHANGES BETWEEN ACE-6.0.2 and ACE-6.0.3
+====================================================
+
+. Added support for GCC 4.6
+
+USER VISIBLE CHANGES BETWEEN ACE-6.0.1 and ACE-6.0.2
+====================================================
+
+. The ACE_wrappers/ace/OS.h file has been restored in order to ensure
+ build-time compatibility with older ACE versions. Its use will still
+ cause your build to incur more processing time than using the needed
+ ace/OS_NS_*.h files; however, you should be able to build OS.h-including
+ code without needing to replace it with OS_NS_* includes.
+
+. Improved and simplified QNX support
+
+. Changed rand_r() and getpwnam_r() to conform Single UNIX Specification.
+
+. Fixed performance of send_v on windows when individual iovec elements
+ are particularly large.
+
+USER VISIBLE CHANGES BETWEEN ACE-6.0.0 and ACE-6.0.1
+====================================================
+
+. Added support for MinGW with GCC 4.5
+
+USER VISIBLE CHANGES BETWEEN ACE-5.8.3 and ACE-6.0.0
+====================================================
+
+. Changed the string format produced by ACE::timestamp() from the ctime
+ format "Day Mon dd hh:mm:ss yyyy" to ISO-8601 yyyy-mm-dd hh:mm:ss.mmmmmm.
+ This makes the time easier to collate and removes any dependence on locale.
+ The change affects the output from ACE_Log_Msg's %D format and both VERBOSE
+ and VERBOSE_LIGHT timestamps in addition to application-made direct calls
+ to ACE::timestamp().
+
+. Removed GCC < 3 support
+
+. A new build system hook was added for users to include site-private rules
+ in a build. If a file named "rules.private.GNU" in located in any build
+ directory it will get included from
+ $ACE_ROOT/include/makeinclude/rules.local.GNU. The "private_rules_file"
+ make variable can be set to override the name and/or location of the file.
+ If no such rules file exists, its absence is silently ignored. This
+ facility can be used, for example, to integrate a specialized code checker
+ into the build process.
+
USER VISIBLE CHANGES BETWEEN ACE-5.8.2 and ACE-5.8.3
====================================================
diff --git a/dep/acelite/README b/dep/acelite/README
index 1b46d7fd6f4..35198116bf5 100644
--- a/dep/acelite/README
+++ b/dep/acelite/README
@@ -1,3 +1,5 @@
+$Id: README 94611 2011-10-06 11:54:28Z msmit $
+
This document is also available at the following URL:
http://www.cs.wustl.edu/~schmidt/ACE.html
diff --git a/dep/acelite/THANKS b/dep/acelite/THANKS
index a23b239e6b2..dd9480b47f8 100644
--- a/dep/acelite/THANKS
+++ b/dep/acelite/THANKS
@@ -1,8 +1,8 @@
ACKNOWLEDGEMENTS
-ACE and TAO have been deeply influenced and improved by the following
-members of my research group at Washington University in St. Louis, the
-University of California at Irvine, and Vanderbilt University in Nashville.
+ACE, TAO, CIAO, and DAnCE have been deeply influenced and improved by the
+following members of my research group at Washington University in St. Louis,
+the University of California at Irvine, and Vanderbilt University in Nashville.
Everett Anderson <eea1 at cec dot wustl dot edu>
Alexander Babu Arulanthu <alex at cs dot wustl dot edu>
@@ -75,7 +75,7 @@ Torben Worm <tworm at cs dot wustl dot edu>
Ming Xiong <xiongm at isis dot vanderbilt dot edu>
I would also like to thank all the following people who have also
-contributed to ACE and TAO over the years:
+contributed to ACE, TAO, CIAO, and DAnCE over the years:
Paul Stephenson <pstephenson at objectspace dot com>
Olaf Kruger <okruger at cssc-melb dot tansu dot com dot au>
@@ -411,7 +411,7 @@ Andrew Harbick <aharbick at opentext dot com>
Pavel Motuzenko <p_motuzenko at hotmail dot com>
Ross J. Lillie <lillie at rsch dot comm dot mot dot com>
Sam Hauer <shauer at nmo dot gtegsc dot com>
-Frank J. Hodum <fhodum at dctd dot saic dot com>
+Frank J. Hodum <FRANK.J.HODUM at saic dot com>
David Miron <dxm at crapper dot dsto dot defence dot gov dot au>
Anton van Straaten <anton at appsolutions dot com>
Joe Covalesky <joe at nowsol dot com>
@@ -2339,6 +2339,36 @@ Matthew Waller <matthewrwaller at gmail dot com>
Elez <elezsh at gmail dot com>
Ranjit Hande <hande at avaya dot com>
Van Vuong <vanvuong1 at us dot ibm dot com>
+Mark <markg85 at gmail dot com>
+Wendsomde Yameogo <wendsomde at yameogo dot com>
+Shi John <John dot Shi at acxiom dot com>
+Helmut Böing
+Andrew Hill <lists at thefrog dot net>
+Henk Jan Priester <hjpriester at gmail dot com>
+Glenn Zickert <gzickert at comcast dot net>
+Chris Galli <christian dot galli at gmail dot com>
+Laura Autón García <darklulu+ace at gmail dot com>
+Jonathan Saxton <jsaxton at appsecinc dot com>
+Remko Duppen <remko dot duppen at syntel dot nl>
+Paul Fitzpatrick <paul at robotrebuilt dot com>
+Chad Beaulac <chad dot beaulac at objectivesolutions dot com>
+Jochen Meier <gesammeltimusenet2009 at arcor dot de>
+Thomas Pauli <thomas dot pauli at tu-dortmund dot de>
+Qiao Zhiqiang <qiaozhiqiang at leadcoretech dot com>
+JaeSung Lee <berise at gmail dot com>
+Chong Wuk Pak <chong dot pak at lmco dot com>
+Michael Frommberger <michael dot frommberger at gmx dot net>
+Andrey Karpov <karpov at viva64 dot com>
+Dmytro Ovdiienko <dmitriy dot ovdienko at gmail.com>
+Andrea Sormanni <andrea dot sormanni at gmail dot com>
+Thomas Stegemann <Thomas dot Stegemann at materna dot de>
+David Simmonds <david dot simmonds at iggroup dot com>
+Andreas Dröscher <ace at anticat dot ch>
+Markus Manck <Markus dot Manck at Philotech dot de>
+Deux deVille <dev2 at weitling dot net>
+Mohsin Zaidi <mohsinrzaidi at gmail dot com>
+Milind Pangarkar <Milind dot Pangarkar at amdocs dot com>
+Ali Akbar Zarezadeh <akzare at cs dot uni-potsdam dot de>
I would particularly like to thank Paul Stephenson, who worked with me
at Ericsson in the early 1990's. Paul devised the recursive Makefile
diff --git a/dep/acelite/VERSION b/dep/acelite/VERSION
index 594af04e592..144300e4267 100644
--- a/dep/acelite/VERSION
+++ b/dep/acelite/VERSION
@@ -1,4 +1,4 @@
-This is ACE version 5.8.3, released Wed Oct 27 12:01:05 CEST 2010
+This is ACE version 6.1.4, released Wed Aug 29 08:16:04 CEST 2012
If you have any problems with or questions about ACE, please send
e-mail to the ACE mailing list (ace-bugs@list.isis.vanderbilt.edu),
diff --git a/dep/acelite/ace/ACE.cpp b/dep/acelite/ace/ACE.cpp
index 433b5e3e788..a965eff09f6 100644
--- a/dep/acelite/ace/ACE.cpp
+++ b/dep/acelite/ace/ACE.cpp
@@ -1,4 +1,4 @@
-// $Id: ACE.cpp 92298 2010-10-21 11:15:17Z johnnyw $
+// $Id: ACE.cpp 96017 2012-08-08 22:18:09Z mitza $
#include "ace/ACE.h"
@@ -25,10 +25,6 @@
#include "ace/OS_TLI.h"
#include "ace/Truncate.h"
-#if defined (ACE_VXWORKS) && (ACE_VXWORKS < 0x620)
-extern "C" int maxFiles;
-#endif /* ACE_VXWORKS */
-
#if !defined (__ACE_INLINE__)
#include "ace/ACE.inl"
#endif /* __ACE_INLINE__ */
@@ -68,7 +64,7 @@ ACE::out_of_handles (int error)
#elif defined (HPUX)
// On HPUX, we need to check for EADDRNOTAVAIL also.
error == EADDRNOTAVAIL ||
-#elif defined (linux)
+#elif defined (ACE_LINUX)
// On linux, we need to check for ENOENT also.
error == ENOENT ||
// For RedHat5.2, need to check for EINVAL too.
@@ -2308,7 +2304,7 @@ ACE::format_hexdump (const char *buffer,
ACE_TEXT (" "));
++obuf;
}
- textver[j] = ACE_OS::ace_isprint (c) ? c : '.';
+ textver[j] = ACE_OS::ace_isprint (c) ? c : u_char ('.');
}
textver[j] = 0;
@@ -2340,7 +2336,7 @@ ACE::format_hexdump (const char *buffer,
ACE_TEXT (" "));
++obuf;
}
- textver[i] = ACE_OS::ace_isprint (c) ? c : '.';
+ textver[i] = ACE_OS::ace_isprint (c) ? c : u_char ('.');
}
for (i = size % 16; i < 16; i++)
@@ -2371,7 +2367,8 @@ ACE::format_hexdump (const char *buffer,
// 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.
+// also stored in the beginning of the date_and_time array
+// using ISO-8601 format.
ACE_TCHAR *
ACE::timestamp (ACE_TCHAR date_and_time[],
@@ -2386,7 +2383,10 @@ ACE::timestamp (ACE_TCHAR date_and_time[],
// Returns the given 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.
+// also stored in the beginning of the date_and_time array
+// using ISO-8601 format.
+// 012345678901234567890123456
+// 2010-12-02 12:56:00.123456<nul>
ACE_TCHAR *
ACE::timestamp (const ACE_Time_Value& time_value,
@@ -2396,92 +2396,32 @@ ACE::timestamp (const ACE_Time_Value& time_value,
{
//ACE_TRACE ("ACE::timestamp");
- if (date_and_timelen < 35)
+ // This magic number is from the formatting statement
+ // farther down this routine.
+ if (date_and_timelen < 27)
{
errno = EINVAL;
return 0;
}
-#if defined (WIN32)
- if (time_value == ACE_Time_Value::zero)
- {
- // 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_TEXT ("Sun"),
- ACE_TEXT ("Mon"),
- ACE_TEXT ("Tue"),
- ACE_TEXT ("Wed"),
- ACE_TEXT ("Thu"),
- ACE_TEXT ("Fri"),
- ACE_TEXT ("Sat")
- };
-
- static const ACE_TCHAR *month_name[] =
- {
- ACE_TEXT ("Jan"),
- ACE_TEXT ("Feb"),
- ACE_TEXT ("Mar"),
- ACE_TEXT ("Apr"),
- ACE_TEXT ("May"),
- ACE_TEXT ("Jun"),
- ACE_TEXT ("Jul"),
- ACE_TEXT ("Aug"),
- ACE_TEXT ("Sep"),
- ACE_TEXT ("Oct"),
- ACE_TEXT ("Nov"),
- ACE_TEXT ("Dec")
- };
-
- SYSTEMTIME local;
- ::GetLocalTime (&local);
-
- ACE_OS::sprintf (date_and_time,
- ACE_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)];
- }
-#endif /* WIN32 */
- ACE_TCHAR timebuf[26]; // This magic number is based on the ctime(3c) man page.
ACE_Time_Value cur_time =
(time_value == ACE_Time_Value::zero) ?
ACE_Time_Value (ACE_OS::gettimeofday ()) : time_value;
time_t secs = cur_time.sec ();
-
- ACE_OS::ctime_r (&secs,
- timebuf,
- sizeof timebuf / sizeof (ACE_TCHAR));
- // date_and_timelen > sizeof timebuf!
- ACE_OS::strsncpy (date_and_time,
- timebuf,
- date_and_timelen);
- ACE_TCHAR yeartmp[5];
- ACE_OS::strsncpy (yeartmp,
- &date_and_time[20],
- 5);
- ACE_TCHAR timetmp[9];
- ACE_OS::strsncpy (timetmp,
- &date_and_time[11],
- 9);
- ACE_OS::sprintf (&date_and_time[11],
-# if defined (ACE_USES_WCHAR)
- ACE_TEXT ("%ls %ls.%06ld"),
-# else
- ACE_TEXT ("%s %s.%06ld"),
-# endif /* ACE_USES_WCHAR */
- yeartmp,
- timetmp,
- cur_time.usec ());
- date_and_time[33] = '\0';
- return &date_and_time[15 + (return_pointer_to_first_digit != 0)];
+ struct tm tms;
+ ACE_OS::localtime_r (&secs, &tms);
+ ACE_OS::snprintf (date_and_time,
+ date_and_timelen,
+ ACE_TEXT ("%4.4d-%2.2d-%2.2d %2.2d:%2.2d:%2.2d.%06ld"),
+ tms.tm_year + 1900,
+ tms.tm_mon + 1,
+ tms.tm_mday,
+ tms.tm_hour,
+ tms.tm_min,
+ tms.tm_sec,
+ static_cast<long> (cur_time.usec()));
+ date_and_time[date_and_timelen - 1] = '\0';
+ return &date_and_time[10 + (return_pointer_to_first_digit != 0)];
}
// This function rounds the request to a multiple of the page size.
@@ -2866,9 +2806,7 @@ ACE::max_handles (void)
#endif /* RLIMIT_NOFILE && !ACE_LACKS_RLIMIT */
#if defined (_SC_OPEN_MAX)
- return ACE_OS::sysconf (_SC_OPEN_MAX);
-#elif defined (ACE_VXWORKS) && (ACE_VXWORKS < 0x620)
- return maxFiles;
+ return static_cast<int> (ACE_OS::sysconf (_SC_OPEN_MAX));
#elif defined (FD_SETSIZE)
return FD_SETSIZE;
#else
@@ -2915,7 +2853,7 @@ ACE::set_handle_limit (int new_limit,
#if !defined (ACE_LACKS_RLIMIT) && defined (RLIMIT_NOFILE)
rl.rlim_cur = new_limit;
return ACE_OS::setrlimit (RLIMIT_NOFILE, &rl);
-#elif defined (ACE_LACKS_RLIMIT_NOFILE)
+#elif !defined (RLIMIT_NOFILE)
return 0;
#else
// Must return EINVAL errno.
@@ -3342,10 +3280,7 @@ ACE::strnew (const char *s)
ACE_NEW_RETURN (t,
char [ACE_OS::strlen (s) + 1],
0);
- if (t == 0)
- return 0;
- else
- return ACE_OS::strcpy (t, s);
+ return ACE_OS::strcpy (t, s);
}
#if defined (ACE_HAS_WCHAR)
@@ -3358,10 +3293,7 @@ ACE::strnew (const wchar_t *s)
ACE_NEW_RETURN (t,
wchar_t[ACE_OS::strlen (s) + 1],
0);
- if (t == 0)
- return 0;
- else
- return ACE_OS::strcpy (t, s);
+ return ACE_OS::strcpy (t, s);
}
#endif /* ACE_HAS_WCHAR */
@@ -3400,7 +3332,7 @@ namespace
// characters are allowed as the range endpoints. These characters
// are the same values in both signed and unsigned chars so we
// don't have to account for any "pathological cases."
- for (char range = p[-1] + 1; range <= p[1]; ++range)
+ for (char range = static_cast<char> (p[-1] + 1); range <= p[1]; ++range)
{
if (equal_char (s, range, case_sensitive))
{
diff --git a/dep/acelite/ace/ACE.h b/dep/acelite/ace/ACE.h
index 04b39a85652..58eb1f68947 100644
--- a/dep/acelite/ace/ACE.h
+++ b/dep/acelite/ace/ACE.h
@@ -4,7 +4,7 @@
/**
* @file ACE.h
*
- * $Id: ACE.h 92060 2010-09-27 18:08:48Z johnnyw $
+ * $Id: ACE.h 93276 2011-02-04 20:03:53Z olli $
*
* This file contains value added ACE functions that extend the
* behavior of the UNIX and Win32 OS calls.
@@ -474,15 +474,23 @@ namespace ACE
ACE_DIRECTORY_SEPARATOR_CHAR);
/**
- * Returns the given timestamp in the form
- * "hour:minute:second:microsecond." The month, day, and year are
- * also stored in the beginning of the @a date_and_time array, which
- * is a user-supplied array of size @a time_len> @c ACE_TCHARs.
- * Returns 0 if unsuccessful, else returns pointer to beginning of the
- * "time" portion of @a date_and_time. If @a
- * 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.
+ * Translate the given timestamp to ISO-8601 format.
+ *
+ * @param time_value ACE_Time_Value to format. This is assumed to be
+ * an absolute time value.
+ * @param date_and_time Array to hold the timestamp.
+ * @param time_len Size of @a date_and_time in ACE_TCHARs.
+ * Must be greater than or equal to 27.
+ * @param return_pointer_to_first_digit If true, returned pointer value
+ * is to the first time digit, else to the space
+ * prior to the first time digit. See Return Values.
+ *
+ * @retval 0 if unsuccessful, with errno set. If @a time_len is less than
+ * 27 errno will be EINVAL.
+ * @retval If successful, pointer to beginning of the "time" portion of
+ * @a date_and_time. If @a return_pointer_to_first_digit is false
+ * the pointer is actually to the space before the time, else
+ * the pointer is to the first time digit.
*/
extern ACE_Export ACE_TCHAR *timestamp (const ACE_Time_Value& time_value,
ACE_TCHAR date_and_time[],
@@ -490,15 +498,21 @@ namespace ACE
bool return_pointer_to_first_digit = false);
/**
- * Returns the current timestamp in the form
- * "hour:minute:second:microsecond." The month, day, and year are
- * also stored in the beginning of the @a date_and_time array, which
- * is a user-supplied array of size @a time_len> @c ACE_TCHARs.
- * Returns 0 if unsuccessful, else returns pointer to beginning of the
- * "time" portion of @a date_and_time. If @a
- * 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.
+ * Translate the current time to ISO-8601 timestamp format.
+ *
+ * @param date_and_time Array to hold the timestamp.
+ * @param time_len Size of @a date_and_time in ACE_TCHARs.
+ * Must be greater than or equal to 27.
+ * @param return_pointer_to_first_digit If true, returned pointer value
+ * is to the first time digit, else to the space
+ * prior to the first time digit. See Return Values.
+ *
+ * @retval 0 if unsuccessful, with errno set. If @a time_len is less than
+ * 27 errno will be EINVAL.
+ * @retval If successful, pointer to beginning of the "time" portion of
+ * @a date_and_time. If @a return_pointer_to_first_digit is false
+ * the pointer is actually to the space before the time, else
+ * the pointer is to the first time digit.
*/
extern ACE_Export ACE_TCHAR *timestamp (ACE_TCHAR date_and_time[],
size_t time_len,
@@ -650,6 +664,14 @@ namespace ACE
return !((a < b) || (a > b));
}
+ /// Helper to avoid comparing floating point values with !=
+ /// (uses < and > operators).
+ template <typename T>
+ bool is_inequal (const T& a, const T& b)
+ {
+ return !is_equal (a, b);
+ }
+
/// Hex conversion utility.
extern ACE_Export ACE_TCHAR nibble2hex (u_int n);
diff --git a/dep/acelite/ace/ACE.inl b/dep/acelite/ace/ACE.inl
index e36e4f01f7b..95f45ee99d3 100644
--- a/dep/acelite/ace/ACE.inl
+++ b/dep/acelite/ace/ACE.inl
@@ -1,6 +1,6 @@
// -*- C++ -*-
//
-// $Id: ACE.inl 91813 2010-09-17 07:52:52Z johnnyw $
+// $Id: ACE.inl 95761 2012-05-15 18:23:04Z johnnyw $
#include "ace/OS_NS_unistd.h"
#include "ace/OS_NS_Thread.h"
@@ -230,7 +230,7 @@ ACE::send_i (ACE_HANDLE handle, const void *buf, size_t len)
ACE_INLINE ssize_t
ACE::recv_i (ACE_HANDLE handle, void *buf, size_t len)
{
-#if defined (ACE_WIN32) || defined (ACE_OPENVMS) || defined (ACE_TANDEM_T1248_PTHREADS)
+#if defined (ACE_WIN32) || defined (ACE_OPENVMS)
return ACE_OS::recv (handle, (char *) buf, len);
#else
return ACE_OS::read (handle, (char *) buf, len);
diff --git a/dep/acelite/ace/ACE_crc_ccitt.cpp b/dep/acelite/ace/ACE_crc_ccitt.cpp
index 7dfefa5c69d..c1455d79171 100644
--- a/dep/acelite/ace/ACE_crc_ccitt.cpp
+++ b/dep/acelite/ace/ACE_crc_ccitt.cpp
@@ -1,4 +1,4 @@
-// $Id: ACE_crc_ccitt.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: ACE_crc_ccitt.cpp 96017 2012-08-08 22:18:09Z mitza $
#include "ace/ACE.h"
@@ -65,7 +65,7 @@ namespace
/*****************************************************************/
}
-#define COMPUTE(var, ch) (var) = (crc_table[(var ^ ch) & 0xFF] ^ (var >> 8))
+#define COMPUTE(var, ch) (var) = static_cast<ACE_UINT16> (crc_table[(var ^ ch) & 0xFF] ^ (var >> 8))
// Open versioned namespace, if enabled by the user.
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -82,13 +82,13 @@ ACE::crc_ccitt (const char *string)
COMPUTE (crc, *p);
}
- return ~crc;
+ return static_cast<ACE_UINT16> (~crc);
}
ACE_UINT16
ACE::crc_ccitt (const void *buffer, size_t len, ACE_UINT16 crc)
{
- crc = ~crc;
+ crc = static_cast<ACE_UINT16> (~crc);
for (const char *p = (const char *) buffer,
*e = (const char *) buffer + len;
@@ -98,13 +98,13 @@ ACE::crc_ccitt (const void *buffer, size_t len, ACE_UINT16 crc)
COMPUTE (crc, *p);
}
- return ~crc;
+ return static_cast<ACE_UINT16> (~crc);
}
ACE_UINT16
ACE::crc_ccitt (const iovec *iov, int len, ACE_UINT16 crc)
{
- crc = ~crc;
+ crc = static_cast<ACE_UINT16> (~crc);
for (int i = 0; i < len; ++i)
{
@@ -115,7 +115,7 @@ ACE::crc_ccitt (const iovec *iov, int len, ACE_UINT16 crc)
COMPUTE (crc, *p);
}
- return ~crc;
+ return static_cast<ACE_UINT16> (~crc);
}
// Close versioned namespace, if enabled by the user.
diff --git a/dep/acelite/ace/ARGV.cpp b/dep/acelite/ace/ARGV.cpp
index 3b46459fe5b..e64c5d8696f 100644
--- a/dep/acelite/ace/ARGV.cpp
+++ b/dep/acelite/ace/ARGV.cpp
@@ -1,4 +1,4 @@
-// $Id: ARGV.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: ARGV.cpp 95630 2012-03-22 13:04:47Z johnnyw $
#ifndef ACE_ARGV_CPP
#define ACE_ARGV_CPP
@@ -167,6 +167,7 @@ ACE_ARGV_T<CHAR_TYPE>::ACE_ARGV_T (CHAR_TYPE *first_argv[],
CHAR_TYPE *first_buf = 0;
CHAR_TYPE *second_buf = 0;
+ size_t buf_len = 1;
// convert the first argv to a string
if (first_argv != 0 && first_argv[0] != 0)
@@ -175,6 +176,7 @@ ACE_ARGV_T<CHAR_TYPE>::ACE_ARGV_T (CHAR_TYPE *first_argv[],
first_buf,
substitute_env_args,
quote_args);
+ buf_len += ACE_OS::strlen (first_buf);
}
// convert the second argv to a string
@@ -184,14 +186,12 @@ ACE_ARGV_T<CHAR_TYPE>::ACE_ARGV_T (CHAR_TYPE *first_argv[],
second_buf,
substitute_env_args,
quote_args);
+ buf_len += ACE_OS::strlen (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_,
CHAR_TYPE[buf_len + 1]);
diff --git a/dep/acelite/ace/ARGV.h b/dep/acelite/ace/ARGV.h
index 66e71810a95..1c291bd6eda 100644
--- a/dep/acelite/ace/ARGV.h
+++ b/dep/acelite/ace/ARGV.h
@@ -4,7 +4,7 @@
/**
* @file ARGV.h
*
- * $Id: ARGV.h 81156 2008-03-30 20:56:47Z iliyan $
+ * $Id: ARGV.h 95972 2012-07-26 10:20:42Z johnnyw $
*
* @author Doug Schmidt <schmidt@cs.wustl.edu>
* @author Everett Anderson <eea1@cs.wustl.edu>
@@ -206,8 +206,8 @@ public:
*
* @param index Index to the desired element.
*
- * @retval Pointer to the indexed string.
- * @retval 0 if @a index is out of bounds.
+ * @retval Pointer to the indexed string.
+ * @retval 0 if @a index is out of bounds.
*/
const CHAR_TYPE *operator[] (size_t index);
diff --git a/dep/acelite/ace/ATM_Stream.inl b/dep/acelite/ace/ATM_Stream.inl
index 007e25832a5..94de09004d4 100644
--- a/dep/acelite/ace/ATM_Stream.inl
+++ b/dep/acelite/ace/ATM_Stream.inl
@@ -1,6 +1,5 @@
// -*- C++ -*-
-//
-// $Id: ATM_Stream.inl 84262 2009-01-29 10:34:33Z johnnyw $
+// $Id: ATM_Stream.inl 92474 2010-11-02 13:29:39Z johnnyw $
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/Abstract_Timer_Queue.cpp b/dep/acelite/ace/Abstract_Timer_Queue.cpp
new file mode 100644
index 00000000000..3207733b24e
--- /dev/null
+++ b/dep/acelite/ace/Abstract_Timer_Queue.cpp
@@ -0,0 +1,26 @@
+//$Id: Abstract_Timer_Queue.cpp 95334 2011-12-15 12:52:50Z msmit $
+
+#ifndef ACE_ABSTRACT_TIMER_QUEUE_CPP
+#define ACE_ABSTRACT_TIMER_QUEUE_CPP
+#include "ace/config-all.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Abstract_Timer_Queue.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+// Even though the destructor is pure virtual you must provide an
+// implementation. Most people know this, but sometimes we all
+// forget, and we might be tempted to remove this code.
+template<typename TYPE>
+ACE_Abstract_Timer_Queue<TYPE>::
+~ACE_Abstract_Timer_Queue ()
+{
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_ABSTRACT_TIMER_QUEUE_CPP */
diff --git a/dep/acelite/ace/Abstract_Timer_Queue.h b/dep/acelite/ace/Abstract_Timer_Queue.h
new file mode 100644
index 00000000000..ddb8abf7f15
--- /dev/null
+++ b/dep/acelite/ace/Abstract_Timer_Queue.h
@@ -0,0 +1,230 @@
+//$Id: Abstract_Timer_Queue.h 95368 2011-12-19 13:38:49Z mcorino $
+
+#ifndef ACE_ABSTRACT_TIMER_QUEUE_H
+#define ACE_ABSTRACT_TIMER_QUEUE_H
+
+#include /**/ "ace/pre.h"
+/**
+ * @file Abstract_Timer_Queue.h
+ *
+ * @author Carlos O'Ryan <coryan@atdesk.com>
+ *
+ * Based on classes and files developed by Doug Schmidt, Darrell
+ * Brunsch, Irfan Pyarali and a cast of thousands.
+ */
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+// Forward declares
+class ACE_Time_Value;
+class ACE_Command_Base;
+template<typename TYPE> class ACE_Timer_Queue_Iterator_T;
+template<typename TYPE> class ACE_Timer_Node_T;
+
+/**
+ * @class ACE_Abstract_Timer_Queue
+ *
+ * @brief Base class for all timer queues of a single type.
+ *
+ * This is a base class for all the timer queues, regardless of
+ * locking strategy, upcall mechanism, internal implementation, etc.
+ * The class was motivated by bug 3706:
+ * http://bugzilla.dre.vanderbilt.edu/show_bug.cgi?id=3706
+ * In short, the Reactor (and potentially other classes) want to refer
+ * to timer queues regardless of the implementation internals.
+ */
+template<typename TYPE>
+class ACE_Abstract_Timer_Queue
+{
+public:
+ /// Destructor
+ virtual ~ACE_Abstract_Timer_Queue (void) = 0;
+
+ /// True if queue is empty, else false.
+ virtual bool 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 @a type that will expire at @a future_time, which is
+ * specified in absolute time. If it expires then @a act is passed
+ * in as the value to the <functor>. If @a interval is != to
+ * ACE_Time_Value::zero then it is used to reschedule the @a type
+ * automatically, using relative time to the current <gettimeofday>.
+ * This method returns a <timer_id> that uniquely identifies the the
+ * @a 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;
+
+ /**
+ * Run the <functor> for all timers whose values are <= @a current_time.
+ * This does not account for <timer_skew>. Returns the number of
+ * timers canceled.
+ */
+ virtual int expire (const ACE_Time_Value &current_time) = 0;
+
+ /**
+ * 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) = 0;
+
+ /**
+ * A couple of classes using Timer_Queues need to dispatch a single
+ * event at a time. But before they dispatch the event they need to
+ * release a lock, signal other threads, etc.
+ *
+ * This member function should be used in that case. The additional
+ * operations to be called just before dispatching the event, and
+ * only if an event will be dispatched, are encapsulated in the
+ * ACE_Command_Base object.
+ */
+ virtual int expire_single(ACE_Command_Base & pre_dispatch_command) = 0;
+
+ /**
+ * Resets the interval of the timer represented by @a timer_id to
+ * @a interval, which is specified in relative time to the current
+ * <gettimeofday>. If @a 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 @a type. If
+ * @a 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 @a 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
+ * @a 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 @a timer_id wasn't found.
+ */
+ virtual int cancel (long timer_id,
+ const void **act = 0,
+ int dont_call_handle_close = 1) = 0;
+
+ /**
+ * Close timer queue. Cancels all timers.
+ */
+ virtual int close (void) = 0;
+
+ /**
+ * 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) = 0;
+
+ /**
+ * Allows applications to control how the timer queue gets the time
+ * of day.
+ * @deprecated Use TIME_POLICY support instead. See Timer_Queue_T.h
+ */
+ virtual void gettimeofday (ACE_Time_Value (*gettimeofday)(void)) = 0;
+
+ /// Determine the next event to timeout. Returns @a 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) = 0;
+
+ /**
+ * Determine the next event to timeout. Returns @a 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) = 0;
+
+ /**
+ * Return the current time, using the right time policy and any
+ * timer skew defined in derived classes.
+ */
+ virtual ACE_Time_Value current_time() = 0;
+
+ /// Type of Iterator.
+ typedef ACE_Timer_Queue_Iterator_T<TYPE> ITERATOR;
+
+ /// 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;
+
+ /// Reads the earliest node from the queue and returns it.
+ virtual ACE_Timer_Node_T<TYPE> *get_first (void) = 0;
+
+ /// Dump the state of a object.
+ virtual void dump (void) const = 0;
+};
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "ace/Abstract_Timer_Queue.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("Abstract_Timer_Queue.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#include /**/ "ace/post.h"
+#endif /* ACE_ABSTRACT_TIMER_QUEUE_H */
diff --git a/dep/acelite/ace/Acceptor.cpp b/dep/acelite/ace/Acceptor.cpp
index 236a35ba803..72bebfd78c4 100644
--- a/dep/acelite/ace/Acceptor.cpp
+++ b/dep/acelite/ace/Acceptor.cpp
@@ -1,4 +1,4 @@
-// $Id: Acceptor.cpp 91623 2010-09-06 09:30:59Z sma $
+// $Id: Acceptor.cpp 95730 2012-05-04 17:28:19Z johnnyw $
#ifndef ACE_ACCEPTOR_CPP
#define ACE_ACCEPTOR_CPP
@@ -900,7 +900,10 @@ ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::open
template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1>
ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::ACE_Oneshot_Acceptor (void)
- : delete_concurrency_strategy_ (false)
+ : svc_handler_ (0),
+ restart_ (false),
+ concurrency_strategy_ (0),
+ delete_concurrency_strategy_ (false)
{
ACE_TRACE ("ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::ACE_Oneshot_Acceptor");
this->reactor (0);
@@ -911,7 +914,10 @@ 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_ (false)
+ : svc_handler_ (0),
+ restart_ (false),
+ concurrency_strategy_ (0),
+ delete_concurrency_strategy_ (false)
{
ACE_TRACE ("ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::ACE_Oneshot_Acceptor");
if (this->open (local_addr, reactor, cs) == -1)
@@ -1010,7 +1016,7 @@ ACE_Oneshot_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>::register_handler
if (tv != 0
&& this->reactor ()->schedule_timer (this,
synch_options.arg (),
- *tv) == 0)
+ *tv) == -1)
return -1;
else
return this->reactor ()->register_handler
diff --git a/dep/acelite/ace/Acceptor.h b/dep/acelite/ace/Acceptor.h
index 64cf488b9d4..fdd00d5a04d 100644
--- a/dep/acelite/ace/Acceptor.h
+++ b/dep/acelite/ace/Acceptor.h
@@ -4,7 +4,7 @@
/**
* @file Acceptor.h
*
- * $Id: Acceptor.h 88800 2010-02-01 23:18:34Z shuston $
+ * $Id: Acceptor.h 93624 2011-03-22 21:14:05Z johnnyw $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
*/
@@ -193,9 +193,9 @@ protected:
virtual int accept_svc_handler (SVC_HANDLER *svc_handler);
/**
- * Bridge method for activating a {svc_handler} with the appropriate
+ * Bridge method for activating a @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
+ * 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
diff --git a/dep/acelite/ace/Active_Map_Manager.h b/dep/acelite/ace/Active_Map_Manager.h
index a6c167e5f88..7bade46aa5b 100644
--- a/dep/acelite/ace/Active_Map_Manager.h
+++ b/dep/acelite/ace/Active_Map_Manager.h
@@ -4,7 +4,7 @@
/**
* @file Active_Map_Manager.h
*
- * $Id: Active_Map_Manager.h 91066 2010-07-12 11:05:04Z johnnyw $
+ * $Id: Active_Map_Manager.h 93359 2011-02-11 11:33:12Z mcorino $
*
* @author Irfan Pyarali
*/
@@ -68,7 +68,7 @@ public:
void decode (const void *data);
/// Encode state of the active key into @a data. @a data must be as
- /// big as the value returned from <size>.
+ /// big as the value returned from size().
void encode (void *data) const;
/// Compare keys.
diff --git a/dep/acelite/ace/Arg_Shifter.h b/dep/acelite/ace/Arg_Shifter.h
index 57cd2b0f56c..123a70560cf 100644
--- a/dep/acelite/ace/Arg_Shifter.h
+++ b/dep/acelite/ace/Arg_Shifter.h
@@ -4,7 +4,7 @@
/**
* @file Arg_Shifter.h
*
- * $Id: Arg_Shifter.h 91459 2010-08-25 09:51:01Z mcorino $
+ * $Id: Arg_Shifter.h 95972 2012-07-26 10:20:42Z johnnyw $
*
* @author Seth Widoff
*/
@@ -211,10 +211,10 @@ private:
/// The index of <argv_> in which we'll stick the next known
/// argument.
- int front_;
- /* This is not really the "front" at all. It's the point after
+ /** This is not really the "front" at all. It's the point after
* which the unknown arguments end and at which the known arguments begin.
*/
+ int front_;
};
typedef ACE_Arg_Shifter_T<ACE_TCHAR> ACE_Arg_Shifter;
diff --git a/dep/acelite/ace/Argv_Type_Converter.h b/dep/acelite/ace/Argv_Type_Converter.h
index d41d839b671..0cf62fa089e 100644
--- a/dep/acelite/ace/Argv_Type_Converter.h
+++ b/dep/acelite/ace/Argv_Type_Converter.h
@@ -4,7 +4,7 @@
/**
* @file Argv_Type_Converter.h
*
- * $Id: Argv_Type_Converter.h 83891 2008-11-28 11:01:50Z johnnyw $
+ * $Id: Argv_Type_Converter.h 93359 2011-02-11 11:33:12Z mcorino $
*
* @author Si Mong Park <spark@ociweb.com>
*/
@@ -78,7 +78,7 @@ private:
/// argv list.
void align_wchar_with_char (void);
- /// Clean up removed (comsumed) argv entries and reset the pass flags.
+ /// Clean up removed (consumed) argv entries and reset the pass flags.
void cleanup (void);
#endif // ACE_USES_WCHAR
diff --git a/dep/acelite/ace/Array_Base.h b/dep/acelite/ace/Array_Base.h
index 0d6620a6ca6..9276bf6ee38 100644
--- a/dep/acelite/ace/Array_Base.h
+++ b/dep/acelite/ace/Array_Base.h
@@ -4,7 +4,7 @@
/**
* @file Array_Base.h
*
- * $Id: Array_Base.h 84477 2009-02-16 13:30:38Z johnnyw $
+ * $Id: Array_Base.h 93359 2011-02-11 11:33:12Z mcorino $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
*/
@@ -67,21 +67,21 @@ public:
ACE_Array_Base (size_type size = 0,
ACE_Allocator * the_allocator = 0);
- /// Dynamically initialize the entire array to the <default_value>.
+ /// Dynamically initialize the entire array to the @a default_value.
ACE_Array_Base (size_type size,
T const & default_value,
ACE_Allocator * the_allocator = 0);
/**
* The copy constructor performs initialization by making an exact
- * copy of the contents of parameter <s>, i.e., *this == s will
+ * copy of the contents of parameter @a s, i.e., *this == s will
* return true.
*/
ACE_Array_Base (ACE_Array_Base<T> const & s);
/**
* Assignment operator performs an assignment by making an exact
- * copy of the contents of parameter <s>, i.e., *this == s will
+ * copy of the contents of parameter @a 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_>,
diff --git a/dep/acelite/ace/Array_Map.cpp b/dep/acelite/ace/Array_Map.cpp
index 5530a8b54b6..25b4e24579c 100644
--- a/dep/acelite/ace/Array_Map.cpp
+++ b/dep/acelite/ace/Array_Map.cpp
@@ -1,4 +1,4 @@
-// $Id: Array_Map.cpp 80826 2008-03-04 14:51:23Z wotte $
+// $Id: Array_Map.cpp 92386 2010-10-28 07:44:37Z johnnyw $
#ifndef ACE_ARRAY_MAP_CPP
#define ACE_ARRAY_MAP_CPP
@@ -15,7 +15,6 @@
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-#ifndef ACE_LACKS_MEMBER_TEMPLATES
template<typename Key, typename Value, class EqualTo>
template<typename InputIterator>
ACE_Array_Map<Key, Value, EqualTo>::ACE_Array_Map (InputIterator f,
@@ -34,26 +33,6 @@ ACE_Array_Map<Key, Value, EqualTo>::ACE_Array_Map (InputIterator f,
// for (InputIterator i = f; i != l; ++i, ++n)
// *n = *i;
}
-#else
-template<typename Key, typename Value, class EqualTo>
-ACE_Array_Map<Key, Value, EqualTo>::ACE_Array_Map (
- typename ACE_Array_Map<Key, Value, EqualTo>::const_iterator f,
- typename ACE_Array_Map<Key, Value, EqualTo>::const_iterator l)
- : size_ (l - f)
- , capacity_ (size_)
- , nodes_ (size_ == 0 ? 0 : new value_type[size_])
-{
- (void) std::copy (f,
- l,
- ACE_make_checked_array_iterator (this->begin (),
- this->size_));
-
-// iterator n = this->begin ();
-
-// for (const_iterator i = f; i != l; ++i, ++n)
-// *n = *i;
-}
-#endif /* !ACE_LACKS_MEMBER_TEMPLATES */
template<typename Key, typename Value, class EqualTo>
ACE_Array_Map<Key, Value, EqualTo>::ACE_Array_Map (
@@ -119,7 +98,6 @@ ACE_Array_Map<Key, Value, EqualTo>::insert (
return std::make_pair (i, inserted);
}
-#ifndef ACE_LACKS_MEMBER_TEMPLATES
template<typename Key, typename Value, class EqualTo>
template<typename InputIterator>
void
@@ -132,21 +110,6 @@ ACE_Array_Map<Key, Value, EqualTo>::insert (InputIterator f, InputIterator l)
(void) this->insert (*i);
}
}
-#else
-template<typename Key, typename Value, class EqualTo>
-void
-ACE_Array_Map<Key, Value, EqualTo>::insert (
- typename ACE_Array_Map<Key, Value, EqualTo>::const_iterator f,
- typename ACE_Array_Map<Key, Value, EqualTo>::const_iterator l)
-{
- this->grow (l - f); // Preallocate storage.
-
- for (const_iterator i = f; i != l; ++i)
- {
- (void) this->insert (*i);
- }
-}
-#endif /* ACE_LACKS_MEMBER_TEMPLATES */
template<typename Key, typename Value, class EqualTo>
void
diff --git a/dep/acelite/ace/Array_Map.h b/dep/acelite/ace/Array_Map.h
index 1515ea45529..0bd3b1ffeda 100644
--- a/dep/acelite/ace/Array_Map.h
+++ b/dep/acelite/ace/Array_Map.h
@@ -4,7 +4,7 @@
/**
* @file Array_Map.h
*
- * $Id: Array_Map.h 84136 2009-01-12 11:01:17Z johnnyw $
+ * $Id: Array_Map.h 92386 2010-10-28 07:44:37Z johnnyw $
*
* Light weight array-based map with fast iteration but linear
* (i.e. O(n)) search times. STL-style interface is exposed.
@@ -110,12 +110,8 @@ public:
*/
ACE_Array_Map (size_type s = 0);
-#ifndef ACE_LACKS_MEMBER_TEMPLATES
template<typename InputIterator>
ACE_Array_Map (InputIterator f, InputIterator l);
-#else
- ACE_Array_Map (const_iterator f, const_iterator l);
-#endif /* !ACE_LACKS_MEMBER_TEMPLATES */
ACE_Array_Map (ACE_Array_Map const & map);
ACE_Array_Map & operator= (ACE_Array_Map const & map);
@@ -181,14 +177,9 @@ public:
*/
std::pair<iterator, bool> insert (value_type const & x);
-#ifndef ACE_LACKS_MEMBER_TEMPLATES
/// Insert range of elements into map.
template<typename InputIterator>
void insert (InputIterator f, InputIterator l);
-#else
- /// Insert range of elements into map.
- void insert (const_iterator f, const_iterator l);
-#endif /* ACE_LACKS_MEMBER_TEMPLATES */
/// Remove element at position @a pos from the map.
void erase (iterator pos);
diff --git a/dep/acelite/ace/Asynch_Acceptor.cpp b/dep/acelite/ace/Asynch_Acceptor.cpp
index 56af2f14056..916b250b7af 100644
--- a/dep/acelite/ace/Asynch_Acceptor.cpp
+++ b/dep/acelite/ace/Asynch_Acceptor.cpp
@@ -1,5 +1,5 @@
/* -*- C++ -*- */
-// $Id: Asynch_Acceptor.cpp 91693 2010-09-09 12:57:54Z johnnyw $
+// $Id: Asynch_Acceptor.cpp 95630 2012-03-22 13:04:47Z johnnyw $
#ifndef ACE_ASYNCH_ACCEPTOR_C
#define ACE_ASYNCH_ACCEPTOR_C
@@ -30,7 +30,8 @@ ACE_Asynch_Acceptor<HANDLER>::ACE_Asynch_Acceptor (void)
pass_addresses_ (false),
validate_new_connection_ (false),
reissue_accept_ (1),
- bytes_to_read_ (0)
+ bytes_to_read_ (0),
+ addr_family_ (0)
{
}
@@ -297,8 +298,10 @@ ACE_Asynch_Acceptor<HANDLER>::handle_accept (const ACE_Asynch_Accept::Result &re
// If no errors
if (!error)
{
- // Update the Proactor.
- new_handler->proactor (this->proactor ());
+ // Update the Proactor unless make_handler() or constructed handler
+ // set up its own.
+ if (new_handler->proactor () == 0)
+ new_handler->proactor (this->proactor ());
// Pass the addresses
if (this->pass_addresses_)
diff --git a/dep/acelite/ace/Asynch_IO_Impl.h b/dep/acelite/ace/Asynch_IO_Impl.h
index 06eb5c10a87..e820529dfb5 100644
--- a/dep/acelite/ace/Asynch_IO_Impl.h
+++ b/dep/acelite/ace/Asynch_IO_Impl.h
@@ -4,7 +4,7 @@
/**
* @file Asynch_IO_Impl.h
*
- * $Id: Asynch_IO_Impl.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: Asynch_IO_Impl.h 93359 2011-02-11 11:33:12Z mcorino $
*
*
* This class contains asbtract base classes for all the concrete
@@ -81,7 +81,7 @@ public:
/**
* POSIX4 real-time signal number to be used for the
- * operation. <signal_number> ranges from SIGRTMIN to SIGRTMAX. By
+ * 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.
*/
diff --git a/dep/acelite/ace/Atomic_Op.h b/dep/acelite/ace/Atomic_Op.h
index 4dee35e6efb..e2f477fbbc7 100644
--- a/dep/acelite/ace/Atomic_Op.h
+++ b/dep/acelite/ace/Atomic_Op.h
@@ -4,7 +4,7 @@
/**
* @file Atomic_Op.h
*
- * $Id: Atomic_Op.h 91523 2010-08-27 14:18:02Z johnnyw $
+ * $Id: Atomic_Op.h 95225 2011-12-05 20:25:15Z shuston $
*
* @author Douglas C. Schmidt <schmidt@uci.edu>
*/
@@ -124,6 +124,9 @@ public:
/// Atomically assign <rhs> to @c value_.
ACE_Atomic_Op<ACE_Thread_Mutex, long> &operator= (const ACE_Atomic_Op<ACE_Thread_Mutex, long> &rhs);
+ /// Exchange value with @a newval.
+ long exchange (long newval);
+
/// Explicitly return @c value_.
long value (void) const;
@@ -221,6 +224,9 @@ public:
/// Atomically assign <rhs> to @c value_.
ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long> &operator= (const ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long> &rhs);
+ /// Exchange value with @a newval.
+ unsigned long exchange (unsigned long newval);
+
/// Explicitly return @c value_.
unsigned long value (void) const;
diff --git a/dep/acelite/ace/Atomic_Op.inl b/dep/acelite/ace/Atomic_Op.inl
index 564017aec62..e1f1ca21143 100644
--- a/dep/acelite/ace/Atomic_Op.inl
+++ b/dep/acelite/ace/Atomic_Op.inl
@@ -1,6 +1,5 @@
// -*- C++ -*-
-//
-// $Id: Atomic_Op.inl 91813 2010-09-17 07:52:52Z johnnyw $
+// $Id: Atomic_Op.inl 95225 2011-12-05 20:25:15Z shuston $
#if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
# include "ace/os_include/os_intrin.h"
@@ -190,6 +189,22 @@ ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator= (
}
ACE_INLINE long
+ACE_Atomic_Op<ACE_Thread_Mutex, long>::exchange (long newval)
+{
+#if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
+ return ::_InterlockedExchange (const_cast<long *> (&this->value_), newval);
+#elif defined (WIN32)
+ return ::InterlockedExchange (const_cast<long *> (&this->value_), newval);
+#elif defined (ACE_HAS_VXATOMICLIB)
+ return ::vxAtomicSet (reinterpret_cast <atomic_t*>(const_cast<long *> (&this->value_)), newval);
+#elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB)
+ return ::atomic_swap_ulong (reinterpret_cast<volatile unsigned long*>(&this->value_), newval);
+#else /* WIN32 */
+ return (*exchange_fn_) (&this->value_, newval);
+#endif /* WIN32 */
+}
+
+ACE_INLINE long
ACE_Atomic_Op<ACE_Thread_Mutex, long>::value (void) const
{
return this->value_;
@@ -374,6 +389,22 @@ ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator= (
}
ACE_INLINE unsigned long
+ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::exchange (unsigned long newval)
+{
+#if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
+ return ::_InterlockedExchange (const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_)), newval);
+#elif defined (WIN32)
+ return ::InterlockedExchange (const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_)), newval);
+#elif defined (ACE_HAS_VXATOMICLIB)
+ return ::vxAtomicSet (reinterpret_cast <atomic_t*>(const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_))), newval);
+#elif defined (ACE_HAS_SOLARIS_ATOMIC_LIB)
+ return ::atomic_swap_ulong (&this->value_, newval);
+#else /* WIN32 */
+ return (*exchange_fn_) (reinterpret_cast<volatile long *> (&this->value_), newval);
+#endif /* WIN32 */
+}
+
+ACE_INLINE unsigned long
ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::value (void) const
{
return this->value_;
diff --git a/dep/acelite/ace/Atomic_Op_GCC_T.h b/dep/acelite/ace/Atomic_Op_GCC_T.h
index 92bc771dda6..f980f7f022e 100644
--- a/dep/acelite/ace/Atomic_Op_GCC_T.h
+++ b/dep/acelite/ace/Atomic_Op_GCC_T.h
@@ -4,7 +4,7 @@
/**
* @file Atomic_Op_GCC_T.h
*
- * $Id: Atomic_Op_GCC_T.h 89339 2010-03-05 12:20:47Z johnnyw $
+ * $Id: Atomic_Op_GCC_T.h 95225 2011-12-05 20:25:15Z shuston $
*
* @author Johnny Willemsen <jwillemsen@remedy.nl
*/
@@ -74,6 +74,9 @@ public:
/// Atomically check if @c value_ less than rhs.
bool operator< (T rhs) const;
+ /// Exchange value with @a newval.
+ T exchange (T newval);
+
/// Explicitly return @c value_.
T value (void) const;
diff --git a/dep/acelite/ace/Atomic_Op_GCC_T.inl b/dep/acelite/ace/Atomic_Op_GCC_T.inl
index c6fe027022b..9559e1ec6e4 100644
--- a/dep/acelite/ace/Atomic_Op_GCC_T.inl
+++ b/dep/acelite/ace/Atomic_Op_GCC_T.inl
@@ -1,6 +1,5 @@
// -*- C++ -*-
-//
-// $Id: Atomic_Op_GCC_T.inl 89391 2010-03-08 13:53:30Z johnnyw $
+// $Id: Atomic_Op_GCC_T.inl 95225 2011-12-05 20:25:15Z shuston $
#if defined (ACE_HAS_GCC_ATOMIC_BUILTINS) && (ACE_HAS_GCC_ATOMIC_BUILTINS == 1)
@@ -131,6 +130,13 @@ ACE_Atomic_Op_GCC<T>::operator= (
template <typename T>
ACE_INLINE T
+ACE_Atomic_Op_GCC<T>::exchange (T newval)
+{
+ return __sync_val_compare_and_swap (&this->value_, this->value_, newval);
+}
+
+template <typename T>
+ACE_INLINE T
ACE_Atomic_Op_GCC<T>::value (void) const
{
return this->value_;
diff --git a/dep/acelite/ace/Atomic_Op_T.h b/dep/acelite/ace/Atomic_Op_T.h
index 7a20049ced8..944c0454c38 100644
--- a/dep/acelite/ace/Atomic_Op_T.h
+++ b/dep/acelite/ace/Atomic_Op_T.h
@@ -4,7 +4,7 @@
/**
* @file Atomic_Op_T.h
*
- * $Id: Atomic_Op_T.h 92353 2010-10-25 06:34:35Z johnnyw $
+ * $Id: Atomic_Op_T.h 95761 2012-05-15 18:23:04Z johnnyw $
*
* @author Douglas C. Schmidt <schmidt@uci.edu>
*/
@@ -88,22 +88,17 @@ struct ACE_Type_Traits<unsigned long>
typedef unsigned long parameter_type;
};
-#ifndef ACE_LACKS_LONGLONG_T
template<>
struct ACE_Type_Traits<long long>
{
typedef long long parameter_type;
};
-#endif /* !ACE_LACKS_LONGLONG_T */
-#if !defined (ACE_LACKS_LONGLONG_T) \
- && !defined (ACE_LACKS_UNSIGNEDLONGLONG_T)
template<>
struct ACE_Type_Traits<unsigned long long>
{
typedef unsigned long long parameter_type;
};
-#endif /* !ACE_LACKS_LONGLONG_T && !ACE_LACKS_UNSIGNEDLONGLONG_T */
template<>
struct ACE_Type_Traits<float>
@@ -207,6 +202,9 @@ public:
ACE_Atomic_Op_Ex<ACE_LOCK, TYPE> &operator= (
ACE_Atomic_Op_Ex<ACE_LOCK, TYPE> const & rhs);
+ /// Exchange value with @a newval.
+ TYPE exchange (TYPE newval);
+
/// Explicitly return @c value_.
TYPE value (void) const;
@@ -318,6 +316,9 @@ public:
/// Atomically check if @c value_ less than @a rhs.
bool operator< (arg_type rhs) const;
+ /// Exchange value with @a newval.
+ TYPE exchange (TYPE newval);
+
/// Explicitly return @c value_.
TYPE value (void) const;
diff --git a/dep/acelite/ace/Atomic_Op_T.inl b/dep/acelite/ace/Atomic_Op_T.inl
index 71ce1c1e267..87e6b55d7be 100644
--- a/dep/acelite/ace/Atomic_Op_T.inl
+++ b/dep/acelite/ace/Atomic_Op_T.inl
@@ -1,6 +1,6 @@
// -*- C++ -*-
//
-// $Id: Atomic_Op_T.inl 91688 2010-09-09 11:21:50Z johnnyw $
+// $Id: Atomic_Op_T.inl 95225 2011-12-05 20:25:15Z shuston $
#include "ace/Guard_T.h"
@@ -154,6 +154,16 @@ ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::operator= (
template <class ACE_LOCK, class TYPE>
ACE_INLINE TYPE
+ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::exchange (TYPE newval)
+{
+ // ACE_TRACE ("ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::exchange");
+ ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, this->value_);
+ std::swap (this->value_, newval);
+ return newval;
+}
+
+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");
@@ -308,6 +318,13 @@ ACE_Atomic_Op<ACE_LOCK, TYPE>::operator< (
template <class ACE_LOCK, class TYPE>
ACE_INLINE TYPE
+ACE_Atomic_Op<ACE_LOCK, TYPE>::exchange (TYPE newval)
+{
+ return this->impl_.exchange (newval);
+}
+
+template <class ACE_LOCK, class TYPE>
+ACE_INLINE TYPE
ACE_Atomic_Op<ACE_LOCK, TYPE>::value (void) const
{
return this->impl_.value ();
diff --git a/dep/acelite/ace/Auto_Functor.h b/dep/acelite/ace/Auto_Functor.h
index 2c2b81eb265..393a11c73bc 100644
--- a/dep/acelite/ace/Auto_Functor.h
+++ b/dep/acelite/ace/Auto_Functor.h
@@ -3,7 +3,7 @@
/**
* @file Auto_Functor.h
*
- * $Id: Auto_Functor.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: Auto_Functor.h 92386 2010-10-28 07:44:37Z johnnyw $
*
* @author Carlos O'Ryan <coryan@atdesk.com>
*/
@@ -69,13 +69,11 @@ public:
Auto_Functor<X,Functor>& operator= (Auto_Functor & rhs); // throw()
-#if !defined(ACE_LACKS_MEMBER_TEMPLATES)
template<typename Y>
Auto_Functor(Auto_Functor<Y,Functor>& rhs); // throw()
template<typename Y>
Auto_Functor<X,Functor>& operator= (Auto_Functor<Y,Functor>& rhs); // throw()
-#endif /* ACE_LACKS_MEMBER_TEMPLATES */
~Auto_Functor(); // throw()
@@ -97,13 +95,9 @@ public:
Auto_Functor<X,Functor> & operator=(Auto_Functor_Ref<X,Functor> rhs); // throw()
-#if !defined(ACE_LACKS_MEMBER_TEMPLATES)
template<typename Y> operator Auto_Functor_Ref<Y,Functor>(); // throw()
template<typename Y> operator Auto_Functor<Y,Functor>(); // throw()
-#else
- operator Auto_Functor_Ref<X,Functor>(); // throw()
-#endif /* ACE_LACKS_MEMBER_TEMPLATES */
private:
X * p_;
diff --git a/dep/acelite/ace/Auto_Functor.inl b/dep/acelite/ace/Auto_Functor.inl
index d4cb2cc0473..5e714e01410 100644
--- a/dep/acelite/ace/Auto_Functor.inl
+++ b/dep/acelite/ace/Auto_Functor.inl
@@ -1,6 +1,6 @@
// -*- C++ -*-
//
-// $Id: Auto_Functor.inl 80826 2008-03-04 14:51:23Z wotte $
+// $Id: Auto_Functor.inl 92386 2010-10-28 07:44:37Z johnnyw $
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -35,7 +35,6 @@ ACE_Utils::Auto_Functor<X,Functor>:: operator=(Auto_Functor & rhs)
return *this;
}
-#if !defined(ACE_LACKS_MEMBER_TEMPLATES)
template<typename X, typename Functor> template<typename Y> ACE_INLINE
ACE_Utils::Auto_Functor<X,Functor>::Auto_Functor(Auto_Functor<Y,Functor>& rhs)
: p_(rhs.release())
@@ -50,7 +49,6 @@ ACE_Utils::Auto_Functor<X,Functor>::operator=(Auto_Functor<Y,Functor>& rhs)
reset(rhs.release());
return *this;
}
-#endif /* ACE_LACKS_MEMBER_TEMPLATES */
template<typename X, typename Functor> ACE_INLINE X &
ACE_Utils::Auto_Functor<X,Functor>::operator*() const
@@ -107,8 +105,6 @@ ACE_Utils::Auto_Functor<X,Functor>::operator=(Auto_Functor_Ref<X,Functor> rhs)
return *this;
}
-#if !defined(ACE_LACKS_MEMBER_TEMPLATES)
-
template<typename X, typename Functor> template<typename Y> ACE_INLINE
ACE_Utils::Auto_Functor<X,Functor>::operator ACE_Utils::Auto_Functor_Ref<Y,Functor>()
{
@@ -121,14 +117,4 @@ ACE_Utils::Auto_Functor<X,Functor>::operator ACE_Utils::Auto_Functor<Y,Functor>(
return ACE_Utils::Auto_Functor<Y,Functor>(release(), f_);
}
-#else
-
-template<typename X, typename Functor>ACE_INLINE
-ACE_Utils::Auto_Functor<X,Functor>::operator ACE_Utils::Auto_Functor_Ref<X,Functor>()
-{
- return ACE_Utils::Auto_Functor_Ref<X,Functor>(release(), f_);
-}
-
-#endif /* ACE_LACKS_MEMBER_TEMPLATES */
-
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/Auto_Ptr.h b/dep/acelite/ace/Auto_Ptr.h
index 3183019aceb..e9468a73bc7 100644
--- a/dep/acelite/ace/Auto_Ptr.h
+++ b/dep/acelite/ace/Auto_Ptr.h
@@ -4,7 +4,7 @@
/**
* @file Auto_Ptr.h
*
- * $Id: Auto_Ptr.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: Auto_Ptr.h 92580 2010-11-15 09:48:02Z johnnyw $
*
* @author Doug Schmidt <schmidt@uci.edu>
* @author Irfan Pyarali <irfan@cs.wustl.edu>
@@ -106,9 +106,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
/**
* @brief Implements the draft C++ standard auto_ptr abstraction.
- * This version can be used instead of auto_ptr<T>, and obviates
- * the need for the ACE_AUTO_PTR_RESET macro on platforms like
- * VC6 where the auto_ptr<T> is broken.
+ * This version can be used instead of auto_ptr<T>
*/
template <typename X>
class ACE_Auto_Ptr : public ACE_Auto_Basic_Ptr <X>
@@ -209,18 +207,6 @@ ACE_auto_ptr_reset (AUTO_PTR_TYPE & ap,
ACE_END_VERSIONED_NAMESPACE_DECL
-// 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.
-//
-// The TYPE macro parameter is no longer necessary but we leave it
-// around for backward compatibility. This is also the reason why the
-// ACE_auto_ptr_reset function template is not called
-// ACE_AUTO_PTR_RESET.
-# define ACE_AUTO_PTR_RESET(AUTOPTR,NEWPTR,TYPE) \
- ACE_auto_ptr_reset (AUTOPTR, NEWPTR);
-
#if defined (__ACE_INLINE__)
#include "ace/Auto_Ptr.inl"
#endif /* __ACE_INLINE__ */
diff --git a/dep/acelite/ace/Barrier.h b/dep/acelite/ace/Barrier.h
index 84d7b6492ff..e1e3815e190 100644
--- a/dep/acelite/ace/Barrier.h
+++ b/dep/acelite/ace/Barrier.h
@@ -4,7 +4,7 @@
/**
* @file Barrier.h
*
- * $Id: Barrier.h 92069 2010-09-28 11:38:59Z johnnyw $
+ * $Id: Barrier.h 93359 2011-02-11 11:33:12Z mcorino $
*
* Moved from Synch.h.
*
@@ -101,7 +101,7 @@ public:
const ACE_TCHAR *name = 0,
void *arg = 0);
- /// Default dtor.
+ /// Default destructor.
~ACE_Barrier (void);
/// Block the caller until all @c count threads have called @c wait and
@@ -170,7 +170,7 @@ public:
/// Create a Thread_Barrier, passing in the optional @a name.
ACE_Thread_Barrier (unsigned int count, const ACE_TCHAR *name = 0);
- /// Default dtor.
+ /// Default destructor.
~ACE_Thread_Barrier (void);
/// Dump the state of an object.
diff --git a/dep/acelite/ace/Base_Thread_Adapter.cpp b/dep/acelite/ace/Base_Thread_Adapter.cpp
index fd2629f1608..4b7b6a84c08 100644
--- a/dep/acelite/ace/Base_Thread_Adapter.cpp
+++ b/dep/acelite/ace/Base_Thread_Adapter.cpp
@@ -1,4 +1,4 @@
-// $Id: Base_Thread_Adapter.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: Base_Thread_Adapter.cpp 95595 2012-03-07 13:33:25Z johnnyw $
#include "ace/Base_Thread_Adapter.h"
@@ -29,12 +29,14 @@ ACE_Base_Thread_Adapter::ACE_Base_Thread_Adapter (
, ACE_SEH_EXCEPT_HANDLER selector
, ACE_SEH_EXCEPT_HANDLER handler
#endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
+ , long cancel_flags
)
: user_func_ (user_func)
, arg_ (arg)
, entry_point_ (entry_point)
, thr_desc_ (td)
, ctx_ (ACE_Service_Config::current())
+ , flags_ (cancel_flags)
{
ACE_OS_TRACE ("ACE_Base_Thread_Adapter::ACE_Base_Thread_Adapter");
@@ -83,6 +85,10 @@ ACE_Base_Thread_Adapter::sync_log_msg (const ACE_TCHAR *prg)
(*ACE_Base_Thread_Adapter::sync_log_msg_hook_) (prg);
}
+ACE_OS_Thread_Descriptor::~ACE_OS_Thread_Descriptor (void)
+{
+}
+
ACE_OS_Thread_Descriptor *
ACE_Base_Thread_Adapter::thr_desc_log_msg (void)
{
diff --git a/dep/acelite/ace/Base_Thread_Adapter.h b/dep/acelite/ace/Base_Thread_Adapter.h
index b36d18e4f13..2075e9122ad 100644
--- a/dep/acelite/ace/Base_Thread_Adapter.h
+++ b/dep/acelite/ace/Base_Thread_Adapter.h
@@ -4,7 +4,7 @@
/**
* @file Base_Thread_Adapter.h
*
- * $Id: Base_Thread_Adapter.h 81239 2008-04-04 22:28:48Z iliyan $
+ * $Id: Base_Thread_Adapter.h 95595 2012-03-07 13:33:25Z johnnyw $
*
* @author Nanbor Wang <nanbor@cs.wustl.edu>
*/
@@ -33,9 +33,8 @@
# define ACE_THREAD_ADAPTER_NAME ace_thread_adapter
#endif /* ACE_HAS_VERSIONED_NAMESPACE == 1 */
-// Run the thread entry point for the ACE_Thread_Adapter. This must
-// be an extern "C" to make certain compilers happy...
-
+/// Run the thread entry point for the ACE_Thread_Adapter. This must
+/// be an extern "C" to make certain compilers happy...
extern "C" ACE_Export ACE_THR_FUNC_RETURN ACE_THREAD_ADAPTER_NAME (void *args);
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -44,7 +43,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* @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.
*/
@@ -54,6 +53,8 @@ public:
/// Get the thread creation flags.
long flags (void) const;
+ virtual ~ACE_OS_Thread_Descriptor (void);
+
protected:
/// For use by ACE_Thread_Descriptor.
ACE_OS_Thread_Descriptor (long flags = 0);
@@ -61,17 +62,14 @@ protected:
/**
* 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
+ * ACE_Thread_Manager::wait(), we need to join with that thread (and
* close down the handle).
*/
long flags_;
};
-
-
class ACE_Service_Gestalt;
-
/**
* @class ACE_Base_Thread_Adapter
*
@@ -126,6 +124,7 @@ protected:
, ACE_SEH_EXCEPT_HANDLER selector = 0
, ACE_SEH_EXCEPT_HANDLER handler = 0
# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
+ , long cancel_flags = 0
);
/// Inherit the logging features if the parent thread has an
/// ACE_Log_Msg.
@@ -162,8 +161,8 @@ protected:
/**
* 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
+ * 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_;
@@ -171,7 +170,7 @@ protected:
/// The ACE_Log_Msg attributes.
ACE_OS_Log_Msg_Attributes log_msg_attributes_;
- /// That is usefull for gprof, define itimerval
+ /// That is useful for gprof, define itimerval
#ifdef ACE_USES_GPROF
struct itimerval itimer_;
#endif // ACE_USES_GPROF
@@ -179,6 +178,11 @@ protected:
/// Keep a reference to the configuration context that spawns the
/// thread so the child can inherit it.
ACE_Service_Gestalt * const ctx_;
+
+ /// Pass through the thread-creation flags that can only be acted on by
+ /// the spawned thread. Currently this is only the cancellation-related
+ /// flags.
+ long flags_;
};
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/Basic_Stats.cpp b/dep/acelite/ace/Basic_Stats.cpp
index ae663abe221..93c4c0bdde8 100644
--- a/dep/acelite/ace/Basic_Stats.cpp
+++ b/dep/acelite/ace/Basic_Stats.cpp
@@ -1,4 +1,4 @@
-// $Id: Basic_Stats.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: Basic_Stats.cpp 95743 2012-05-13 12:29:28Z johnnyw $
#include "ace/Basic_Stats.h"
#include "ace/Log_Msg.h"
@@ -42,7 +42,9 @@ ACE_Basic_Stats::accumulate (const ACE_Basic_Stats &rhs)
}
void
-ACE_Basic_Stats::dump_results (const ACE_TCHAR *msg, ACE_UINT32 sf) const
+ACE_Basic_Stats::dump_results (
+ const ACE_TCHAR *msg,
+ ACE_Basic_Stats::scale_factor_type sf) const
{
#ifndef ACE_NLOGGING
if (this->samples_count () == 0u)
diff --git a/dep/acelite/ace/Basic_Stats.h b/dep/acelite/ace/Basic_Stats.h
index bff1ff29f65..eb6c393b904 100644
--- a/dep/acelite/ace/Basic_Stats.h
+++ b/dep/acelite/ace/Basic_Stats.h
@@ -3,13 +3,12 @@
/**
* @file Basic_Stats.h
*
- * $Id: Basic_Stats.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: Basic_Stats.h 95743 2012-05-13 12:29:28Z johnnyw $
*
* @author Carlos O'Ryan <coryan@uci.edu>
*/
//=============================================================================
-
#ifndef ACE_BASIC_STATS_H
#define ACE_BASIC_STATS_H
#include /**/ "ace/pre.h"
@@ -32,6 +31,12 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
class ACE_Export ACE_Basic_Stats
{
public:
+#if !defined (ACE_WIN32)
+ typedef ACE_UINT32 scale_factor_type;
+#else
+ typedef ACE_UINT64 scale_factor_type;
+#endif
+
/// Constructor
/**
* The number of samples is pre-allocated, and cannot changes once
@@ -56,7 +61,7 @@ public:
* presented in microseconds.
*/
void dump_results (const ACE_TCHAR *msg,
- ACE_UINT32 scale_factor) const;
+ scale_factor_type scale_factor) const;
/// The number of samples
ACE_UINT32 samples_count_;
diff --git a/dep/acelite/ace/Basic_Types.cpp b/dep/acelite/ace/Basic_Types.cpp
index 6c161098f8d..c915dabee17 100644
--- a/dep/acelite/ace/Basic_Types.cpp
+++ b/dep/acelite/ace/Basic_Types.cpp
@@ -1,136 +1,3 @@
-// $Id: Basic_Types.cpp 91366 2010-08-16 12:42:35Z mhengstmengel $
+// $Id: Basic_Types.cpp 95763 2012-05-16 06:43:51Z johnnyw $
#include "ace/Basic_Types.h"
-
-#if !defined (__ACE_INLINE__)
-# include "ace/Basic_Types.inl"
-#endif /* ! __ACE_INLINE__ */
-
-
-#if defined (ACE_LACKS_LONGLONG_T) && !defined (ACE_LACKS_UNSIGNEDLONGLONG_T)
-# include "ace/Log_Msg.h"
-# include "ace/OS_NS_stdio.h"
-# include "ace/OS_NS_string.h"
-# if !defined (ACE_LACKS_IOSTREAM_TOTALLY)
-// FUZZ: disable check_for_streams_include
-# include "ace/streams.h"
-# endif /* ! ACE_LACKS_IOSTREAM_TOTALLY */
-
-ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-
-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_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)
-{
-#ifdef __TANDEM && (__CPLUSPLUS_VERSION >= 3)
- unsigned long flags = os.flags();
-#else
- unsigned long flags = os.setf(0);
-#endif
- 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
-
-ACE_END_VERSIONED_NAMESPACE_DECL
-
-#endif /* ACE_LACKS_LONGLONG_T */
-
diff --git a/dep/acelite/ace/Basic_Types.h b/dep/acelite/ace/Basic_Types.h
index bc467fafb5c..fc275ee314b 100644
--- a/dep/acelite/ace/Basic_Types.h
+++ b/dep/acelite/ace/Basic_Types.h
@@ -4,7 +4,7 @@
/**
* @file Basic_Types.h
*
- * $Id: Basic_Types.h 91161 2010-07-21 18:25:12Z schmidt $
+ * $Id: Basic_Types.h 96017 2012-08-08 22:18:09Z mitza $
*
* @author David L. Levine
*
@@ -25,7 +25,6 @@
* - ACE_SIZEOF_LONG_DOUBLE
*
* Wrappers for built-in types of specific sizes:
- * - ACE_USHORT16 (For backward compatibility. Use ACE_UINT16 instead.)
* - ACE_INT8
* - ACE_UINT8
* - ACE_INT16
@@ -33,13 +32,10 @@
* - ACE_INT32
* - ACE_UINT32
* - ACE_UINT64
- * (@note ACE_INT64 is partly defined, there is no ACE_LongLong for
- * platforms that don't have a native 8-byte integer type.)
+ * - ACE_INT64
*
* Byte-order (endian-ness) determination:
* ACE_BYTE_ORDER, to either ACE_BIG_ENDIAN or ACE_LITTLE_ENDIAN
- *
- *
*/
//=============================================================================
@@ -60,10 +56,6 @@
# include "ace/os_include/os_stdlib.h" // Other types
# include "ace/os_include/os_stddef.h" // Get ptrdiff_t - see further comments below
-# if defined(ACE_LACKS_LONGLONG_T)
-# include "ace/os_include/os_stdio.h" // For long long emulation
-# endif /* ACE_LACKS_LONGLONG_T */
-
# include "ace/os_include/sys/os_types.h"
# if !defined (ACE_LACKS_SYS_PARAM_H)
@@ -100,15 +92,11 @@ typedef ACE::If_Then_Else<
ACE::If_Then_Else<
(sizeof (void*) == sizeof (signed long)),
signed long,
-#ifdef ACE_LACKS_LONGLONG_T
- void /* Unknown. Force an invalid type */
-#else
ACE::If_Then_Else<
(sizeof (void*) == sizeof (signed long long)),
signed long long,
void /* Unknown. Force an invalid type */
>::result_type
-#endif /* ACE_LACKS_LONGLONG_T */
>::result_type
>::result_type intptr_t;
@@ -118,15 +106,11 @@ typedef ACE::If_Then_Else<
ACE::If_Then_Else<
(sizeof (void*) == sizeof (unsigned long)),
unsigned long,
-#ifdef ACE_LACKS_UNSIGNEDLONGLONG_T
- void /* Unknown. Force an invalid type */
-#else
ACE::If_Then_Else<
(sizeof (void*) == sizeof (unsigned long long)),
unsigned long long,
void /* Unknown. Force an invalid type */
>::result_type
-#endif /* ACE_LACKS_UNSIGNEDLONGLONG_T */
>::result_type
>::result_type uintptr_t;
@@ -195,9 +179,7 @@ typedef ACE::If_Then_Else<
// 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
-# elif defined (ULLONG_MAX)
+# if defined (ULLONG_MAX)
# if ((ULLONG_MAX) == 4294967295ULL)
# define ACE_SIZEOF_LONG_LONG 4
# elif ((ULLONG_MAX) == 18446744073709551615ULL)
@@ -299,7 +281,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
typedef int64_t ACE_INT64;
#elif ACE_SIZEOF_LONG == 8
typedef long ACE_INT64;
-#elif !defined (ACE_LACKS_LONGLONG_T) && ACE_SIZEOF_LONG_LONG == 8
+#elif ACE_SIZEOF_LONG_LONG == 8
# ifdef __GNUC__
// Silence g++ "-pedantic" warnings regarding use of "long long"
// type.
@@ -308,29 +290,22 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
typedef long long ACE_INT64;
#endif /* defined (ACE_INT64_TYPE) */
-#if !(defined (ACE_LACKS_LONGLONG_T) || defined (ACE_LACKS_UNSIGNEDLONGLONG_T))
-/* See matching #if around ACE_U_LongLong class declaration below */
-
-# if defined (ACE_UINT64_TYPE)
+#if defined (ACE_UINT64_TYPE)
typedef ACE_UINT64_TYPE ACE_UINT64;
-# elif defined (ACE_HAS_UINT64_T)
+#elif defined (ACE_HAS_UINT64_T)
typedef uint64_t ACE_UINT64;
-# elif ACE_SIZEOF_LONG == 8
+#elif ACE_SIZEOF_LONG == 8
typedef unsigned long ACE_UINT64;
-# elif ACE_SIZEOF_LONG_LONG == 8
+#elif ACE_SIZEOF_LONG_LONG == 8
# ifdef __GNUC__
// Silence g++ "-pedantic" warnings regarding use of "long long"
// type.
__extension__
# endif /* __GNUC__ */
typedef unsigned long long ACE_UINT64;
-# endif /* defined (ACE_UINT64_TYPE) */
-#endif /* !(ACE_LACKS_LONGLONG_T || ACE_LACKS_UNSIGNEDLONGLONG_T) */
+#endif /* defined (ACE_UINT64_TYPE) */
-
-typedef ACE_UINT16 ACE_USHORT16; // @@ Backward compatibility.
-
-// Define a generic byte for use in codecs
+/// 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
@@ -428,240 +403,11 @@ ACE_END_VERSIONED_NAMESPACE_DECL
# define ACE_NTOHS(x) x
# endif /* ACE_LITTLE_ENDIAN */
-#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) \
- reinterpret_cast<PTR_TYPE> (L.lo ())
-#elif defined (ACE_OPENVMS) && (!defined (__INITIAL_POINTER_SIZE) || (__INITIAL_POINTER_SIZE < 64))
# define ACE_LONGLONG_TO_PTR(PTR_TYPE, L) \
- reinterpret_cast<PTR_TYPE> (static_cast<int> (L))
-#else /* ! ACE_LACKS_LONGLONG_T */
-# define ACE_LONGLONG_TO_PTR(PTR_TYPE, L) \
- reinterpret_cast<PTR_TYPE> (static_cast<intptr_t> (L))
-#endif /* ! ACE_LACKS_LONGLONG_T */
-
-// If the platform lacks an unsigned long long, define one.
-#if defined (ACE_LACKS_LONGLONG_T) || defined (ACE_LACKS_UNSIGNEDLONGLONG_T)
-// Forward declaration for streams
-# include "ace/iosfwd.h"
-
-ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-
-/**
- * @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.
-#if defined (ACE_LACKS_UNSIGNEDLONGLONG_T)
- ACE_U_LongLong (const long long value = 0x0);
-#else
- ACE_U_LongLong (const ACE_UINT32 lo = 0x0, const ACE_UINT32 hi = 0x0);
-#endif
- 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.
- bool operator== (const ACE_U_LongLong &) const;
- bool operator== (const ACE_UINT32) const;
- bool operator!= (const ACE_U_LongLong &) const;
- bool operator!= (const ACE_UINT32) const;
- bool operator< (const ACE_U_LongLong &) const;
- bool operator< (const ACE_UINT32) const;
- bool operator<= (const ACE_U_LongLong &) const;
- bool operator<= (const ACE_UINT32) const;
- bool operator> (const ACE_U_LongLong &) const;
- bool operator> (const ACE_UINT32) const;
- bool operator>= (const ACE_U_LongLong &) const;
- bool 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);
-
-#if defined (ACE_LACKS_UNSIGNEDLONGLONG_T)
- long long to_int64 (void) const;
-# endif
-
- private:
-
-#if defined (ACE_LACKS_UNSIGNEDLONGLONG_T)
- long long data_;
-#else
- public:
- struct ace_hi_lo_correct_endian
- {
-# 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 */
- };
- private:
- union
- {
- struct ace_hi_lo_correct_endian data_;
-
- /// To ensure alignment on 8-byte boundary.
- 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 .inl 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;
-#endif // ACE_LACKS_UNSIGNEDLONGLONG_T
- };
-
- typedef ACE_U_LongLong ACE_UINT64;
-
-#if !defined (ACE_LACKS_IOSTREAM_TOTALLY)
- ostream &operator<< (ostream &, const ACE_U_LongLong &);
-#endif /* ! ACE_LACKS_IOSTREAM_TOTALLY */
-
-ACE_END_VERSIONED_NAMESPACE_DECL
-
-# endif /* ACE_LACKS_LONGLONG_T */
+ reinterpret_cast<PTR_TYPE> (static_cast<intptr_t> (L))
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-// 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) || defined (ACE_LACKS_UNSIGNEDLONGLONG_T)
-inline ACE_UINT32
-ACE_U64_TO_U32 (ACE_U_LongLong const & n)
-{
- /**
- * @note We could add a cast operator to ACE_U_LongLong but that may
- * cause more problems than it solves. Force users to perform
- * an explicit cast via ACE_{C}U64_TO_{C}U32.
- */
- return n.lo ();
-}
-
-inline ACE_UINT32
-ACE_CU64_TO_CU32 (ACE_U_LongLong const & n)
-{
- return ACE_U64_TO_U32 (n);
-}
-# else /* ! ACE_LACKS_LONGLONG_T */
inline ACE_UINT32
ACE_U64_TO_U32 (ACE_UINT64 n)
{
@@ -673,32 +419,24 @@ ACE_CU64_TO_CU32 (ACE_UINT64 n)
{
return static_cast<ACE_UINT32> (n);
}
-# endif /* ! ACE_LACKS_LONGLONG_T */
ACE_END_VERSIONED_NAMESPACE_DECL
-// 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) n ## UL
- // This one won't really work, but it'll keep
- // some compilers happy until we have better support
-# define ACE_INT64_LITERAL(n) n ## L
-# elif defined (ACE_WIN32)
-# if 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 (__MINGW32__) */
-# elif defined (__TANDEM)
+#if defined (ACE_WIN32)
+# if 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 (__MINGW32__) */
+#elif defined (__TANDEM)
# define ACE_UINT64_LITERAL(n) n ## LL
# define ACE_INT64_LITERAL(n) n ## LL
-# else /* ! ACE_WIN32 && ! ACE_LACKS_LONGLONG_T */
+#else /* ! ACE_WIN32 */
# define ACE_UINT64_LITERAL(n) n ## ull
# define ACE_INT64_LITERAL(n) n ## ll
-# endif /* ! ACE_WIN32 && ! ACE_LACKS_LONGLONG_T */
+#endif /* ! ACE_WIN32*/
#if !defined (ACE_INT8_FORMAT_SPECIFIER_ASCII)
# if defined (PRId8)
@@ -839,6 +577,8 @@ ACE_END_VERSIONED_NAMESPACE_DECL
#if !defined (ACE_SSIZE_T_FORMAT_SPECIFIER_ASCII)
# if defined (ACE_WIN64)
# define ACE_SSIZE_T_FORMAT_SPECIFIER_ASCII "%I64d"
+# elif defined (_WRS_CONFIG_LP64)
+# define ACE_SSIZE_T_FORMAT_SPECIFIER_ASCII "%ld"
# else
# define ACE_SSIZE_T_FORMAT_SPECIFIER_ASCII "%d"
# endif /* ACE_WIN64 */
@@ -851,6 +591,8 @@ ACE_END_VERSIONED_NAMESPACE_DECL
#if !defined (ACE_SIZE_T_FORMAT_SPECIFIER_ASCII)
# if defined (ACE_WIN64)
# define ACE_SIZE_T_FORMAT_SPECIFIER_ASCII "%I64u"
+# elif defined (_WRS_CONFIG_LP64)
+# define ACE_SIZE_T_FORMAT_SPECIFIER_ASCII "%lu"
# else
# define ACE_SIZE_T_FORMAT_SPECIFIER_ASCII "%u"
# endif /* ACE_WIN64 */
@@ -862,16 +604,11 @@ ACE_END_VERSIONED_NAMESPACE_DECL
// 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_LACKS_UNSIGNEDLONGLONG_T)
-# define ACE_UINT64_DBLCAST_ADAPTER(n) ((n).to_int64 ())
-# elif defined (ACE_WIN32)
-# define ACE_UINT64_DBLCAST_ADAPTER(n) 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 */
+#if defined (ACE_WIN32)
+# define ACE_UINT64_DBLCAST_ADAPTER(n) static_cast<__int64> (n)
+#else /* ! ACE_WIN32 && */
+# define ACE_UINT64_DBLCAST_ADAPTER(n) (n)
+#endif /* ! ACE_WIN32 && */
// The number of bytes in a float.
@@ -934,19 +671,7 @@ ACE_END_VERSIONED_NAMESPACE_DECL
#define ACE_UINT32_MAX 0xFFFFFFFF
#define ACE_INT64_MAX ACE_INT64_LITERAL(0x7FFFFFFFFFFFFFFF)
#define ACE_INT64_MIN -(ACE_INT64_MAX)-1
-
-#if defined (ACE_LACKS_UNSIGNEDLONGLONG_T)
-// ACE_U_LongLong's constructor accepts a "long long" in this
-// case. Set it to ACE_U_LongLong (-1) since the bit pattern for long
-// long (-1) is the same as the maximum unsigned long long value.
-# define ACE_UINT64_MAX ACE_U_LongLong (ACE_INT64_LITERAL (0xFFFFFFFFFFFFFFFF))
-#elif defined (ACE_LACKS_LONGLONG_T)
-// ACE_U_LongLong's constructor accepts an ACE_UINT32 low and high
-// pair of parameters.
-# define ACE_UINT64_MAX ACE_U_LongLong (0xFFFFFFFFu, 0xFFFFFFFFu)
-#else
-# define ACE_UINT64_MAX ACE_UINT64_LITERAL (0xFFFFFFFFFFFFFFFF)
-#endif /* ACE_LACKS_UNSIGNEDLONGLONG_T */
+#define ACE_UINT64_MAX ACE_UINT64_LITERAL (0xFFFFFFFFFFFFFFFF)
// These use ANSI/IEEE format.
#define ACE_FLT_MAX 3.402823466e+38F
@@ -954,9 +679,5 @@ ACE_END_VERSIONED_NAMESPACE_DECL
#define ACE_DBL_MAX 1.7976931348623158e+308
#define ACE_DBL_MIN 2.2250738585072014e-308
-# if defined (__ACE_INLINE__)
-# include "ace/Basic_Types.inl"
-# endif /* __ACE_INLINE__ */
-
# include /**/ "ace/post.h"
#endif /* ACE_BASIC_TYPES_H */
diff --git a/dep/acelite/ace/Basic_Types.inl b/dep/acelite/ace/Basic_Types.inl
deleted file mode 100644
index c6f0013d45e..00000000000
--- a/dep/acelite/ace/Basic_Types.inl
+++ /dev/null
@@ -1,954 +0,0 @@
-// -*- C++ -*-
-//
-// $Id: Basic_Types.inl 80826 2008-03-04 14:51:23Z wotte $
-
-# if !defined (ACE_LACKS_LONGLONG_T) && defined (ACE_LACKS_UNSIGNEDLONGLONG_T)
-
-ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-
-// Implementation for ACE_U_LongLong when we have signed long long
-// but no unsigned long long.
-
-ACE_INLINE
-ACE_U_LongLong::ACE_U_LongLong (const long long value)
- : data_ (value)
-{
-}
-
-ACE_INLINE ACE_UINT32
-ACE_U_LongLong::hi (void) const
-{
- return (data_ >> 32) & 0xFFFFFFFF;
-}
-
-ACE_INLINE ACE_UINT32
-ACE_U_LongLong::lo (void) const
-{
- return data_ & 0xFFFFFFFF;
-}
-
-ACE_INLINE void
-ACE_U_LongLong::hi (const ACE_UINT32 hi)
-{
- data_ = hi;
- data_ <<= 32;
-}
-
-ACE_INLINE void
-ACE_U_LongLong::lo (const ACE_UINT32 lo)
-{
- data_ = lo;
-}
-
-ACE_INLINE long long
-ACE_U_LongLong::to_int64 (void) const
-{
- return data_;
-}
-
-ACE_INLINE
-ACE_U_LongLong::~ACE_U_LongLong (void)
-{
-}
-
-ACE_INLINE bool
-ACE_U_LongLong::operator== (const ACE_U_LongLong &n) const
-{
- return data_ == n.data_;
-}
-
-ACE_INLINE bool
-ACE_U_LongLong::operator== (const ACE_UINT32 n) const
-{
- return data_ == n;
-}
-
-ACE_INLINE bool
-ACE_U_LongLong::operator!= (const ACE_U_LongLong &n) const
-{
- return ! (*this == n);
-}
-
-ACE_INLINE bool
-ACE_U_LongLong::operator!= (const ACE_UINT32 n) const
-{
- return ! (*this == n);
-}
-
-ACE_INLINE bool
-ACE_U_LongLong::operator< (const ACE_U_LongLong &n) const
-{
- if (data_ > 0)
- if (n.data_ > 0)
- return data_ < n.data_;
- else
- return true;
- else
- if (n.data_ > 0)
- return false;
- else
- return data_ < n.data_;
-}
-
-ACE_INLINE bool
-ACE_U_LongLong::operator< (const ACE_UINT32 n) const
-{
- return operator< (static_cast<const ACE_U_LongLong> (n));
-}
-
-ACE_INLINE bool
-ACE_U_LongLong::operator<= (const ACE_U_LongLong &n) const
-{
- if (data_ == n.data_) return true;
-
- return data_ < n.data_;
-}
-
-ACE_INLINE bool
-ACE_U_LongLong::operator<= (const ACE_UINT32 n) const
-{
- return operator<= (static_cast<const ACE_U_LongLong> (n));
-}
-
-ACE_INLINE bool
-ACE_U_LongLong::operator> (const ACE_U_LongLong &n) const
-{
- if (data_ > 0)
- if (n.data_ > 0)
- return data_ > n.data_;
- else
- return false;
- else
- if (n.data_ > 0)
- return true;
- else
- return data_ > n.data_;
-}
-
-ACE_INLINE bool
-ACE_U_LongLong::operator> (const ACE_UINT32 n) const
-{
- return operator> (static_cast<const ACE_U_LongLong> (n));
-}
-
-ACE_INLINE bool
-ACE_U_LongLong::operator>= (const ACE_U_LongLong &n) const
-{
- if (data_ == n.data_) return true;
-
- return data_ > n.data_;
-}
-
-ACE_INLINE bool
-ACE_U_LongLong::operator>= (const ACE_UINT32 n) const
-{
- return operator>= (static_cast<const ACE_U_LongLong> (n));
-}
-
-ACE_INLINE
-ACE_U_LongLong::ACE_U_LongLong (const ACE_U_LongLong &n)
- : data_ (n.data_)
-{
-}
-
-ACE_INLINE ACE_U_LongLong &
-ACE_U_LongLong::operator= (const ACE_U_LongLong &n)
-{
- data_ = n.data_;
-
- return *this;
-}
-
-ACE_INLINE ACE_U_LongLong &
-ACE_U_LongLong::operator= (const ACE_INT32 &rhs)
-{
- if (rhs >= 0)
- {
- data_ = rhs;
- data_ &= 0xFFFFFFFF;
- }
- 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.
- data_ = 0;
- }
-
- return *this;
-}
-
-ACE_INLINE ACE_U_LongLong &
-ACE_U_LongLong::operator= (const ACE_UINT32 &rhs)
-{
- data_ = rhs;
-
- return *this;
-}
-
-
-ACE_INLINE ACE_U_LongLong
-ACE_U_LongLong::operator+ (const ACE_U_LongLong &n) const
-{
- return data_ + n.data_;
-}
-
-ACE_INLINE ACE_U_LongLong
-ACE_U_LongLong::operator+ (const ACE_UINT32 n) const
-{
- return operator+ (static_cast<const ACE_U_LongLong> (n));
-}
-
-ACE_INLINE ACE_U_LongLong
-ACE_U_LongLong::operator- (const ACE_U_LongLong &n) const
-{
- return data_ - n.data_;
-}
-
-ACE_INLINE ACE_U_LongLong
-ACE_U_LongLong::operator- (const ACE_UINT32 n) const
-{
- return operator- (static_cast<const ACE_U_LongLong> (n));
-}
-
-ACE_INLINE ACE_U_LongLong
-ACE_U_LongLong::operator<< (const u_int n) const
-{
- return data_ << n;
-}
-
-ACE_INLINE ACE_U_LongLong &
-ACE_U_LongLong::operator<<= (const u_int n)
-{
- data_ <<= n;
-
- return *this;
-}
-
-ACE_INLINE ACE_U_LongLong
-ACE_U_LongLong::operator>> (const u_int n) const
-{
- return data_ >> n;
-}
-
-ACE_INLINE ACE_U_LongLong &
-ACE_U_LongLong::operator>>= (const u_int n)
-{
- data_ >>= n;
-
- return *this;
-}
-
-ACE_INLINE double
-ACE_U_LongLong::operator/ (const double n) const
-{
- return data_ / n;
-}
-
-ACE_INLINE ACE_U_LongLong &
-ACE_U_LongLong::operator+= (const ACE_U_LongLong &n)
-{
- data_ += n.data_;
-
- return *this;
-}
-
-ACE_INLINE ACE_U_LongLong &
-ACE_U_LongLong::operator+= (const ACE_UINT32 n)
-{
- return operator+= (static_cast<const ACE_U_LongLong> (n));
-}
-
-ACE_INLINE ACE_U_LongLong
-ACE_U_LongLong::operator* (const ACE_UINT32 n) const
-{
- return data_ * n;
-}
-
-ACE_INLINE ACE_U_LongLong &
-ACE_U_LongLong::operator*= (const ACE_UINT32 n)
-{
- data_ *= n;
-
- return *this;
-}
-
-ACE_INLINE ACE_U_LongLong &
-ACE_U_LongLong::operator-= (const ACE_U_LongLong &n)
-{
- data_ -= n.data_;
-
- return *this;
-}
-
-ACE_INLINE ACE_U_LongLong &
-ACE_U_LongLong::operator-= (const ACE_UINT32 n)
-{
- return operator-= (static_cast<const ACE_U_LongLong> (n));
-}
-
-ACE_INLINE ACE_U_LongLong &
-ACE_U_LongLong::operator++ ()
-{
- ++data_;
-
- return *this;
-}
-
-ACE_INLINE ACE_U_LongLong &
-ACE_U_LongLong::operator-- ()
-{
- --data_;
-
- 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)
-{
- data_ |= n.data_;
-
- return *this;
-}
-
-ACE_INLINE ACE_U_LongLong &
-ACE_U_LongLong::operator|= (const ACE_UINT32 n)
-{
- return operator|= (static_cast<const ACE_U_LongLong> (n));
-}
-
-ACE_INLINE ACE_U_LongLong &
-ACE_U_LongLong::operator&= (const ACE_U_LongLong n)
-{
- data_ &= n.data_;
-
- return *this;
-}
-
-ACE_INLINE ACE_U_LongLong &
-ACE_U_LongLong::operator&= (const ACE_UINT32 n)
-{
- return operator&= (static_cast<const ACE_U_LongLong> (n));
-}
-
-ACE_INLINE ACE_UINT32
-ACE_U_LongLong::operator/ (const ACE_UINT32 n) const
-{
- return data_ / n;
-}
-
-ACE_INLINE ACE_UINT32
-ACE_U_LongLong::operator% (const ACE_UINT32 n) const
-{
- return data_ % n;
-}
-
-ACE_INLINE ACE_UINT32
-ACE_U_LongLong::operator| (const ACE_INT32 n) const
-{
- return data_ | n;
-}
-
-ACE_INLINE ACE_UINT32
-ACE_U_LongLong::operator& (const ACE_INT32 n) const
-{
- return data_ & 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_END_VERSIONED_NAMESPACE_DECL
-
-#elif defined (ACE_LACKS_LONGLONG_T)
-
-ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-
-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 bool
-ACE_U_LongLong::operator== (const ACE_U_LongLong &n) const
-{
- return h_ () == n.h_ () && l_ () == n.l_ ();
-}
-
-ACE_INLINE bool
-ACE_U_LongLong::operator== (const ACE_UINT32 n) const
-{
- return h_ () == 0 && l_ () == n;
-}
-
-ACE_INLINE bool
-ACE_U_LongLong::operator!= (const ACE_U_LongLong &n) const
-{
- return ! (*this == n);
-}
-
-ACE_INLINE bool
-ACE_U_LongLong::operator!= (const ACE_UINT32 n) const
-{
- return ! (*this == n);
-}
-
-ACE_INLINE bool
-ACE_U_LongLong::operator< (const ACE_U_LongLong &n) const
-{
- return h_ () < n.h_ () ? 1
- : h_ () > n.h_ () ? 0
- : l_ () < n.l_ ();
-}
-
-ACE_INLINE bool
-ACE_U_LongLong::operator< (const ACE_UINT32 n) const
-{
- return operator< (static_cast<const ACE_U_LongLong> (n));
-}
-
-ACE_INLINE bool
-ACE_U_LongLong::operator<= (const ACE_U_LongLong &n) const
-{
- return h_ () < n.h_ () ? 1
- : h_ () > n.h_ () ? 0
- : l_ () <= n.l_ ();
-}
-
-ACE_INLINE bool
-ACE_U_LongLong::operator<= (const ACE_UINT32 n) const
-{
- return operator<= (static_cast<const ACE_U_LongLong> (n));
-}
-
-ACE_INLINE bool
-ACE_U_LongLong::operator> (const ACE_U_LongLong &n) const
-{
- return h_ () > n.h_ () ? 1
- : h_ () < n.h_ () ? 0
- : l_ () > n.l_ ();
-}
-
-ACE_INLINE bool
-ACE_U_LongLong::operator> (const ACE_UINT32 n) const
-{
- return operator> (static_cast<const ACE_U_LongLong> (n));
-}
-
-ACE_INLINE bool
-ACE_U_LongLong::operator>= (const ACE_U_LongLong &n) const
-{
- return h_ () > n.h_ () ? 1
- : h_ () < n.h_ () ? 0
- : l_ () >= n.l_ ();
-}
-
-ACE_INLINE bool
-ACE_U_LongLong::operator>= (const ACE_UINT32 n) const
-{
- return operator>= (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_ () = 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+ (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- (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+= (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-= (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|= (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&= (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 */
-
-ACE_END_VERSIONED_NAMESPACE_DECL
-
-#endif /* ACE_LACKS_LONGLONG_T || ACE_LACKS_UNSIGNEDLONGLONG_T */
diff --git a/dep/acelite/ace/CDR_Base.cpp b/dep/acelite/ace/CDR_Base.cpp
index 0acf651d4d1..04e87f65c94 100644
--- a/dep/acelite/ace/CDR_Base.cpp
+++ b/dep/acelite/ace/CDR_Base.cpp
@@ -1,4 +1,4 @@
-// $Id: CDR_Base.cpp 91685 2010-09-09 09:35:14Z johnnyw $
+// $Id: CDR_Base.cpp 94251 2011-06-22 18:03:25Z parsons $
#include "ace/CDR_Base.h"
diff --git a/dep/acelite/ace/CDR_Base.h b/dep/acelite/ace/CDR_Base.h
index 66a6d885710..f324152253f 100644
--- a/dep/acelite/ace/CDR_Base.h
+++ b/dep/acelite/ace/CDR_Base.h
@@ -4,7 +4,7 @@
/**
* @file CDR_Base.h
*
- * $Id: CDR_Base.h 91685 2010-09-09 09:35:14Z johnnyw $
+ * $Id: CDR_Base.h 95761 2012-05-15 18:23:04Z johnnyw $
*
* ACE Common Data Representation (CDR) basic types.
*
@@ -213,7 +213,7 @@ public:
typedef long LongLong;
# elif defined(__TANDEM)
typedef long long LongLong;
-# elif ACE_SIZEOF_LONG_LONG == 8 && !defined (ACE_LACKS_LONGLONG_T)
+# elif 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
diff --git a/dep/acelite/ace/CDR_Size.h b/dep/acelite/ace/CDR_Size.h
index a0b3c462ca8..ccf45324929 100644
--- a/dep/acelite/ace/CDR_Size.h
+++ b/dep/acelite/ace/CDR_Size.h
@@ -4,7 +4,7 @@
/**
* @file CDR_Size.h
*
- * $Id: CDR_Size.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: CDR_Size.h 93359 2011-02-11 11:33:12Z mcorino $
*
*
* ACE Common Data Representation (CDR) size-calculating stream.
@@ -13,7 +13,7 @@
* 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
+ * Those assumptions are pretty good these days, with Crays being
* the only known exception.
*
*
diff --git a/dep/acelite/ace/CDR_Stream.cpp b/dep/acelite/ace/CDR_Stream.cpp
index cc58132ca82..0d674324f68 100644
--- a/dep/acelite/ace/CDR_Stream.cpp
+++ b/dep/acelite/ace/CDR_Stream.cpp
@@ -1,4 +1,4 @@
-// $Id: CDR_Stream.cpp 91373 2010-08-17 07:35:27Z mhengstmengel $
+// $Id: CDR_Stream.cpp 95896 2012-06-18 20:42:07Z hillj $
#include "ace/CDR_Stream.h"
#include "ace/SString.h"
@@ -723,6 +723,72 @@ ACE_OutputCDR::write_short_placeholder (void)
return buf;
}
+char *
+ACE_OutputCDR::write_boolean_placeholder (void)
+{
+ char *buf = 0;
+ if (this->adjust (ACE_CDR::OCTET_SIZE, buf) == 0)
+ *reinterpret_cast<ACE_CDR::Boolean*> (buf) = 0;
+ else
+ buf = 0;
+ return buf;
+}
+
+char *
+ACE_OutputCDR::write_char_placeholder (void)
+{
+ char *buf = 0;
+ if (this->adjust (ACE_CDR::OCTET_SIZE, buf) == 0)
+ *reinterpret_cast<ACE_CDR::Char*> (buf) = 0;
+ else
+ buf = 0;
+ return buf;
+}
+
+char *
+ACE_OutputCDR::write_octet_placeholder (void)
+{
+ char *buf = 0;
+ if (this->adjust (ACE_CDR::OCTET_SIZE, buf) == 0)
+ *reinterpret_cast<ACE_CDR::Octet*> (buf) = 0;
+ else
+ buf = 0;
+ return buf;
+}
+
+char *
+ACE_OutputCDR::write_longlong_placeholder (void)
+{
+ char *buf = 0;
+ if (this->adjust (ACE_CDR::LONGLONG_SIZE, buf) == 0)
+ *reinterpret_cast<ACE_CDR::ULongLong*> (buf) = 0;
+ else
+ buf = 0;
+ return buf;
+}
+
+char *
+ACE_OutputCDR::write_float_placeholder (void)
+{
+ char *buf = 0;
+ if (this->adjust (ACE_CDR::LONG_SIZE, buf) == 0)
+ *reinterpret_cast<ACE_CDR::ULong*> (buf) = 0;
+ else
+ buf = 0;
+ return buf;
+}
+
+char *
+ACE_OutputCDR::write_double_placeholder (void)
+{
+ char *buf = 0;
+ if (this->adjust (ACE_CDR::LONGLONG_SIZE, buf) == 0)
+ *reinterpret_cast<ACE_CDR::ULongLong*> (buf) = 0;
+ else
+ buf = 0;
+ return buf;
+}
+
ACE_CDR::Boolean
ACE_OutputCDR::replace (ACE_CDR::Long x, char* loc)
{
@@ -745,6 +811,27 @@ ACE_OutputCDR::replace (ACE_CDR::Long x, char* loc)
return true;
}
+ACE_CDR::Boolean
+ACE_OutputCDR::replace (ACE_CDR::ULong x, char* loc)
+{
+ if (this->find (loc) == 0)
+ return false;
+
+#if !defined (ACE_ENABLE_SWAP_ON_WRITE)
+ *reinterpret_cast<ACE_CDR::ULong*> (loc) = x;
+#else
+ if (!this->do_byte_swap_)
+ {
+ *reinterpret_cast<ACE_CDR::ULong *> (loc) = x;
+ }
+ else
+ {
+ ACE_CDR::swap_4 (reinterpret_cast<const char*> (&x), loc);
+ }
+#endif /* ACE_ENABLE_SWAP_ON_WRITE */
+
+ return true;
+}
ACE_CDR::Boolean
ACE_OutputCDR::replace (ACE_CDR::Short x, char* loc)
@@ -768,6 +855,148 @@ ACE_OutputCDR::replace (ACE_CDR::Short x, char* loc)
return true;
}
+ACE_CDR::Boolean
+ACE_OutputCDR::replace (ACE_CDR::UShort x, char* loc)
+{
+ if (this->find (loc) == 0)
+ return false;
+
+#if !defined (ACE_ENABLE_SWAP_ON_WRITE)
+ *reinterpret_cast<ACE_CDR::UShort*> (loc) = x;
+#else
+ if (!this->do_byte_swap_)
+ {
+ *reinterpret_cast<ACE_CDR::UShort *> (loc) = x;
+ }
+ else
+ {
+ ACE_CDR::swap_2 (reinterpret_cast<const char*> (&x), loc);
+ }
+#endif /* ACE_ENABLE_SWAP_ON_WRITE */
+
+ return true;
+}
+
+ACE_CDR::Boolean
+ACE_OutputCDR::replace (ACE_CDR::Boolean x, char* loc)
+{
+ if (this->find (loc) == 0)
+ return false;
+
+ *reinterpret_cast<ACE_CDR::Boolean*> (loc) = x;
+
+ return true;
+}
+
+ACE_CDR::Boolean
+ACE_OutputCDR::replace (ACE_CDR::Char x, char* loc)
+{
+ if (this->find (loc) == 0)
+ return false;
+
+ *reinterpret_cast<ACE_CDR::Char*> (loc) = x;
+
+ return true;
+}
+
+ACE_CDR::Boolean
+ACE_OutputCDR::replace (ACE_CDR::Octet x, char* loc)
+{
+ if (this->find (loc) == 0)
+ return false;
+
+ *reinterpret_cast<ACE_CDR::Octet*> (loc) = x;
+
+ return true;
+}
+
+ACE_CDR::Boolean
+ACE_OutputCDR::replace (ACE_CDR::LongLong x, char* loc)
+{
+ if (this->find (loc) == 0)
+ return false;
+
+#if !defined (ACE_ENABLE_SWAP_ON_WRITE)
+ *reinterpret_cast<ACE_CDR::LongLong*> (loc) = x;
+#else
+ if (!this->do_byte_swap_)
+ {
+ *reinterpret_cast<ACE_CDR::LongLong*> (loc) = x;
+ }
+ else
+ {
+ ACE_CDR::swap_8 (reinterpret_cast<const char*> (&x), loc);
+ }
+#endif /* ACE_ENABLE_SWAP_ON_WRITE */
+
+ return true;
+}
+
+ACE_CDR::Boolean
+ACE_OutputCDR::replace (ACE_CDR::ULongLong x, char* loc)
+{
+ if (this->find (loc) == 0)
+ return false;
+
+#if !defined (ACE_ENABLE_SWAP_ON_WRITE)
+ *reinterpret_cast<ACE_CDR::ULongLong*> (loc) = x;
+#else
+ if (!this->do_byte_swap_)
+ {
+ *reinterpret_cast<ACE_CDR::ULongLong*> (loc) = x;
+ }
+ else
+ {
+ ACE_CDR::swap_8 (reinterpret_cast<const char*> (&x), loc);
+ }
+#endif /* ACE_ENABLE_SWAP_ON_WRITE */
+
+ return true;
+}
+
+ACE_CDR::Boolean
+ACE_OutputCDR::replace (ACE_CDR::Float x, char* loc)
+{
+ if (this->find (loc) == 0)
+ return false;
+
+#if !defined (ACE_ENABLE_SWAP_ON_WRITE)
+ *reinterpret_cast<ACE_CDR::Float*> (loc) = x;
+#else
+ if (!this->do_byte_swap_)
+ {
+ *reinterpret_cast<ACE_CDR::Float*> (loc) = x;
+ }
+ else
+ {
+ ACE_CDR::swap_4 (reinterpret_cast<const char*> (&x), loc);
+ }
+#endif /* ACE_ENABLE_SWAP_ON_WRITE */
+
+ return true;
+}
+
+ACE_CDR::Boolean
+ACE_OutputCDR::replace (ACE_CDR::Double x, char* loc)
+{
+ if (this->find (loc) == 0)
+ return false;
+
+#if !defined (ACE_ENABLE_SWAP_ON_WRITE)
+ *reinterpret_cast<ACE_CDR::Double*> (loc) = x;
+#else
+ if (!this->do_byte_swap_)
+ {
+ *reinterpret_cast<ACE_CDR::Double*> (loc) = x;
+ }
+ else
+ {
+ ACE_CDR::swap_8 (reinterpret_cast<const char*> (&x), loc);
+ }
+#endif /* ACE_ENABLE_SWAP_ON_WRITE */
+
+ return true;
+}
int
ACE_OutputCDR::consolidate (void)
@@ -1682,7 +1911,17 @@ ACE_InputCDR::skip_string (void)
ACE_CDR::ULong len = 0;
if (this->read_ulong (len))
{
- if (this->rd_ptr () + len <= this->wr_ptr ())
+ if (static_cast<ACE_CDR::ULong> (~0u) == len)
+ {
+ // Indirection, next Long in stream is signed offset to actual
+ // string location (backwards in same stream from here).
+ ACE_CDR::Long offset = 0;
+ if (this->read_long (offset))
+ {
+ return true;
+ }
+ }
+ else if (this->rd_ptr () + len <= this->wr_ptr ())
{
this->rd_ptr (len);
return true;
diff --git a/dep/acelite/ace/CDR_Stream.h b/dep/acelite/ace/CDR_Stream.h
index 0a200dc56dd..256560dea7e 100644
--- a/dep/acelite/ace/CDR_Stream.h
+++ b/dep/acelite/ace/CDR_Stream.h
@@ -4,7 +4,7 @@
/**
* @file CDR_Stream.h
*
- * $Id: CDR_Stream.h 84527 2009-02-19 14:01:42Z johnnyw $
+ * $Id: CDR_Stream.h 95896 2012-06-18 20:42:07Z hillj $
*
* ACE Common Data Representation (CDR) marshaling and demarshaling
* classes.
@@ -318,6 +318,12 @@ public:
*/
char* write_long_placeholder (void);
char* write_short_placeholder (void);
+ char* write_boolean_placeholder (void);
+ char* write_char_placeholder (void);
+ char* write_longlong_placeholder (void);
+ char* write_octet_placeholder (void);
+ char* write_float_placeholder (void);
+ char* write_double_placeholder (void);
/**
* Writes a new value into a specific location. This is commonly
@@ -336,7 +342,16 @@ public:
* @sa write_long_placeholder(), write_short_placeholder ()
*/
ACE_CDR::Boolean replace (ACE_CDR::Long x, char* loc);
+ ACE_CDR::Boolean replace (ACE_CDR::ULong x, char* loc);
ACE_CDR::Boolean replace (ACE_CDR::Short x, char* loc);
+ ACE_CDR::Boolean replace (ACE_CDR::UShort x, char* loc);
+ ACE_CDR::Boolean replace (ACE_CDR::Boolean x, char* loc);
+ ACE_CDR::Boolean replace (ACE_CDR::Char x, char* loc);
+ ACE_CDR::Boolean replace (ACE_CDR::LongLong x, char* loc);
+ ACE_CDR::Boolean replace (ACE_CDR::ULongLong x, char* loc);
+ ACE_CDR::Boolean replace (ACE_CDR::Octet x, char* loc);
+ ACE_CDR::Boolean replace (ACE_CDR::Float x, char* loc);
+ ACE_CDR::Boolean replace (ACE_CDR::Double x, char* loc);
//@}
/**
@@ -1224,7 +1239,7 @@ protected:
const ACE_CDR::ULong *x);
/// Efficiently read @a length elements of size @a size each from
- /// <input> into <x>; the data must be aligned to <align>.
+ /// @a input into @a x; the data must be aligned to @a align.
ACE_CDR::Boolean read_array (ACE_InputCDR& input,
void* x,
size_t size,
@@ -1232,9 +1247,9 @@ protected:
ACE_CDR::ULong length);
/**
- * Efficiently write @a length elements of size @a 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
+ * Efficiently write @a length elements of size @a size from @a x into
+ * @a output. Before inserting the elements enough padding is added
+ * to ensure that the elements will be aligned to @a align in the
* stream.
*/
ACE_CDR::Boolean write_array (ACE_OutputCDR& output,
@@ -1244,10 +1259,10 @@ protected:
ACE_CDR::ULong length);
/**
- * Exposes the stream implementation of <adjust>, this is useful in
+ * Exposes the stream implementation of @a adjust, this is useful in
* many cases to minimize memory allocations during marshaling.
* On success @a buf will contain a contiguous area in the CDR stream
- * that can hold @a size bytes aligned to <align>.
+ * that can hold @a size bytes aligned to @a align.
* Results
*/
int adjust (ACE_OutputCDR& out,
diff --git a/dep/acelite/ace/CE_Screen_Output.h b/dep/acelite/ace/CE_Screen_Output.h
index ba2bc7c02b5..62d4deaa042 100644
--- a/dep/acelite/ace/CE_Screen_Output.h
+++ b/dep/acelite/ace/CE_Screen_Output.h
@@ -4,7 +4,7 @@
/**
* @file CE_Screen_Output.h
*
- * $Id: CE_Screen_Output.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: CE_Screen_Output.h 94271 2011-06-23 14:52:31Z johnnyw $
*
* @author Si Mong Park <spark@ociweb.com>
*/
@@ -39,7 +39,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
*
* 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
+ * go through under CE if and only if user uses Windows CE
* 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()
diff --git a/dep/acelite/ace/CMakeLists.txt b/dep/acelite/ace/CMakeLists.txt
index 6b5d3d84b40..a0a590e0c30 100644
--- a/dep/acelite/ace/CMakeLists.txt
+++ b/dep/acelite/ace/CMakeLists.txt
@@ -46,6 +46,7 @@ set(ace_STAT_SRCS
Codeset_IBM1047.cpp
Codeset_Registry.cpp
Codeset_Registry_db.cpp
+ Condition_Attributes.cpp
Condition_Recursive_Thread_Mutex.cpp
Condition_Thread_Mutex.cpp
Configuration.cpp
@@ -53,7 +54,6 @@ set(ace_STAT_SRCS
Connection_Recycling_Strategy.cpp
Containers.cpp
Copy_Disabled.cpp
- Countdown_Time.cpp
Date_Time.cpp
DEV.cpp
DEV_Addr.cpp
@@ -73,6 +73,7 @@ set(ace_STAT_SRCS
Encoding_Converter_Factory.cpp
Event.cpp
Event_Handler.cpp
+ Event_Handler_Handle_Timeout_Upcall.cpp
FIFO.cpp
FIFO_Recv.cpp
FIFO_Recv_Msg.cpp
@@ -89,7 +90,6 @@ set(ace_STAT_SRCS
Functor.cpp
Functor_String.cpp
Get_Opt.cpp
- gethrtime.cpp
Handle_Ops.cpp
Handle_Set.cpp
Hashable.cpp
@@ -289,6 +289,7 @@ set(ace_STAT_SRCS
Thread_Mutex.cpp
Thread_Semaphore.cpp
Throughput_Stats.cpp
+ Time_Policy.cpp
Time_Value.cpp
Timeprobe.cpp
TLI.cpp
diff --git a/dep/acelite/ace/Cache_Map_Manager_T.cpp b/dep/acelite/ace/Cache_Map_Manager_T.cpp
index 4fb5b93cac8..1527bce646b 100644
--- a/dep/acelite/ace/Cache_Map_Manager_T.cpp
+++ b/dep/acelite/ace/Cache_Map_Manager_T.cpp
@@ -1,4 +1,4 @@
-// $Id: Cache_Map_Manager_T.cpp 92097 2010-09-30 05:41:49Z msmit $
+// $Id: Cache_Map_Manager_T.cpp 95790 2012-05-24 15:06:21Z shuston $
#ifndef ACE_CACHE_MAP_MANAGER_T_CPP
#define ACE_CACHE_MAP_MANAGER_T_CPP
@@ -24,11 +24,8 @@ 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 CMAP_TYPE, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES
-#define ACE_T2 KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES
-
-template <ACE_T1>
-ACE_Cache_Map_Manager<ACE_T2>::ACE_Cache_Map_Manager (CACHING_STRATEGY &caching_s,
+template <class KEY, class VALUE, class CMAP_TYPE, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES>
+ACE_Cache_Map_Manager<KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES>::ACE_Cache_Map_Manager (CACHING_STRATEGY &caching_s,
size_t size,
ACE_Allocator *alloc)
: caching_strategy_ (caching_s)
@@ -40,28 +37,28 @@ ACE_Cache_Map_Manager<ACE_T2>::ACE_Cache_Map_Manager (CACHING_STRATEGY &caching_
}
-template <ACE_T1>
-ACE_Cache_Map_Manager<ACE_T2>::~ACE_Cache_Map_Manager (void)
+template <class KEY, class VALUE, class CMAP_TYPE, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES>
+ACE_Cache_Map_Manager<KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES>::~ACE_Cache_Map_Manager (void)
{
this->close ();
}
-template <ACE_T1> int
-ACE_Cache_Map_Manager<ACE_T2>::open (size_t length,
+template <class KEY, class VALUE, class CMAP_TYPE, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Cache_Map_Manager<KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES>::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)
+template <class KEY, class VALUE, class CMAP_TYPE, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Cache_Map_Manager<KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES>::close (void)
{
return this->map_.close ();
}
-template <ACE_T1> int
-ACE_Cache_Map_Manager<ACE_T2>::bind (const KEY &key,
+template <class KEY, class VALUE, class CMAP_TYPE, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Cache_Map_Manager<KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES>::bind (const KEY &key,
const VALUE &value)
{
// Insert an entry which has the <key> and the <cache_value> which
@@ -96,8 +93,8 @@ ACE_Cache_Map_Manager<ACE_T2>::bind (const KEY &key,
}
-template <ACE_T1> int
-ACE_Cache_Map_Manager<ACE_T2>::rebind (const KEY &key,
+template <class KEY, class VALUE, class CMAP_TYPE, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Cache_Map_Manager<KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES>::rebind (const KEY &key,
const VALUE &value)
{
CACHE_VALUE cache_value (value,
@@ -133,8 +130,8 @@ ACE_Cache_Map_Manager<ACE_T2>::rebind (const KEY &key,
}
-template <ACE_T1> int
-ACE_Cache_Map_Manager<ACE_T2>::rebind (const KEY &key,
+template <class KEY, class VALUE, class CMAP_TYPE, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Cache_Map_Manager<KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES>::rebind (const KEY &key,
const VALUE &value,
VALUE &old_value)
{
@@ -180,8 +177,8 @@ ACE_Cache_Map_Manager<ACE_T2>::rebind (const KEY &key,
return rebind_result;
}
-template <ACE_T1> int
-ACE_Cache_Map_Manager<ACE_T2>::rebind (const KEY &key,
+template <class KEY, class VALUE, class CMAP_TYPE, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Cache_Map_Manager<KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES>::rebind (const KEY &key,
const VALUE &value,
KEY &old_key,
VALUE &old_value)
@@ -229,8 +226,8 @@ ACE_Cache_Map_Manager<ACE_T2>::rebind (const KEY &key,
return rebind_result;
}
-template <ACE_T1> int
-ACE_Cache_Map_Manager<ACE_T2>::trybind (const KEY &key,
+template <class KEY, class VALUE, class CMAP_TYPE, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Cache_Map_Manager<KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES>::trybind (const KEY &key,
VALUE &value)
{
CACHE_VALUE cache_value (value,
@@ -271,8 +268,8 @@ ACE_Cache_Map_Manager<ACE_T2>::trybind (const KEY &key,
return trybind_result;
}
-template <ACE_T1> int
-ACE_Cache_Map_Manager<ACE_T2>::find (const KEY &key,
+template <class KEY, class VALUE, class CMAP_TYPE, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Cache_Map_Manager<KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES>::find (const KEY &key,
VALUE &value)
{
// Lookup the key and populate the <value>.
@@ -310,8 +307,8 @@ ACE_Cache_Map_Manager<ACE_T2>::find (const KEY &key,
return find_result;
}
-template <ACE_T1> int
-ACE_Cache_Map_Manager<ACE_T2>::find (const KEY &key)
+template <class KEY, class VALUE, class CMAP_TYPE, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Cache_Map_Manager<KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES>::find (const KEY &key)
{
// Lookup the key and populate the <value>.
CACHE_VALUE cache_value;
@@ -323,7 +320,7 @@ ACE_Cache_Map_Manager<ACE_T2>::find (const KEY &key)
{
int result = this->caching_strategy_.notify_find (find_result,
- cache_value.second ());
+ cache_value.second);
// Unless the find and notification operations go thru, this
// method is not successful.
@@ -348,8 +345,8 @@ ACE_Cache_Map_Manager<ACE_T2>::find (const KEY &key)
}
-template <ACE_T1> int
-ACE_Cache_Map_Manager<ACE_T2>::unbind (const KEY &key)
+template <class KEY, class VALUE, class CMAP_TYPE, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Cache_Map_Manager<KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES>::unbind (const KEY &key)
{
// Remove the entry from the cache.
CACHE_VALUE cache_value;
@@ -371,8 +368,8 @@ ACE_Cache_Map_Manager<ACE_T2>::unbind (const KEY &key)
return unbind_result;
}
-template <ACE_T1> int
-ACE_Cache_Map_Manager<ACE_T2>::unbind (const KEY &key,
+template <class KEY, class VALUE, class CMAP_TYPE, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Cache_Map_Manager<KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES>::unbind (const KEY &key,
VALUE &value)
{
// Remove the entry from the cache.
@@ -397,8 +394,8 @@ ACE_Cache_Map_Manager<ACE_T2>::unbind (const KEY &key,
return unbind_result;
}
-template <ACE_T1> void
-ACE_Cache_Map_Manager<ACE_T2>::dump (void) const
+template <class KEY, class VALUE, class CMAP_TYPE, class ITERATOR_IMPL, class REVERSE_ITERATOR_IMPL, class CACHING_STRATEGY, class ATTRIBUTES> void
+ACE_Cache_Map_Manager<KEY, VALUE, CMAP_TYPE, ITERATOR_IMPL, REVERSE_ITERATOR_IMPL, CACHING_STRATEGY, ATTRIBUTES>::dump (void) const
{
#if defined (ACE_HAS_DUMP)
this->map_.dump ();
@@ -407,9 +404,6 @@ ACE_Cache_Map_Manager<ACE_T2>::dump (void) const
#endif /* ACE_HAS_DUMP */
}
-#undef ACE_T1
-#undef ACE_T2
-
template <class KEY, class VALUE, class IMPLEMENTATION, class CACHING_STRATEGY, class ATTRIBUTES>
ACE_Cache_Map_Iterator<KEY, VALUE, IMPLEMENTATION, CACHING_STRATEGY, ATTRIBUTES>::~ACE_Cache_Map_Iterator (void)
{
diff --git a/dep/acelite/ace/Cached_Connect_Strategy_T.cpp b/dep/acelite/ace/Cached_Connect_Strategy_T.cpp
index 738155a5784..a6f8acc77a0 100644
--- a/dep/acelite/ace/Cached_Connect_Strategy_T.cpp
+++ b/dep/acelite/ace/Cached_Connect_Strategy_T.cpp
@@ -1,4 +1,4 @@
-//$Id: Cached_Connect_Strategy_T.cpp 92097 2010-09-30 05:41:49Z msmit $
+//$Id: Cached_Connect_Strategy_T.cpp 95630 2012-03-22 13:04:47Z johnnyw $
#ifndef ACE_CACHED_CONNECT_STRATEGY_T_CPP
#define ACE_CACHED_CONNECT_STRATEGY_T_CPP
@@ -15,13 +15,10 @@
#include "ace/Thread_Manager.h"
#include "ace/WFMO_Reactor.h"
-#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
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-template <ACE_T1>
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::ACE_Cached_Connect_Strategy_Ex
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX>
+ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::ACE_Cached_Connect_Strategy_Ex
(CACHING_STRATEGY &caching_s,
ACE_Creation_Strategy<SVC_HANDLER> *cre_s,
ACE_Concurrency_Strategy<SVC_HANDLER> *con_s,
@@ -34,18 +31,18 @@ ACE_Cached_Connect_Strategy_Ex<ACE_T2>::ACE_Cached_Connect_Strategy_Ex
if (this->open (cre_s, con_s, rec_s) == -1)
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("%p\n"),
- ACE_TEXT ("ACE_Cached_Connect_Strategy_Ex<ACE_T2>\n")));
+ ACE_TEXT ("ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>\n")));
}
-template <ACE_T1>
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::~ACE_Cached_Connect_Strategy_Ex (void)
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX>
+ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::~ACE_Cached_Connect_Strategy_Ex (void)
{
cleanup ();
}
-template <ACE_T1> int
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::check_hint_i
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX> int
+ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::check_hint_i
(SVC_HANDLER *&sh,
const ACE_PEER_CONNECTOR_ADDR &remote_addr,
ACE_Time_Value *timeout,
@@ -134,8 +131,8 @@ ACE_Cached_Connect_Strategy_Ex<ACE_T2>::check_hint_i
return 0;
}
-template <ACE_T1> int
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::find_or_create_svc_handler_i
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX> int
+ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::find_or_create_svc_handler_i
(SVC_HANDLER *&sh,
const ACE_PEER_CONNECTOR_ADDR &remote_addr,
ACE_Time_Value *timeout,
@@ -250,8 +247,8 @@ ACE_Cached_Connect_Strategy_Ex<ACE_T2>::find_or_create_svc_handler_i
return 0;
}
-template <ACE_T1> int
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::cached_connect (SVC_HANDLER *&sh,
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX> int
+ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::cached_connect (SVC_HANDLER *&sh,
const ACE_PEER_CONNECTOR_ADDR &remote_addr,
ACE_Time_Value *timeout,
const ACE_PEER_CONNECTOR_ADDR &local_addr,
@@ -312,8 +309,8 @@ ACE_Cached_Connect_Strategy_Ex<ACE_T2>::cached_connect (SVC_HANDLER *&sh,
}
-template <ACE_T1> int
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::connect_svc_handler_i
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX> int
+ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::connect_svc_handler_i
(SVC_HANDLER *&sh,
const ACE_PEER_CONNECTOR_ADDR &remote_addr,
ACE_Time_Value *timeout,
@@ -361,16 +358,19 @@ ACE_Cached_Connect_Strategy_Ex<ACE_T2>::connect_svc_handler_i
entry->ext_id_.increment ();
}
- // 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);
+ if (entry)
+ {
+ // 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);
+ }
return 0;
}
-template <ACE_T1> int
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::cache_i (const void *recycling_act)
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX> int
+ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::cache_i (const void *recycling_act)
{
// The wonders and perils of ACT
CONNECTION_CACHE_ENTRY *entry = (CONNECTION_CACHE_ENTRY *) recycling_act;
@@ -382,8 +382,8 @@ ACE_Cached_Connect_Strategy_Ex<ACE_T2>::cache_i (const void *recycling_act)
return 0;
}
-template<ACE_T1> int
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::recycle_state_i (const void *recycling_act,
+template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX> int
+ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::recycle_state_i (const void *recycling_act,
ACE_Recyclable_State new_state)
{
// The wonders and perils of ACT
@@ -396,8 +396,8 @@ ACE_Cached_Connect_Strategy_Ex<ACE_T2>::recycle_state_i (const void *recycling_a
return 0;
}
-template<ACE_T1> ACE_Recyclable_State
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::recycle_state_i (const void *recycling_act) const
+template<class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX> ACE_Recyclable_State
+ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::recycle_state_i (const void *recycling_act) const
{
// The wonders and perils of ACT
CONNECTION_CACHE_ENTRY *entry = (CONNECTION_CACHE_ENTRY *) recycling_act;
@@ -407,8 +407,8 @@ ACE_Cached_Connect_Strategy_Ex<ACE_T2>::recycle_state_i (const void *recycling_a
return entry->ext_id_.recycle_state ();
}
-template <ACE_T1> int
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::purge_i (const void *recycling_act)
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX> int
+ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::purge_i (const void *recycling_act)
{
// The wonders and perils of ACT
CONNECTION_CACHE_ENTRY *entry = (CONNECTION_CACHE_ENTRY *) recycling_act;
@@ -417,8 +417,8 @@ ACE_Cached_Connect_Strategy_Ex<ACE_T2>::purge_i (const void *recycling_act)
}
-template <ACE_T1> int
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::mark_as_closed_i (const void *recycling_act)
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX> int
+ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::mark_as_closed_i (const void *recycling_act)
{
// The wonders and perils of ACT
CONNECTION_CACHE_ENTRY *entry = (CONNECTION_CACHE_ENTRY *) recycling_act;
@@ -429,8 +429,8 @@ ACE_Cached_Connect_Strategy_Ex<ACE_T2>::mark_as_closed_i (const void *recycling_
return 0;
}
-template <ACE_T1> int
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::cleanup_hint_i (const void *recycling_act,
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX> int
+ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::cleanup_hint_i (const void *recycling_act,
void **act_holder)
{
// Reset the <*act_holder> in the confines and protection of the
@@ -457,20 +457,20 @@ ACE_Cached_Connect_Strategy_Ex<ACE_T2>::cleanup_hint_i (const void *recycling_ac
return 0;
}
-template <ACE_T1> int
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::purge_connections (void)
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX> int
+ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::purge_connections (void)
{
return this->connection_cache_.purge ();
}
-template <ACE_T1> CACHING_STRATEGY &
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::caching_strategy (void)
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX> CACHING_STRATEGY &
+ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::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,
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX> int
+ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::find (ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR> &search_addr,
ACE_Hash_Map_Entry<ACE_Refcounted_Hash_Recyclable<ACE_PEER_CONNECTOR_ADDR>, std::pair<SVC_HANDLER *, ATTRIBUTES> > *&entry)
{
typedef ACE_Hash_Map_Bucket_Iterator<REFCOUNTED_HASH_RECYCLABLE_ADDRESS,
@@ -522,8 +522,8 @@ ACE_Cached_Connect_Strategy_Ex<ACE_T2>::find (ACE_Refcounted_Hash_Recyclable<ACE
return -1;
}
-template <ACE_T1> void
-ACE_Cached_Connect_Strategy_Ex<ACE_T2>::cleanup (void)
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX> void
+ACE_Cached_Connect_Strategy_Ex<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::cleanup (void)
{
// Excluded other threads from changing the cache while we cleanup
ACE_GUARD (MUTEX, ace_mon, *this->lock_);
@@ -560,8 +560,8 @@ ACE_Cached_Connect_Strategy_Ex<ACE_T2>::cleanup (void)
ACE_ALLOC_HOOK_DEFINE(ACE_Cached_Connect_Strategy_Ex)
/////////////////////////////////////////////////////////////////////////
-template <ACE_T1>
-ACE_Bounded_Cached_Connect_Strategy<ACE_T2>::ACE_Bounded_Cached_Connect_Strategy
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX>
+ACE_Bounded_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::ACE_Bounded_Cached_Connect_Strategy
(size_t max_size,
CACHING_STRATEGY &caching_s,
ACE_Creation_Strategy<SVC_HANDLER> *cre_s,
@@ -574,14 +574,14 @@ ACE_Bounded_Cached_Connect_Strategy<ACE_T2>::ACE_Bounded_Cached_Connect_Strategy
{
}
-template <ACE_T1>
-ACE_Bounded_Cached_Connect_Strategy<ACE_T2>::~ACE_Bounded_Cached_Connect_Strategy(void)
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX>
+ACE_Bounded_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::~ACE_Bounded_Cached_Connect_Strategy(void)
{
}
-template <ACE_T1>
+template <class SVC_HANDLER, ACE_PEER_CONNECTOR_1, class CACHING_STRATEGY, class ATTRIBUTES, class MUTEX>
int
-ACE_Bounded_Cached_Connect_Strategy<ACE_T2>::find_or_create_svc_handler_i
+ACE_Bounded_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, CACHING_STRATEGY, ATTRIBUTES, MUTEX>::find_or_create_svc_handler_i
(SVC_HANDLER *&sh,
const ACE_PEER_CONNECTOR_ADDR &remote_addr,
ACE_Time_Value *timeout,
@@ -727,7 +727,4 @@ ACE_ALLOC_HOOK_DEFINE(ACE_Bounded_Cached_Connect_Strategy)
ACE_END_VERSIONED_NAMESPACE_DECL
-#undef ACE_T1
-#undef ACE_T2
-
#endif /* ACE_CACHED_CONNECT_STRATEGY_T_CPP */
diff --git a/dep/acelite/ace/Codeset_Registry.h b/dep/acelite/ace/Codeset_Registry.h
index e72c435f82b..28bd629add0 100644
--- a/dep/acelite/ace/Codeset_Registry.h
+++ b/dep/acelite/ace/Codeset_Registry.h
@@ -3,7 +3,7 @@
/**
* @file Codeset_Registry.h
*
- * $Id: Codeset_Registry.h 81348 2008-04-14 09:00:32Z johnnyw $
+ * $Id: Codeset_Registry.h 93651 2011-03-28 08:49:11Z johnnyw $
*
* ACE wrapper around access functions for the OSF's DCE codeset registry
* access functions
@@ -33,10 +33,6 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-#if defined (ACE_HAS_DCE_CODESET_REGISTRY)
-#include /**/ <dce/rpc.h>
-#endif /* ACE_HAS_DCE_CODESET_REGISTRY */
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
class ACE_Export ACE_Codeset_Registry
diff --git a/dep/acelite/ace/Codeset_Registry.inl b/dep/acelite/ace/Codeset_Registry.inl
index 4419cf5e7fc..a8348180009 100644
--- a/dep/acelite/ace/Codeset_Registry.inl
+++ b/dep/acelite/ace/Codeset_Registry.inl
@@ -3,7 +3,7 @@
/**
* @file Codeset_Registry.inl
*
- * $Id: Codeset_Registry.inl 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: Codeset_Registry.inl 93651 2011-03-28 08:49:11Z johnnyw $
*
* ACE wrapper around access functions for the OSF's DCE codeset registry
* access functions - the inline functions either call the system supplied
@@ -23,20 +23,10 @@ ACE_Codeset_Registry::locale_to_registry(const ACE_CString &locale,
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
@@ -48,23 +38,10 @@ ACE_Codeset_Registry::registry_to_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;
- 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
@@ -74,13 +51,7 @@ 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.
@@ -89,14 +60,7 @@ 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 */
}
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/Compression/ACE_Compression_export.h b/dep/acelite/ace/Compression/ACE_Compression_export.h
new file mode 100644
index 00000000000..119e14b16ea
--- /dev/null
+++ b/dep/acelite/ace/Compression/ACE_Compression_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id: ACE_Compression_export.h 95545 2012-02-23 07:57:08Z johnnyw $
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ACE_Compression
+// ------------------------------
+#ifndef ACE_COMPRESSION_EXPORT_H
+#define ACE_COMPRESSION_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ACE_COMPRESSION_HAS_DLL)
+# define ACE_COMPRESSION_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ACE_COMPRESSION_HAS_DLL */
+
+#if !defined (ACE_COMPRESSION_HAS_DLL)
+# define ACE_COMPRESSION_HAS_DLL 1
+#endif /* ! ACE_COMPRESSION_HAS_DLL */
+
+#if defined (ACE_COMPRESSION_HAS_DLL) && (ACE_COMPRESSION_HAS_DLL == 1)
+# if defined (ACE_COMPRESSION_BUILD_DLL)
+# define ACE_Compression_Export ACE_Proper_Export_Flag
+# define ACE_COMPRESSION_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ACE_COMPRESSION_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ACE_COMPRESSION_BUILD_DLL */
+# define ACE_Compression_Export ACE_Proper_Import_Flag
+# define ACE_COMPRESSION_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ACE_COMPRESSION_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ACE_COMPRESSION_BUILD_DLL */
+#else /* ACE_COMPRESSION_HAS_DLL == 1 */
+# define ACE_Compression_Export
+# define ACE_COMPRESSION_SINGLETON_DECLARATION(T)
+# define ACE_COMPRESSION_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ACE_COMPRESSION_HAS_DLL == 1 */
+
+// Set ACE_COMPRESSION_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ACE_COMPRESSION_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ACE_COMPRESSION_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ACE_COMPRESSION_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ACE_COMPRESSION_NTRACE */
+
+#if (ACE_COMPRESSION_NTRACE == 1)
+# define ACE_COMPRESSION_TRACE(X)
+#else /* (ACE_COMPRESSION_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ACE_COMPRESSION_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ACE_COMPRESSION_NTRACE == 1) */
+
+#endif /* ACE_COMPRESSION_EXPORT_H */
+
+// End of auto generated file.
diff --git a/dep/acelite/ace/Compression/Compressor.cpp b/dep/acelite/ace/Compression/Compressor.cpp
new file mode 100644
index 00000000000..86d1a1f3dd2
--- /dev/null
+++ b/dep/acelite/ace/Compression/Compressor.cpp
@@ -0,0 +1,63 @@
+// $Id: Compressor.cpp 95556 2012-02-24 09:14:51Z johnnyw $
+
+#include "Compressor.h"
+
+#if !defined (__ACE_INLINE__)
+#include "Compressor.inl"
+#endif /* __ACE_INLINE__ */
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+ACE_Compressor::ACE_Compressor( ACE_CompressorId compressor_id,
+ ACE_UINT32 compression_level )
+ : compressor_id_ (compressor_id)
+ , compression_level_ (compression_level)
+ , compressed_bytes_ (0)
+ , uncompressed_bytes_ (0)
+{}
+
+ACE_Compressor::~ACE_Compressor ()
+{
+}
+
+ACE_UINT64
+ACE_Compressor::compressed_bytes(void) const
+{
+ ACE_GUARD_RETURN( ACE_SYNCH_MUTEX, ace_mon, this->mutex_, 0 );
+ return this->compressed_bytes_;
+}
+
+ACE_UINT64
+ACE_Compressor::uncompressed_bytes(void) const
+{
+ ACE_GUARD_RETURN( ACE_SYNCH_MUTEX, ace_mon, this->mutex_, 0 );
+ return this->uncompressed_bytes_;
+}
+
+void
+ACE_Compressor::reset_stats(void)
+{
+ ACE_GUARD( ACE_SYNCH_MUTEX, ace_mon, this->mutex_ );
+ this->compressed_bytes_ = 0;
+ this->uncompressed_bytes_ = 0;
+}
+
+void
+ACE_Compressor::update_stats(ACE_UINT64 uncompressed_bytes, ACE_UINT64 compressed_bytes)
+{
+ ACE_GUARD( ACE_SYNCH_MUTEX, ace_mon, this->mutex_ );
+ this->compressed_bytes_ += compressed_bytes;
+ this->uncompressed_bytes_ += uncompressed_bytes;
+}
+
+float
+ACE_Compressor::compression_ratio(void) const
+{
+ ACE_GUARD_RETURN( ACE_SYNCH_MUTEX, ace_mon, this->mutex_, 0.0f );
+ if (this->uncompressed_bytes_ > 0) {
+ return static_cast<float>(this->compressed_bytes_) / this->uncompressed_bytes_;
+ }
+ return 0.0f;
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/Compression/Compressor.h b/dep/acelite/ace/Compression/Compressor.h
new file mode 100644
index 00000000000..eb71167a5e0
--- /dev/null
+++ b/dep/acelite/ace/Compression/Compressor.h
@@ -0,0 +1,137 @@
+// -*- C++ -*-
+//=============================================================================
+/**
+ * @file Compressor.h
+ *
+ * $Id: Compressor.h
+ *
+ * @author ACE version by
+ * @author Derek Dominish <derek.dominish@dsto.defence.gov.au>
+ */
+//=============================================================================
+
+#ifndef ACE_COMPRESSOR_H
+#define ACE_COMPRESSOR_H
+
+#include /**/ "ace/pre.h"
+
+#include /**/ "ACE_Compression_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Guard_T.h"
+#include "ace/Thread_Mutex.h"
+#include "ace/Synch_Traits.h"
+#include "ace/Copy_Disabled.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+/**
+ * CompressorId from OMG Compression::CompressorId
+ * see $(TAO_ROOT)/tao/Compression.pidl
+ */
+enum ACE_CompressorId
+{
+ ACE_COMPRESSORID_NONE = 0,
+ ACE_COMPRESSORID_GZIP = 1,
+ ACE_COMPRESSORID_PKZIP = 2,
+ ACE_COMPRESSORID_BZIP2 = 3,
+ ACE_COMPRESSORID_ZLIB = 4,
+ ACE_COMPRESSORID_LZMA = 5,
+ ACE_COMPRESSORID_LZO = 6,
+ ACE_COMPRESSORID_RZIP = 7,
+ ACE_COMPRESSORID_7X = 8,
+ ACE_COMPRESSORID_XAR = 9,
+ ACE_COMPRESSORID_RLE = 10
+};
+
+class ACE_Compression_Export ACE_Compressor : private ACE_Copy_Disabled
+{
+public:
+
+ ACE_CompressorId get_compressor_id(void) const;
+
+ ACE_UINT32 get_compression_level(void) const;
+
+ /**
+ * Compress the @a in_ptr buffer for @a in_len into the
+ * @a dest_ptr buffer with a maximum @a max_out_len. If the
+ * @a max_out_len is exhausted through the compress process
+ * then a value of -1 will be returned from the function,
+ * otherwise the return value will indicate the resultant
+ * @a out_ptr compressed buffer length.
+ *
+ * NOTE: it is advisable that the @max_out_len be slightly
+ * larger of the input @a in_len (i.e. x 1.1F) to cater
+ * for the possibility that a reduced compressed length
+ * is not possible.
+ */
+ virtual ACE_UINT64 compress( const void *in_ptr,
+ ACE_UINT64 in_len,
+ void *out_ptr,
+ ACE_UINT64 max_out_len ) = 0;
+
+ /**
+ * DeCompress the @a in_ptr buffer for @a in_len into the
+ * @a out_ptr buffer with a maximum @a max_out_len. If the
+ * @a max_out_len is exhausted during decompression
+ * then a value of -1 will be returned from the function,
+ * otherwise the return value will indicate the resultant
+ * @a out_ptr decompressed buffer length.
+ */
+ virtual ACE_UINT64 decompress( const void *in_ptr,
+ ACE_UINT64 in_len,
+ void *out_ptr,
+ ACE_UINT64 max_out_len ) = 0;
+
+ /**
+ * Return the current compressed bytes statistics counter.
+ */
+ virtual ACE_UINT64 compressed_bytes(void) const;
+
+ /**
+ * Return the current uncompressed bytes statistics counter.
+ */
+ virtual ACE_UINT64 uncompressed_bytes(void) const;
+
+ /**
+ * Return the current compression ratio statistics.
+ */
+ virtual float compression_ratio(void) const;
+
+ /**
+ * Reset the statistics to zero.
+ */
+ virtual void reset_stats(void);
+
+ virtual ~ACE_Compressor (void);
+
+protected:
+ ACE_Compressor(ACE_CompressorId compressor_id,
+ ACE_UINT32 compression_level = 0); // Must be inherited.
+
+ virtual void update_stats( ACE_UINT64 uncompressed_bytes,
+ ACE_UINT64 compressed_bytes );
+
+private:
+ ACE_CompressorId compressor_id_;
+ ACE_UINT32 compression_level_;
+
+ // Ensure we can lock with imutability (i.e. const)
+ mutable ACE_SYNCH_MUTEX mutex_;
+
+ ACE_UINT64 compressed_bytes_;
+ ACE_UINT64 uncompressed_bytes_;
+};
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "Compressor.inl"
+#endif /* __ACE_INLINE__ */
+
+#include /**/ "ace/post.h"
+
+#endif // ACE_COMPRESSOR_H
diff --git a/dep/acelite/ace/Compression/Compressor.inl b/dep/acelite/ace/Compression/Compressor.inl
new file mode 100644
index 00000000000..b9809018e41
--- /dev/null
+++ b/dep/acelite/ace/Compression/Compressor.inl
@@ -0,0 +1,18 @@
+// -*- C++ -*-
+// $Id: Compressor.inl 95545 2012-02-23 07:57:08Z johnnyw $
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+ACE_INLINE ACE_CompressorId
+ACE_Compressor::get_compressor_id(void) const
+{
+ return this->compressor_id_;
+}
+
+ACE_INLINE ACE_UINT32
+ACE_Compressor::get_compression_level(void) const
+{
+ return this->compression_level_;
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/Compression/rle/ACE_RLECompression_export.h b/dep/acelite/ace/Compression/rle/ACE_RLECompression_export.h
new file mode 100644
index 00000000000..f0364580879
--- /dev/null
+++ b/dep/acelite/ace/Compression/rle/ACE_RLECompression_export.h
@@ -0,0 +1,57 @@
+// -*- C++ -*-
+// $Id: ACE_RLECompression_export.h 95545 2012-02-23 07:57:08Z johnnyw $
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ACE_RLECompression
+// ------------------------------
+#ifndef ACE_RLECOMPRESSION_EXPORT_H
+#define ACE_RLECOMPRESSION_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ACE_RLECOMPRESSION_HAS_DLL)
+# define ACE_RLECOMPRESSION_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ACE_RLECOMPRESSION_HAS_DLL */
+
+#if !defined (ACE_RLECOMPRESSION_HAS_DLL)
+# define ACE_RLECOMPRESSION_HAS_DLL 1
+#endif /* ! ACE_RLECOMPRESSION_HAS_DLL */
+
+#if defined (ACE_RLECOMPRESSION_HAS_DLL) && (ACE_RLECOMPRESSION_HAS_DLL == 1)
+# if defined (ACE_RLECOMPRESSION_BUILD_DLL)
+# define ACE_RLECompression_Export ACE_Proper_Export_Flag
+# define ACE_RLECOMPRESSION_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ACE_RLECOMPRESSION_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ACE_RLECOMPRESSION_BUILD_DLL */
+# define ACE_RLECompression_Export ACE_Proper_Import_Flag
+# define ACE_RLECOMPRESSION_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ACE_RLECOMPRESSION_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ACE_RLECOMPRESSION_BUILD_DLL */
+#else /* ACE_RLECOMPRESSION_HAS_DLL == 1 */
+# define ACE_RLECompression_Export
+# define ACE_RLECOMPRESSION_SINGLETON_DECLARATION(T)
+# define ACE_RLECOMPRESSION_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ACE_RLECOMPRESSION_HAS_DLL == 1 */
+
+// Set ACE_RLECOMPRESSION_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ACE_RLECOMPRESSION_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ACE_RLECOMPRESSION_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ACE_RLECOMPRESSION_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ACE_RLECOMPRESSION_NTRACE */
+
+#if (ACE_RLECOMPRESSION_NTRACE == 1)
+# define ACE_RLECOMPRESSION_TRACE(X)
+#else /* (ACE_RLECOMPRESSION_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ACE_RLECOMPRESSION_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ACE_RLECOMPRESSION_NTRACE == 1) */
+
+#endif /* ACE_RLECOMPRESSION_EXPORT_H */
+
+// End of auto generated file.
diff --git a/dep/acelite/ace/Compression/rle/RLECompressor.cpp b/dep/acelite/ace/Compression/rle/RLECompressor.cpp
new file mode 100644
index 00000000000..423d8a0f0ac
--- /dev/null
+++ b/dep/acelite/ace/Compression/rle/RLECompressor.cpp
@@ -0,0 +1,158 @@
+// $Id: RLECompressor.cpp 95560 2012-02-27 08:11:54Z johnnyw $
+
+#include "RLECompressor.h"
+#include "ace/OS_NS_string.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+ACE_RLECompressor::ACE_RLECompressor(void)
+ : ACE_Compressor(ACE_COMPRESSORID_RLE)
+{
+}
+
+ACE_RLECompressor::~ACE_RLECompressor(void)
+{
+}
+
+ACE_UINT64
+ACE_RLECompressor::compress( const void *in_ptr,
+ ACE_UINT64 in_len,
+ void *out_ptr,
+ ACE_UINT64 max_out_len )
+{
+ const ACE_UINT8 *in_p = static_cast<const ACE_UINT8*>(in_ptr);
+ ACE_UINT8 *out_p = static_cast<ACE_UINT8*>(out_ptr);
+
+ ACE_UINT64 src_len = in_len; // Save for stats
+ ACE_UINT64 out_len = 0;
+ ACE_UINT64 out_index = 0;
+ ACE_UINT64 out_base = 0;
+
+ ACE_UINT32 run_count = 0;
+ ACE_UINT32 dup_count = 0;
+
+ bool run_code = false;
+
+ ACE_UINT8 nxt_byte, cur_byte;
+
+ if (in_p && out_p) while (in_len-- > 0) {
+
+ if (run_code) switch (run_count) {
+
+ default:
+
+ out_p[out_index = out_base] = ACE_UINT8(run_count++ | 0x80);
+ out_p[++out_index] = cur_byte = *in_p++;
+
+ if (in_len ? cur_byte == (nxt_byte = *in_p) : true) {
+ continue;
+ }
+
+ // Fall Through
+
+ case 128:
+
+ if (++out_index >= max_out_len) {
+ return ACE_UINT64(-1); // Output Exhausted
+ } else if (in_len == 0) {
+ continue;
+ }
+
+ run_code = false;
+ out_p[out_base = out_index] = 0;
+ dup_count = run_count = 0;
+ continue;
+ }
+
+ switch (run_count) {
+
+ case 128:
+
+ if (++out_index >= max_out_len) {
+ return ACE_UINT64(-1); // Output Exhausted
+ }
+ out_p[out_base = out_index] = 0;
+ dup_count = run_count = 0;
+
+ // Fall Through
+
+ default :
+
+ cur_byte = *in_p++;
+
+ if (in_len > 0) {
+ if (cur_byte == (nxt_byte = *in_p)) {
+ if (dup_count++ == 1) {
+ if (run_count >= dup_count) {
+ out_p[out_base] = static_cast<ACE_UINT8>(run_count - dup_count);
+ out_base += run_count;
+ }
+ run_code = true;
+ run_count = dup_count - 1;
+ dup_count = 0;
+ out_p[out_index = out_base] = static_cast<ACE_UINT8>(run_count++ | 0x80);
+ break;
+ }
+ } else dup_count = 0;
+ }
+ out_p[out_base] = char(run_count++);
+ break;
+ }
+
+ if (++out_index >= max_out_len) {
+ return ACE_UINT64(-1); // Output Exhausted
+ }
+
+ out_p[out_index] = cur_byte;
+ }
+
+ out_len = ++out_index; // Update our output length
+
+ this->update_stats(src_len, out_len);
+
+ return out_len;
+}
+
+// Decompress using Run Length Encoding (RLE)
+ACE_UINT64
+ACE_RLECompressor::decompress( const void *in_ptr,
+ ACE_UINT64 in_len,
+ void *out_ptr,
+ ACE_UINT64 max_out_len )
+{
+ ACE_UINT64 out_len = 0;
+
+ const ACE_UINT8 *in_p = static_cast<const ACE_UINT8*>(in_ptr);
+ ACE_UINT8 *out_p = static_cast<ACE_UINT8*>(out_ptr);
+
+ if (in_p && out_p) while(in_len-- > 0) {
+
+ ACE_UINT8 cur_byte = *in_p++;
+ ACE_UINT32 cpy_len = ACE_UINT32((cur_byte & 0x7F) + 1);
+
+ if (cpy_len > max_out_len) {
+ return ACE_UINT64(-1); // Output Exhausted
+ } else if ((cur_byte & 0x80) != 0) { // compressed
+ if (in_len-- > 0) {
+ ACE_OS::memset(out_p, *in_p++, cpy_len);
+ } else {
+ return ACE_UINT64(-1); // Output Exhausted
+ }
+ } else if (in_len >= cpy_len) {
+ ACE_OS::memcpy(out_p, in_p, cpy_len);
+ in_p += cpy_len;
+ in_len -= cpy_len;
+ } else {
+ return ACE_UINT64(-1); // Output Exhausted
+ }
+
+ out_p += cpy_len;
+ max_out_len -= cpy_len;
+ out_len += cpy_len;
+ }
+
+ return out_len;
+}
+
+// Close versioned namespace, if enabled by the user.
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/Compression/rle/RLECompressor.h b/dep/acelite/ace/Compression/rle/RLECompressor.h
new file mode 100644
index 00000000000..7371d22bf50
--- /dev/null
+++ b/dep/acelite/ace/Compression/rle/RLECompressor.h
@@ -0,0 +1,108 @@
+// -*- C++ -*-
+//=============================================================================
+/**
+ * @file RLECompressor.h
+ *
+ * $Id: RLECompressor.h
+ *
+ * @author TAO version by
+ * @author Derek Dominish <derek.dominish@dsto.defence.gov.au>
+ * @author ACE version by
+ * @author Derek Dominish <derek.dominish@dsto.defence.gov.au>
+ *
+ * Run-length encoding (RLE) is a very simple form of data compression
+ * in which runs of data (that is, sequences in which the same data value
+ * occurs in many consecutive data elements) are stored as a single data
+ * value and count, rather than as the original run. This is most useful
+ * on data that contains many such runs: for example, simple graphic
+ * images such as icons, line drawings, and animations. It is not useful
+ * with files that don't have many runs as it could slightly increase the
+ * output size.
+ * ALGORITHM: This algorithm is an optimized version of the traditional
+ * RLE algorithm in that it behaves better with very few runs.
+ *
+ * With a run of a character where that run is >= 3 this is
+ * replaced with the repeat indicator 0X80 and then the repeat count OR'd
+ * over this ident. This repeat count is therefore has a maximum value
+ * of 127 (0x7F) which is to be interpreted as the next character repeated
+ * another 'repeat count' times (i.e. a maximum of 128 characters can be
+ * represented in any single dupal). if the repeat ident is not present
+ * then the count is to be interpreted as a copy of the next repeat count
+ * characters + 1.
+ *
+ * EXAMPLE: the following arbitary string of 67 bytes:-
+ * WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWBWWWWWWWWWWWWWW
+ * will produce (as a HEXDUMP) of 14 bytes
+ * 8B 57 00 42 8B 57 82 42 97 57 00 42 8D 57 .W.B.W.B.W.B.W
+ */
+//=============================================================================
+
+#ifndef ACE_RLECOMPRESSOR_H
+#define ACE_RLECOMPRESSOR_H
+
+#include /**/ "ace/pre.h"
+
+#include "ACE_RLECompression_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Compression/Compressor.h"
+#include "ace/Singleton.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+class ACE_RLECompression_Export ACE_RLECompressor : public ACE_Compressor
+{
+public:
+ /**
+ * Default constructor. Should use instance() to get global instance.
+ */
+ ACE_RLECompressor(void);
+
+ virtual ~ACE_RLECompressor(void);
+
+ /**
+ * Compress the @a in_ptr buffer for @a in_len into the
+ * @a dest_ptr buffer with a maximum @a max_out_len using
+ * the Run Length Ecoding (RLE) algorithm. If the
+ * @a max_out_len is exhausted through the compress process
+ * then a value of -1 will be returned from the function,
+ * otherwise the return value will indicate the resultant
+ * @a out_ptr compressed buffer length.
+ *
+ * @note It is advisable that the @max_out_len be slightly
+ * larger of the input @a in_len (i.e. x 1.1F) to cater
+ * for the possibility that a reduced compressed length
+ * is not possible.
+ */
+ virtual ACE_UINT64 compress( const void *in_ptr,
+ ACE_UINT64 in_len,
+ void *out_ptr,
+ ACE_UINT64 max_out_len );
+
+ /**
+ * DeCompress the @a in_ptr buffer for @a in_len into the
+ * @a out_ptr buffer with a maximum @a max_out_len using
+ * the Run Length Ecoding (RLE) algorithm. If the
+ * @a max_out_len is exhausted during decompression
+ * then a value of -1 will be returned from the function,
+ * otherwise the return value will indicate the resultant
+ * @a out_ptr decompressed buffer length.
+ */
+ virtual ACE_UINT64 decompress( const void *in_ptr,
+ ACE_UINT64 in_len,
+ void *out_ptr,
+ ACE_UINT64 max_out_len );
+};
+
+ACE_RLECOMPRESSION_SINGLETON_DECLARE(ACE_Singleton, ACE_RLECompressor, ACE_SYNCH_MUTEX);
+
+typedef class ACE_Singleton<ACE_RLECompressor, ACE_SYNCH_MUTEX> ACE_RLECompression;
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#include /**/ "ace/post.h"
+
+#endif // ACE_RLECOMPRESSOR_H
diff --git a/dep/acelite/ace/Condition_Attributes.cpp b/dep/acelite/ace/Condition_Attributes.cpp
new file mode 100644
index 00000000000..49a02635ba8
--- /dev/null
+++ b/dep/acelite/ace/Condition_Attributes.cpp
@@ -0,0 +1,21 @@
+/* -*- C++ -*- */
+/**
+ * @file Condition_Attributes.cpp
+ *
+ * $Id: Condition_Attributes.cpp 96061 2012-08-16 09:36:07Z mcorino $
+ *
+ * Originally in Synch.cpp
+ *
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+
+#include "ace/Condition_Thread_Mutex.h"
+#include "ace/Condition_Attributes.h"
+
+#if defined (ACE_HAS_THREADS)
+
+#if !defined (__ACE_INLINE__)
+#include "ace/Condition_Attributes.inl"
+#endif /* __ACE_INLINE__ */
+
+#endif /* ACE_HAS_THREADS */
diff --git a/dep/acelite/ace/Condition_Attributes.h b/dep/acelite/ace/Condition_Attributes.h
new file mode 100644
index 00000000000..0d53b273285
--- /dev/null
+++ b/dep/acelite/ace/Condition_Attributes.h
@@ -0,0 +1,101 @@
+// -*- C++ -*-
+
+//==========================================================================
+/**
+ * @file Condition_Attributes.h
+ *
+ * $Id: Condition_Attributes.h 96077 2012-08-20 08:13:23Z johnnyw $
+ *
+ * Moved from Synch.h.
+ *
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//==========================================================================
+
+#ifndef ACE_CONDITION_ATTRIBUTES_H
+#define ACE_CONDITION_ATTRIBUTES_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_NS_Thread.h"
+
+#if defined (ACE_HAS_THREADS)
+
+// ACE platform supports some form of threading.
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+class ACE_Export ACE_Condition_Attributes
+{
+public:
+ /// Constructor
+ ACE_Condition_Attributes (int type = ACE_DEFAULT_SYNCH_TYPE);
+
+ /// Destructor
+ ~ACE_Condition_Attributes (void);
+
+ /// Accessor for retrieving the current attributes
+ const ACE_condattr_t& attributes (void) const;
+
+protected:
+ /// The attributes
+ ACE_condattr_t attributes_;
+
+private:
+ // = Prevent assignment and initialization.
+ void operator= (const ACE_Condition_Attributes &);
+ ACE_Condition_Attributes (const ACE_Condition_Attributes &);
+};
+
+template <class TIME_POLICY>
+class ACE_Condition_Attributes_T : public ACE_Condition_Attributes
+{
+public:
+ /// Constructor
+ ACE_Condition_Attributes_T (int type = ACE_DEFAULT_SYNCH_TYPE)
+ : ACE_Condition_Attributes (type)
+ {}
+
+ /// Destructor
+ ~ACE_Condition_Attributes_T (void) {}
+
+private:
+ // = Prevent assignment and initialization.
+ void operator= (const ACE_Condition_Attributes_T<TIME_POLICY> &);
+ ACE_Condition_Attributes_T (const ACE_Condition_Attributes_T<TIME_POLICY> &);
+};
+
+class ACE_Monotonic_Time_Policy;
+
+template <>
+class ACE_Export ACE_Condition_Attributes_T<ACE_Monotonic_Time_Policy>
+ : public ACE_Condition_Attributes
+{
+public:
+ /// Constructor
+ ACE_Condition_Attributes_T (int type = ACE_DEFAULT_SYNCH_TYPE);
+
+ /// Destructor
+ ~ACE_Condition_Attributes_T (void);
+
+private:
+ // = Prevent assignment and initialization.
+ void operator= (const ACE_Condition_Attributes_T<ACE_Monotonic_Time_Policy> &);
+ ACE_Condition_Attributes_T (const ACE_Condition_Attributes_T<ACE_Monotonic_Time_Policy> &);
+};
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/Condition_Attributes.inl"
+#endif /* __ACE_INLINE__ */
+
+#endif /* !ACE_HAS_THREADS */
+
+#include /**/ "ace/post.h"
+#endif /* ACE_CONDITION_ATTRIBUTES_H */
diff --git a/dep/acelite/ace/Condition_Attributes.inl b/dep/acelite/ace/Condition_Attributes.inl
new file mode 100644
index 00000000000..12afde24c80
--- /dev/null
+++ b/dep/acelite/ace/Condition_Attributes.inl
@@ -0,0 +1,40 @@
+// -*- C++ -*-
+//
+// $Id: Condition_Attributes.inl 96096 2012-08-23 12:34:02Z johnnyw $
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+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
+const ACE_condattr_t&
+ACE_Condition_Attributes::attributes (void) const
+{
+ return this->attributes_;
+}
+
+ACE_INLINE
+ACE_Condition_Attributes_T<ACE_Monotonic_Time_Policy>::ACE_Condition_Attributes_T (int type)
+ : ACE_Condition_Attributes (type)
+{
+#if (defined (_POSIX_MONOTONIC_CLOCK) && !defined (ACE_LACKS_MONOTONIC_TIME)) || defined (ACE_HAS_CLOCK_GETTIME_MONOTONIC)
+ (void) ACE_OS::condattr_setclock (this->attributes_, CLOCK_MONOTONIC);
+#endif
+}
+
+ACE_INLINE
+ACE_Condition_Attributes_T<ACE_Monotonic_Time_Policy>::~ACE_Condition_Attributes_T (void)
+{
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/Condition_Recursive_Thread_Mutex.cpp b/dep/acelite/ace/Condition_Recursive_Thread_Mutex.cpp
index 1f357589f55..74922b65c5d 100644
--- a/dep/acelite/ace/Condition_Recursive_Thread_Mutex.cpp
+++ b/dep/acelite/ace/Condition_Recursive_Thread_Mutex.cpp
@@ -3,7 +3,7 @@
/**
* @file Condition_Recursive_Thread_Mutex.cpp
*
- * $Id: Condition_Recursive_Thread_Mutex.cpp 89127 2010-02-22 19:58:18Z schmidt $
+ * $Id: Condition_Recursive_Thread_Mutex.cpp 96077 2012-08-20 08:13:23Z johnnyw $
*
* Originally in Synch.cpp
*
@@ -14,9 +14,7 @@
#if defined (ACE_HAS_THREADS)
-#if defined (ACE_HAS_DUMP)
-# include "ace/Log_Msg.h"
-#endif /* ACE_HAS_DUMP */
+#include "ace/Log_Msg.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -49,7 +47,19 @@ ACE_Condition<ACE_Recursive_Thread_Mutex>::~ACE_Condition (void)
ACE_Condition<ACE_Recursive_Thread_Mutex>::ACE_Condition (ACE_Recursive_Thread_Mutex &m)
: mutex_ (m)
{
- ACE_OS::cond_init (&this->cond_);
+ if (ACE_OS::cond_init (&this->cond_) != 0)
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"),
+ ACE_TEXT ("ACE_Condition<ACE_Recursive_Thread_Mutex>::ACE_Condition<ACE_Recursive_Thread_Mutex>")));
+}
+
+ACE_Condition<ACE_Recursive_Thread_Mutex>::ACE_Condition (ACE_Recursive_Thread_Mutex &m,
+ const ACE_Condition_Attributes &attributes)
+ : mutex_ (m)
+{
+ if (ACE_OS::cond_init (&this->cond_,
+ const_cast<ACE_condattr_t &> (attributes.attributes ())) != 0)
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"),
+ ACE_TEXT ("ACE_Condition<ACE_Recursive_Thread_Mutex>::ACE_Condition<ACE_Recursive_Thread_Mutex>")));
}
int
@@ -118,12 +128,6 @@ ACE_Condition<ACE_Recursive_Thread_Mutex>::mutex (void)
return this->mutex_;
}
-ACE_Condition_Recursive_Thread_Mutex::ACE_Condition_Recursive_Thread_Mutex (
- ACE_Recursive_Thread_Mutex &m) :
- ACE_Condition<ACE_Recursive_Thread_Mutex> (m)
-{
-}
-
ACE_END_VERSIONED_NAMESPACE_DECL
#endif /* ACE_HAS_THREADS */
diff --git a/dep/acelite/ace/Condition_Recursive_Thread_Mutex.h b/dep/acelite/ace/Condition_Recursive_Thread_Mutex.h
index ac3177da8c8..a313a7f7b6e 100644
--- a/dep/acelite/ace/Condition_Recursive_Thread_Mutex.h
+++ b/dep/acelite/ace/Condition_Recursive_Thread_Mutex.h
@@ -4,7 +4,7 @@
/**
* @file Condition_Recursive_Thread_Mutex.h
*
- * $Id: Condition_Recursive_Thread_Mutex.h 86731 2009-09-17 12:23:48Z johnnyw $
+ * $Id: Condition_Recursive_Thread_Mutex.h 96073 2012-08-17 13:39:55Z mcorino $
*
* Moved from Synch.h.
*
@@ -26,11 +26,11 @@
# include "ace/Null_Condition.h"
#else /* ACE_HAS_THREADS */
#include "ace/Recursive_Thread_Mutex.h"
+#include "ace/Condition_Attributes.h"
+#include "ace/Condition_T.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-template <class ACE_LOCK> class ACE_Condition;
-
/**
* @brief ACE_Condition template specialization written using
* @a ACE_Recursive_Thread_Mutex. This allows threads to block until
@@ -43,6 +43,10 @@ public:
/// Initialize the condition variable with a recursive mutex.
ACE_Condition (ACE_Recursive_Thread_Mutex &m);
+ /// Initialize the condition variable.
+ ACE_Condition (ACE_Recursive_Thread_Mutex &m,
+ const ACE_Condition_Attributes &attributes);
+
/// Implicitly destroy the condition variable.
~ACE_Condition (void);
@@ -65,7 +69,7 @@ public:
* 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
+ * <Condition> in shared memory). Else, if @a abstime != 0 and the
* call times out before the condition is signaled <wait> returns -1
* and sets errno to ETIME.
*/
@@ -100,13 +104,7 @@ private:
};
-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);
-};
+typedef ACE_Condition<ACE_Recursive_Thread_Mutex> ACE_Condition_Recursive_Thread_Mutex;
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/Condition_T.cpp b/dep/acelite/ace/Condition_T.cpp
index ae75d9ff359..4b5e32d09f9 100644
--- a/dep/acelite/ace/Condition_T.cpp
+++ b/dep/acelite/ace/Condition_T.cpp
@@ -1,4 +1,4 @@
-// $Id: Condition_T.cpp 89127 2010-02-22 19:58:18Z schmidt $
+// $Id: Condition_T.cpp 96077 2012-08-20 08:13:23Z johnnyw $
#ifndef ACE_CONDITION_T_CPP
#define ACE_CONDITION_T_CPP
@@ -15,6 +15,7 @@
#if !defined (__ACE_INLINE__)
#include "ace/Condition_T.inl"
+#include "ace/Time_Value.h"
#endif /* __ACE_INLINE__ */
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -72,6 +73,22 @@ ACE_Condition<MUTEX>::ACE_Condition (MUTEX &m,
}
template <class MUTEX>
+ACE_Condition<MUTEX>::ACE_Condition (MUTEX &m,
+ const ACE_Condition_Attributes &attributes,
+ const ACE_TCHAR *name,
+ void *arg)
+ : mutex_ (m)
+{
+// ACE_TRACE ("ACE_Condition<MUTEX>::ACE_Condition<MUTEX>");
+ if (ACE_OS::cond_init (&this->cond_,
+ const_cast<ACE_condattr_t &> (attributes.attributes ()),
+ name, arg) != 0)
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("ACE_Condition::ACE_Condition")));
+}
+
+template <class MUTEX>
ACE_Condition<MUTEX>::~ACE_Condition (void)
{
// ACE_TRACE ("ACE_Condition<MUTEX>::~ACE_Condition");
diff --git a/dep/acelite/ace/Condition_T.h b/dep/acelite/ace/Condition_T.h
index 936ce821777..cbae002d7a2 100644
--- a/dep/acelite/ace/Condition_T.h
+++ b/dep/acelite/ace/Condition_T.h
@@ -4,7 +4,7 @@
/**
* @file Condition_T.h
*
- * $Id: Condition_T.h 81462 2008-04-28 11:39:40Z johnnyw $
+ * $Id: Condition_T.h 96061 2012-08-16 09:36:07Z mcorino $
*
* Moved from Synch.h.
*
@@ -18,7 +18,7 @@
#include /**/ "ace/pre.h"
#include "ace/OS_NS_Thread.h"
-#include "ace/Lock.h"
+#include "ace/Condition_Attributes.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
@@ -37,8 +37,8 @@ class ACE_Time_Value;
* 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,
+ * test the condition under the protection of a mutual exclusion
+ * 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
@@ -54,11 +54,16 @@ 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);
+ /// Initialize the condition variable.
+ ACE_Condition (MUTEX &m,
+ const ACE_Condition_Attributes &attributes,
+ const ACE_TCHAR *name = 0,
+ void *arg = 0);
+
/// Implicitly destroy the condition variable.
~ACE_Condition (void);
@@ -67,7 +72,7 @@ public:
* Block on condition, or until absolute time-of-day has passed. If
* @a abstime == 0 use "blocking" <wait> semantics. Else, if @a abstime
* != 0 and the call times out before the condition is signaled
- * <wait> returns -1 and sets errno to ETIME.
+ * wait() returns -1 and sets errno to ETIME.
*/
int wait (const ACE_Time_Value *abstime);
@@ -76,10 +81,10 @@ public:
/**
* Block on condition or until absolute time-of-day has passed. If
- * abstime == 0 use "blocking" wait() semantics on the <mutex>
+ * @a abstime == 0 use "blocking" wait() semantics on the @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
+ * <Condition> in shared memory). Else, if @a 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);
diff --git a/dep/acelite/ace/Condition_Thread_Mutex.cpp b/dep/acelite/ace/Condition_Thread_Mutex.cpp
index 88e99702d0f..c3fcd7936b0 100644
--- a/dep/acelite/ace/Condition_Thread_Mutex.cpp
+++ b/dep/acelite/ace/Condition_Thread_Mutex.cpp
@@ -2,7 +2,7 @@
/**
* @file Condition_Thread_Mutex.cpp
*
- * $Id: Condition_Thread_Mutex.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+ * $Id: Condition_Thread_Mutex.cpp 96077 2012-08-20 08:13:23Z johnnyw $
*
* Originally in Synch.cpp
*
@@ -19,17 +19,15 @@
#include "ace/Log_Msg.h"
-
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-ACE_ALLOC_HOOK_DEFINE(ACE_Condition_Thread_Mutex)
+ACE_ALLOC_HOOK_DEFINE(ACE_Condition<ACE_Thread_Mutex>)
void
-ACE_Condition_Thread_Mutex::dump (void) const
+ACE_Condition<ACE_Thread_Mutex>::dump (void) const
{
#if defined (ACE_HAS_DUMP)
-// ACE_TRACE ("ACE_Condition_Thread_Mutex::dump");
+// ACE_TRACE ("ACE_Condition<ACE_Thread_Mutex>::dump");
ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n")));
@@ -42,40 +40,40 @@ ACE_Condition_Thread_Mutex::dump (void) const
#endif /* ACE_HAS_DUMP */
}
-ACE_Condition_Thread_Mutex::ACE_Condition_Thread_Mutex (ACE_Thread_Mutex &m,
- const ACE_TCHAR *name,
- void *arg)
+ACE_Condition<ACE_Thread_Mutex>::ACE_Condition (ACE_Thread_Mutex &m,
+ const ACE_TCHAR *name,
+ void *arg)
: mutex_ (m),
removed_ (false)
{
-// ACE_TRACE ("ACE_Condition_Thread_Mutex::ACE_Condition_Thread_Mutex");
+// ACE_TRACE ("ACE_Condition<ACE_Thread_Mutex>::ACE_Condition<ACE_Thread_Mutex>");
if (ACE_OS::cond_init (&this->cond_,
(short) USYNC_THREAD,
name,
arg) != 0)
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("%p\n"),
- ACE_TEXT ("ACE_Condition_Thread_Mutex::ACE_Condition_Thread_Mutex")));
+ ACE_TEXT ("ACE_Condition<ACE_Thread_Mutex>::ACE_Condition<ACE_Thread_Mutex>")));
}
-ACE_Condition_Thread_Mutex::
-ACE_Condition_Thread_Mutex (ACE_Thread_Mutex &m,
- ACE_Condition_Attributes &attributes,
- const ACE_TCHAR *name,
- void *arg)
+ACE_Condition<ACE_Thread_Mutex>::ACE_Condition (ACE_Thread_Mutex &m,
+ const ACE_Condition_Attributes &attributes,
+ const ACE_TCHAR *name,
+ void *arg)
: mutex_ (m),
removed_ (false)
{
-// ACE_TRACE ("ACE_Condition_Thread_Mutex::ACE_Condition_Thread_Mutex");
- if (ACE_OS::cond_init (&this->cond_, attributes.attributes_,
+// ACE_TRACE ("ACE_Condition<ACE_Thread_Mutex>::ACE_Condition<ACE_Thread_Mutex>");
+ if (ACE_OS::cond_init (&this->cond_,
+ const_cast<ACE_condattr_t &> (attributes.attributes ()),
name, arg) != 0)
ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"),
- ACE_TEXT ("ACE_Condition_Thread_Mutex::ACE_Condition_Thread_Mutex")));
+ ACE_TEXT ("ACE_Condition<ACE_Thread_Mutex>::ACE_Condition<ACE_Thread_Mutex>")));
}
-ACE_Condition_Thread_Mutex::~ACE_Condition_Thread_Mutex (void)
+ACE_Condition<ACE_Thread_Mutex>::~ACE_Condition (void)
{
-// ACE_TRACE ("ACE_Condition_Thread_Mutex::~ACE_Condition_Thread_Mutex");
+// ACE_TRACE ("ACE_Condition<ACE_Thread_Mutex>::~ACE_Condition<ACE_Thread_Mutex>");
this->remove ();
}
@@ -84,40 +82,40 @@ ACE_Condition_Thread_Mutex::~ACE_Condition_Thread_Mutex (void)
// <abstime> using the <cond_timedwait> function.
int
-ACE_Condition_Thread_Mutex::wait (void)
+ACE_Condition<ACE_Thread_Mutex>::wait (void)
{
-// ACE_TRACE ("ACE_Condition_Thread_Mutex::wait");
- return ACE_OS::cond_wait (&this->cond_, &this->mutex_.lock_);
+// ACE_TRACE ("ACE_Condition<ACE_Thread_Mutex>::wait");
+ return ACE_OS::cond_wait (&this->cond_, &this->mutex_.lock ());
}
int
-ACE_Condition_Thread_Mutex::wait (ACE_Thread_Mutex &mutex,
+ACE_Condition<ACE_Thread_Mutex>::wait (ACE_Thread_Mutex &mutex,
const ACE_Time_Value *abstime)
{
-// ACE_TRACE ("ACE_Condition_Thread_Mutex::wait");
+// ACE_TRACE ("ACE_Condition<ACE_Thread_Mutex>::wait");
return ACE_OS::cond_timedwait (&this->cond_,
- &mutex.lock_,
+ &mutex.lock (),
const_cast <ACE_Time_Value *> (abstime));
}
int
-ACE_Condition_Thread_Mutex::wait (const ACE_Time_Value *abstime)
+ACE_Condition<ACE_Thread_Mutex>::wait (const ACE_Time_Value *abstime)
{
-// ACE_TRACE ("ACE_Condition_Thread_Mutex::wait");
+// ACE_TRACE ("ACE_Condition<ACE_Thread_Mutex>::wait");
return this->wait (this->mutex_, abstime);
}
int
-ACE_Condition_Thread_Mutex::signal (void)
+ACE_Condition<ACE_Thread_Mutex>::signal (void)
{
-// ACE_TRACE ("ACE_Condition_Thread_Mutex::signal");
+// ACE_TRACE ("ACE_Condition<ACE_Thread_Mutex>::signal");
return ACE_OS::cond_signal (&this->cond_);
}
int
-ACE_Condition_Thread_Mutex::broadcast (void)
+ACE_Condition<ACE_Thread_Mutex>::broadcast (void)
{
-// ACE_TRACE ("ACE_Condition_Thread_Mutex::broadcast");
+// ACE_TRACE ("ACE_Condition<ACE_Thread_Mutex>::broadcast");
return ACE_OS::cond_broadcast (&this->cond_);
}
diff --git a/dep/acelite/ace/Condition_Thread_Mutex.h b/dep/acelite/ace/Condition_Thread_Mutex.h
index 1ba866d2eb0..f39829cfe71 100644
--- a/dep/acelite/ace/Condition_Thread_Mutex.h
+++ b/dep/acelite/ace/Condition_Thread_Mutex.h
@@ -4,7 +4,7 @@
/**
* @file Condition_Thread_Mutex.h
*
- * $Id: Condition_Thread_Mutex.h 92069 2010-09-28 11:38:59Z johnnyw $
+ * $Id: Condition_Thread_Mutex.h 96073 2012-08-17 13:39:55Z mcorino $
*
* Moved from Synch.h.
*
@@ -28,37 +28,17 @@
// ACE platform supports some form of threading.
#include "ace/Thread_Mutex.h"
+#include "ace/Condition_Attributes.h"
+#include "ace/Condition_T.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
class ACE_Time_Value;
-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.
+ * @brief ACE_Condition template specialization 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,
@@ -70,26 +50,24 @@ private:
* 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
+template <>
+class ACE_Export ACE_Condition<ACE_Thread_Mutex>
{
public:
/// Initialize the condition variable.
- ACE_Condition_Thread_Mutex (ACE_Thread_Mutex &m,
- const ACE_TCHAR *name = 0,
- void *arg = 0);
+ ACE_Condition (ACE_Thread_Mutex &m,
+ const ACE_TCHAR *name = 0,
+ void *arg = 0);
/// Initialize the condition variable.
- ACE_Condition_Thread_Mutex (ACE_Thread_Mutex &m,
- ACE_Condition_Attributes &attributes,
- const ACE_TCHAR *name = 0,
- void *arg = 0);
+ ACE_Condition (ACE_Thread_Mutex &m,
+ const ACE_Condition_Attributes &attributes,
+ const ACE_TCHAR *name = 0,
+ void *arg = 0);
/// Implicitly destroy the condition variable.
- ~ACE_Condition_Thread_Mutex (void);
+ ~ACE_Condition (void);
/**
* Explicitly destroy the condition variable. Note that only one
@@ -111,7 +89,7 @@ public:
/**
* Block on condition or until absolute time-of-day has passed. If
- * abstime == 0 use "blocking" wait() semantics on the <mutex>
+ * abstime == 0 use "blocking" wait() semantics on the @a mutex
* passed as a parameter (this is useful if you need to store the
* <Condition> in shared memory). Else, if @a abstime != 0 and the
* call times out before the condition is signaled <wait> returns -1
@@ -150,10 +128,12 @@ protected:
private:
// = Prevent assignment and initialization.
- void operator= (const ACE_Condition_Thread_Mutex &);
- ACE_Condition_Thread_Mutex (const ACE_Condition_Thread_Mutex &);
+ void operator= (const ACE_Condition<ACE_Thread_Mutex> &);
+ ACE_Condition (const ACE_Condition<ACE_Thread_Mutex> &);
};
+typedef ACE_Condition<ACE_Thread_Mutex> ACE_Condition_Thread_Mutex;
+
ACE_END_VERSIONED_NAMESPACE_DECL
#if defined (__ACE_INLINE__)
diff --git a/dep/acelite/ace/Condition_Thread_Mutex.inl b/dep/acelite/ace/Condition_Thread_Mutex.inl
index 712a8be0251..76cbc82ea82 100644
--- a/dep/acelite/ace/Condition_Thread_Mutex.inl
+++ b/dep/acelite/ace/Condition_Thread_Mutex.inl
@@ -1,25 +1,13 @@
// -*- C++ -*-
//
-// $Id: Condition_Thread_Mutex.inl 92069 2010-09-28 11:38:59Z johnnyw $
+// $Id: Condition_Thread_Mutex.inl 96061 2012-08-16 09:36:07Z mcorino $
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-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_Condition<ACE_Thread_Mutex>::remove (void)
{
-// ACE_TRACE ("ACE_Condition_Thread_Mutex::remove");
+// ACE_TRACE ("ACE_Condition<ACE_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
@@ -44,9 +32,9 @@ ACE_Condition_Thread_Mutex::remove (void)
}
ACE_INLINE ACE_Thread_Mutex &
-ACE_Condition_Thread_Mutex::mutex (void)
+ACE_Condition<ACE_Thread_Mutex>::mutex (void)
{
-// ACE_TRACE ("ACE_Condition_Thread_Mutex::mutex");
+// ACE_TRACE ("ACE_Condition<ACE_Thread_Mutex>::mutex");
return this->mutex_;
}
diff --git a/dep/acelite/ace/Configuration.cpp b/dep/acelite/ace/Configuration.cpp
index 4e0a1749e92..85bbf1ca0c0 100644
--- a/dep/acelite/ace/Configuration.cpp
+++ b/dep/acelite/ace/Configuration.cpp
@@ -1,4 +1,4 @@
-// $Id: Configuration.cpp 91688 2010-09-09 11:21:50Z johnnyw $
+// $Id: Configuration.cpp 92828 2010-12-08 09:38:57Z mcorino $
#include "ace/Configuration.h"
#include "ace/Auto_Ptr.h"
#include "ace/SString.h"
@@ -1632,7 +1632,7 @@ ACE_Configuration_Heap::remove_section (const ACE_Configuration_Section_Key& key
// Now remove subkey from parent key
ACE_Configuration_ExtId SubSExtId (sub_section);
- SUBSECTION_HASH::ENTRY* subsection_entry;
+ SUBSECTION_HASH::ENTRY* subsection_entry = 0;
if (((SUBSECTION_HASH*)ParentIntId.section_hash_map_)->
find (SubSExtId, subsection_entry))
return -1;
diff --git a/dep/acelite/ace/Configuration_Import_Export.cpp b/dep/acelite/ace/Configuration_Import_Export.cpp
index ae489f05dfa..15d869b8a09 100644
--- a/dep/acelite/ace/Configuration_Import_Export.cpp
+++ b/dep/acelite/ace/Configuration_Import_Export.cpp
@@ -1,4 +1,4 @@
-// $Id: Configuration_Import_Export.cpp 84565 2009-02-23 08:20:39Z johnnyw $
+// $Id: Configuration_Import_Export.cpp 96017 2012-08-08 22:18:09Z mitza $
#include "ace/Configuration_Import_Export.h"
#include "ace/OS_Errno.h"
@@ -138,7 +138,8 @@ ACE_Registry_ImpExp::import_config (const ACE_TCHAR* filename)
// number type
ACE_TCHAR* endptr = 0;
unsigned long value = ACE_OS::strtoul (end + 6, &endptr, 16);
- if (config_.set_integer_value (section, name, value))
+ if (config_.set_integer_value (section, name,
+ static_cast<u_int> (value)))
{
ACE_OS::fclose (in);
delete [] buffer;
diff --git a/dep/acelite/ace/Configuration_Import_Export.h b/dep/acelite/ace/Configuration_Import_Export.h
index e93544bee29..9995d095d83 100644
--- a/dep/acelite/ace/Configuration_Import_Export.h
+++ b/dep/acelite/ace/Configuration_Import_Export.h
@@ -4,7 +4,7 @@
/**
* @file Configuration_Import_Export.h
*
- * $Id: Configuration_Import_Export.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: Configuration_Import_Export.h 93359 2011-02-11 11:33:12Z mcorino $
*
* @author Jerry D. Odenwelder Jr. <jerry.o@mindspring.com>
* Chris Hafey <chris@stentorsoft.com>
@@ -83,12 +83,12 @@ private:
* using the Win32 Registry file export format. This format looks like
* [Section]
* "key"="String Data"
- * "key"=dword: numeric data in hexidecimal format
+ * "key"=dword: numeric data in hexadecimal format
* "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)
+ * importing of values greater than a fixed amount (4096 bytes)
*
*/
class ACE_Export ACE_Registry_ImpExp : public ACE_Config_ImpExp_Base
@@ -101,7 +101,7 @@ public:
virtual ~ACE_Registry_ImpExp (void);
/**
- * Imports the configuration database from filename.
+ * Imports the configuration database from @a filename.
* No existing data is removed.
*/
virtual int import_config (const ACE_TCHAR* filename);
@@ -149,7 +149,7 @@ private:
* Justification = left_justified
*
* The caller can then retrieve the string with the regular
- * <get_string_value> function and convert the string to the
+ * get_string_value() function and convert the string to the
* desired data type.
*
* @todo
@@ -157,7 +157,7 @@ private:
* - 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)
+ * importing of values greater than a fixed amount (4096 bytes)
*/
class ACE_Export ACE_Ini_ImpExp : public ACE_Config_ImpExp_Base
{
@@ -173,7 +173,7 @@ public:
virtual ~ACE_Ini_ImpExp (void);
/**
- * Imports the configuration database from filename.
+ * Imports the configuration database from @a filename.
* No existing data is removed.
*/
virtual int import_config (const ACE_TCHAR* filename);
diff --git a/dep/acelite/ace/Connector.cpp b/dep/acelite/ace/Connector.cpp
index 3a1edfc881a..a8399608ce5 100644
--- a/dep/acelite/ace/Connector.cpp
+++ b/dep/acelite/ace/Connector.cpp
@@ -1,4 +1,4 @@
-// $Id: Connector.cpp 91527 2010-08-27 15:03:31Z shuston $
+// $Id: Connector.cpp 93433 2011-02-23 10:34:01Z vzykov $
#ifndef ACE_CONNECTOR_CPP
#define ACE_CONNECTOR_CPP
@@ -829,7 +829,7 @@ ACE_Strategy_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::open
else if (this->creation_strategy_ == 0)
{
ACE_NEW_RETURN (this->creation_strategy_,
- CREATION_STRATEGY,
+ CREATION_STRATEGY (0, r),
-1);
this->delete_creation_strategy_ = true;
}
@@ -887,7 +887,8 @@ ACE_Strategy_Connector<SVC_HANDLER, ACE_PEER_CONNECTOR_2>::ACE_Strategy_Connecto
ACE_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2> *conn_s,
ACE_Concurrency_Strategy<SVC_HANDLER> *con_s,
int flags)
- : creation_strategy_ (0),
+ : base_type (reactor),
+ creation_strategy_ (0),
delete_creation_strategy_ (false),
connect_strategy_ (0),
delete_connect_strategy_ (false),
diff --git a/dep/acelite/ace/Countdown_Time.cpp b/dep/acelite/ace/Countdown_Time.cpp
deleted file mode 100644
index c964ab1138a..00000000000
--- a/dep/acelite/ace/Countdown_Time.cpp
+++ /dev/null
@@ -1,57 +0,0 @@
-// $Id: Countdown_Time.cpp 91287 2010-08-05 10:30:49Z johnnyw $
-
-#include "ace/Countdown_Time.h"
-#include "ace/OS_NS_sys_time.h"
-
-#if !defined (__ACE_INLINE__)
-#include "ace/Countdown_Time.inl"
-#endif /* __ACE_INLINE__ */
-
-ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-
-ACE_Countdown_Time::ACE_Countdown_Time (ACE_Time_Value *max_wait_time)
- : max_wait_time_ (max_wait_time),
- stopped_ (false)
-{
- this->start ();
-}
-
-ACE_Countdown_Time::~ACE_Countdown_Time (void)
-{
- this->stop ();
-}
-
-void
-ACE_Countdown_Time::start (void)
-{
- if (this->max_wait_time_ != 0)
- {
- this->start_time_ = ACE_OS::gettimeofday ();
- this->stopped_ = false;
- }
-}
-
-void
-ACE_Countdown_Time::stop (void)
-{
- if (this->max_wait_time_ != 0 && !this->stopped_)
- {
- ACE_Time_Value const elapsed_time =
- ACE_OS::gettimeofday () - this->start_time_;
-
- if (elapsed_time >= ACE_Time_Value::zero &&
- *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_ = true;
- }
-}
-
-ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/Countdown_Time.h b/dep/acelite/ace/Countdown_Time.h
index b9c9a467f62..b63228d606f 100644
--- a/dep/acelite/ace/Countdown_Time.h
+++ b/dep/acelite/ace/Countdown_Time.h
@@ -4,9 +4,10 @@
/**
* @file Countdown_Time.h
*
- * $Id: Countdown_Time.h 85365 2009-05-18 08:27:42Z johnnyw $
+ * $Id: Countdown_Time.h 95332 2011-12-15 11:09:41Z mcorino $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ * @author Irfan Pyarali <irfan@cs.wustl.edu>
*/
//=============================================================================
@@ -15,67 +16,21 @@
#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"
-#include "ace/Copy_Disabled.h"
+#include "ace/Countdown_Time_T.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-/**
- * @class ACE_Countdown_Time
- *
- * @brief Keeps track of the amount of elapsed time.
- *
- * This class has a side-effect on the @c max_wait_time -- every
- * time the stop() method is called the @c max_wait_time is
- * updated.
- */
-class ACE_Export ACE_Countdown_Time : private ACE_Copy_Disabled
-{
-public:
- /// Cache the @a max_wait_time and call @c start().
- ACE_Countdown_Time (ACE_Time_Value *max_wait_time);
-
- /// Destructor, makes sure the max_wait_time that got passed as pointer
- /// to the constructor is updated with the time elapsed.
- ~ACE_Countdown_Time (void);
-
- /// Cache the current time and enter a start state.
- void start (void);
-
- /// Subtract the elapsed time from max_wait_time_ and enter a stopped
- /// state.
- void stop (void);
-
- /// Calls stop and then start. max_wait_time_ is modified by the
- /// call to stop.
- void update (void);
-
- /// Returns true if we've already been stopped, else false.
- bool 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.
- bool stopped_;
-};
+// The following typedef is here for ease of use and backward
+// compatibility.
+typedef ACE_Countdown_Time_T<ACE_Default_Time_Policy>
+ ACE_Countdown_Time;
ACE_END_VERSIONED_NAMESPACE_DECL
#include /**/ "ace/post.h"
-#if defined (__ACE_INLINE__)
-#include "ace/Countdown_Time.inl"
-#endif /* __ACE_INLINE__ */
-
#endif /* ACE_COUNTDOWN_TIME_H */
diff --git a/dep/acelite/ace/Countdown_Time.inl b/dep/acelite/ace/Countdown_Time.inl
deleted file mode 100644
index 4a9eb8e0e43..00000000000
--- a/dep/acelite/ace/Countdown_Time.inl
+++ /dev/null
@@ -1,20 +0,0 @@
-// -*- C++ -*-
-//
-// $Id: Countdown_Time.inl 85368 2009-05-18 10:23:19Z johnnyw $
-
-ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-
-ACE_INLINE bool
-ACE_Countdown_Time::stopped (void) const
-{
- return stopped_;
-}
-
-ACE_INLINE void
-ACE_Countdown_Time::update (void)
-{
- this->stop ();
- this->start ();
-}
-
-ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/Countdown_Time_T.cpp b/dep/acelite/ace/Countdown_Time_T.cpp
new file mode 100644
index 00000000000..fd9a466625f
--- /dev/null
+++ b/dep/acelite/ace/Countdown_Time_T.cpp
@@ -0,0 +1,65 @@
+// $Id: Countdown_Time_T.cpp 95332 2011-12-15 11:09:41Z mcorino $
+
+#ifndef ACE_COUNTDOWN_TIME_T_CPP
+#define ACE_COUNTDOWN_TIME_T_CPP
+
+#include "ace/Countdown_Time_T.h"
+
+#if !defined (__ACE_INLINE__)
+#include "ace/Countdown_Time_T.inl"
+#endif /* __ACE_INLINE__ */
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+template <typename TIME_POLICY> ACE_INLINE
+ACE_Countdown_Time_T<TIME_POLICY>::ACE_Countdown_Time_T (ACE_Time_Value *max_wait_time,
+ TIME_POLICY const & time_policy)
+ : time_policy_ (time_policy),
+ max_wait_time_ (max_wait_time),
+ stopped_ (false)
+{
+ this->start ();
+}
+
+template <typename TIME_POLICY> ACE_INLINE
+ACE_Countdown_Time_T<TIME_POLICY>::~ACE_Countdown_Time_T (void)
+{
+ this->stop ();
+}
+
+template <typename TIME_POLICY> ACE_INLINE void
+ACE_Countdown_Time_T<TIME_POLICY>::start (void)
+{
+ if (this->max_wait_time_ != 0)
+ {
+ this->start_time_ = this->time_policy_ ();
+ this->stopped_ = false;
+ }
+}
+
+template <typename TIME_POLICY> ACE_INLINE void
+ACE_Countdown_Time_T<TIME_POLICY>::stop (void)
+{
+ if (this->max_wait_time_ != 0 && !this->stopped_)
+ {
+ ACE_Time_Value const elapsed_time =
+ this->time_policy_ () - this->start_time_;
+
+ if (elapsed_time >= ACE_Time_Value::zero &&
+ *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_ = true;
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_COUNTDOWN_TIME_T_CPP */
diff --git a/dep/acelite/ace/Countdown_Time_T.h b/dep/acelite/ace/Countdown_Time_T.h
new file mode 100644
index 00000000000..74de8f27e1c
--- /dev/null
+++ b/dep/acelite/ace/Countdown_Time_T.h
@@ -0,0 +1,100 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Countdown_Time_T.h
+ *
+ * $Id: Countdown_Time_T.h 95345 2011-12-15 19:46:06Z johnnyw $
+ *
+ * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
+ */
+//=============================================================================
+
+#ifndef ACE_COUNTDOWN_TIME_T_H
+#define ACE_COUNTDOWN_TIME_T_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"
+#include "ace/Time_Policy.h"
+#include "ace/Copy_Disabled.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+/**
+ * @class ACE_Countdown_Time
+ *
+ * @brief Keeps track of the amount of elapsed time.
+ *
+ * This class has a side-effect on the @c max_wait_time -- every
+ * time the stop() method is called the @c max_wait_time is
+ * updated.
+ */
+template <typename TIME_POLICY = ACE_Default_Time_Policy>
+class ACE_Countdown_Time_T : private ACE_Copy_Disabled
+{
+public:
+ /// Cache the @a max_wait_time and call @c start().
+ ACE_Countdown_Time_T (ACE_Time_Value *max_wait_time,
+ TIME_POLICY const & time_policy = TIME_POLICY());
+
+ /// Destructor, makes sure the max_wait_time that got passed as pointer
+ /// to the constructor is updated with the time elapsed.
+ ~ACE_Countdown_Time_T (void);
+
+ /// Cache the current time and enter a start state.
+ void start (void);
+
+ /// Subtract the elapsed time from max_wait_time_ and enter a stopped
+ /// state.
+ void stop (void);
+
+ /// Calls stop and then start. max_wait_time_ is modified by the
+ /// call to stop.
+ void update (void);
+
+ /// Returns true if we've already been stopped, else false.
+ bool stopped (void) const;
+
+ /// Allows applications to control how the timer queue gets the time
+ /// of day.
+ void set_time_policy(TIME_POLICY const & time_policy);
+
+private:
+ /// The policy to return the current time of day
+ TIME_POLICY time_policy_;
+
+ /// 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.
+ bool stopped_;
+};
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#include /**/ "ace/post.h"
+
+#if defined (__ACE_INLINE__)
+#include "ace/Countdown_Time_T.inl"
+#endif /* __ACE_INLINE__ */
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "ace/Countdown_Time_T.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("Countdown_Time_T.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+
+#endif /* ACE_COUNTDOWN_TIME_T_H */
diff --git a/dep/acelite/ace/Countdown_Time_T.inl b/dep/acelite/ace/Countdown_Time_T.inl
new file mode 100644
index 00000000000..3d6e7a2f73d
--- /dev/null
+++ b/dep/acelite/ace/Countdown_Time_T.inl
@@ -0,0 +1,26 @@
+// -*- C++ -*-
+//
+// $Id: Countdown_Time_T.inl 95332 2011-12-15 11:09:41Z mcorino $
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+template <typename TIME_POLICY> ACE_INLINE bool
+ACE_Countdown_Time_T<TIME_POLICY>::stopped (void) const
+{
+ return stopped_;
+}
+
+template <typename TIME_POLICY> ACE_INLINE void
+ACE_Countdown_Time_T<TIME_POLICY>::update (void)
+{
+ this->stop ();
+ this->start ();
+}
+
+template <typename TIME_POLICY> ACE_INLINE void
+ACE_Countdown_Time_T<TIME_POLICY>::set_time_policy(TIME_POLICY const & time_policy)
+{
+ this->time_policy_ = time_policy;
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/DLL.h b/dep/acelite/ace/DLL.h
index 20d333db81a..4b1251eb704 100644
--- a/dep/acelite/ace/DLL.h
+++ b/dep/acelite/ace/DLL.h
@@ -4,7 +4,7 @@
/**
* @file DLL.h
*
- * $Id: DLL.h 91064 2010-07-12 10:11:24Z johnnyw $
+ * $Id: DLL.h 95913 2012-06-21 17:14:36Z johnnyw $
*
* @author Kirthika Parameswaran <kirthika@cs.wustl.edu>
*/
@@ -88,24 +88,37 @@ public:
/**
* This method opens and dynamically links a specified DLL.
- * @param dll_name The filename or path of the DLL to load.
- * If a filename is given to @c open(), the @c ACE::ldfind() is used
- * to locate DLLs via the following algorithms: (1) DLL filename
- * expansion: @c ACE::ldfind() determines the name of the DLL by
- * adding the appropriate prefix and suffix, e.g., it adds the @c lib
- * prefix and @c .so suffix for Solaris and the @c .dll suffix for
- * Windows and (2) DLL search path: @c ACE::ldfind() will also search
- * for the designated DLL using the platform's DLL search path
- * environment variable, e.g., it searches for DLLs using @c
- * LD_LIBRARY_PATH on many UNIX systems and @c PATH on Windows.
+ * @param dll_name The filename or path of the DLL to load. ACE will
+ * attempt to apply the platform's standard library/DLL prefixes
+ * and suffixes, allowing a simple, unadorned name to be passed
+ * regardless of platform. The set of name transforms is listed
+ * below. A @i decorator is a platform's name designator for a debug
+ * vs release build. For example, on Windows it is usually "d".
+ * @li Prefix + name + decorator + suffix
+ * @li Prefix + name + suffix
+ * @li Name + decorator + suffix
+ * @li Name + suffix
+ * @li Name
+ * Note that the transforms with @i decorator will be avoided if
+ * ACE is built with the @c ACE_DISABLE_DEBUG_DLL_CHECK config macro.
+ *
+ * @Note There is another mode for locating library/DLL files that
+ * was used in old versions of ACE. The alternate method builds
+ * more combinations of pathname by combining the names transforms
+ * above with locations listed in the platform's standard "path"
+ * locations (e.g., @c LD_LIBRARY_PATH). It can be enabled by building
+ * ACE with the @c ACE_MUST_HELP_DLOPEN_SEARCH_PATH config macro.
+ * Use of this option is discouraged since it avoids the standard
+ * platform search options and security mechanisms.
+ *
* @param open_mode Flags to alter the actions taken when loading the DLL.
* The possible values are:
* @li @c RTLD_LAZY (this the default): loads identifier symbols but
* not the symbols for functions, which are loaded dynamically
- * on-demand.
+ * on demand.
* @li @c RTLD_NOW: performs all necessary relocations when
* @a dll_name is first loaded
- * @li RTLD_GLOBAL: makes symbols available for relocation
+ * @li @c RTLD_GLOBAL: makes symbols available for relocation
* processing of any other DLLs.
* @param close_handle_on_destruction Indicates whether or not the
* close() method will be called to close an open DLL when this
diff --git a/dep/acelite/ace/DLL_Manager.cpp b/dep/acelite/ace/DLL_Manager.cpp
index 23e6f85520a..ebba7d64add 100644
--- a/dep/acelite/ace/DLL_Manager.cpp
+++ b/dep/acelite/ace/DLL_Manager.cpp
@@ -1,4 +1,4 @@
-// $Id: DLL_Manager.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: DLL_Manager.cpp 95913 2012-06-21 17:14:36Z johnnyw $
#include "ace/DLL_Manager.h"
@@ -415,10 +415,10 @@ ACE_DLL_Handle::get_dll_names (const ACE_TCHAR *dll_name,
// 3. Build the combinations to try for this platform.
// Try these combinations:
- // - name with decorator and platform's suffix appended (if not supplied)
- // - name with platform's suffix appended (if not supplied)
// - name with platform's dll prefix (if it has one) and suffix
// - name with platform's dll prefix, decorator, and suffix.
+ // - name with decorator and platform's suffix appended (if not supplied)
+ // - name with platform's suffix appended (if not supplied)
// - name as originally given
// We first try to find the file using the decorator so that when a
// filename with and without decorator is used, we get the file with
@@ -443,10 +443,10 @@ ACE_DLL_Handle::get_dll_names (const ACE_TCHAR *dll_name,
size_t const j = try_names.size ();
switch (i)
{
- case 0: // Name + decorator + suffix
- case 1: // Name + suffix
- case 2: // Prefix + name + decorator + suffix
- case 3: // Prefix + name + suffix
+ case 0: // Prefix + name + decorator + suffix
+ case 1: // Prefix + name + suffix
+ case 2: // Name + decorator + suffix
+ case 3: // Name + suffix
if (
base_suffix.length () > 0
#if !(defined (ACE_LD_DECORATOR_STR) && !defined (ACE_DISABLE_DEBUG_DLL_CHECK))
@@ -455,7 +455,7 @@ ACE_DLL_Handle::get_dll_names (const ACE_TCHAR *dll_name,
)
break;
try_this = base_dir;
- if (i > 1)
+ if (i < 2)
try_this += prefix;
try_this += base_file;
if (base_suffix.length () > 0)
diff --git a/dep/acelite/ace/DLL_Manager.h b/dep/acelite/ace/DLL_Manager.h
index 716e3299557..71d8f13c579 100644
--- a/dep/acelite/ace/DLL_Manager.h
+++ b/dep/acelite/ace/DLL_Manager.h
@@ -4,7 +4,7 @@
/**
* @file DLL_Manager.h
*
- * $Id: DLL_Manager.h 91064 2010-07-12 10:11:24Z johnnyw $
+ * $Id: DLL_Manager.h 95913 2012-06-21 17:14:36Z johnnyw $
*
* @author Don Hinton <dhinton@ieee.org>
*/
@@ -68,14 +68,44 @@ public:
const ACE_TCHAR *dll_name () const;
/**
- * This method opens and dynamically links @a dll_name. The default
- * mode is @c RTLD_LAZY, which loads identifier symbols but not the
- * symbols for functions, which are loaded dynamically on-demand.
- * Other supported modes include: @c RTLD_NOW, which performs all
- * necessary relocations when @a dll_name is first loaded and
- * @c RTLD_GLOBAL, which makes symbols available for relocation
- * processing of any other DLLs. Returns -1 on failure and 0 on
- * success.
+ * This method opens and dynamically links a library/DLL.
+ * @param dll_name The filename or path of the DLL to load. ACE will
+ * attempt to apply the platform's standard library/DLL prefixes
+ * and suffixes, allowing a simple, unadorned name to be passed
+ * regardless of platform. The set of name transforms is listed
+ * below. A @i decorator is a platform's name designator for a debug
+ * vs release build. For example, on Windows it is usually "d".
+ * @li Prefix + name + decorator + suffix
+ * @li Prefix + name + suffix
+ * @li Name + decorator + suffix
+ * @li Name + suffix
+ * @li Name
+ * Note that the transforms with @i decorator will be avoided if
+ * ACE is built with the @c ACE_DISABLE_DEBUG_DLL_CHECK config macro.
+ *
+ * @Note There is another mode for locating library/DLL files that
+ * was used in old versions of ACE. The alternate method builds
+ * more combinations of pathname by combining the names transforms
+ * above with locations listed in the platform's standard "path"
+ * locations (e.g., @c LD_LIBRARY_PATH). It can be enabled by building
+ * ACE with the @c ACE_MUST_HELP_DLOPEN_SEARCH_PATH config macro.
+ * Use of this option is discouraged since it avoids the standard
+ * platform search options and security mechanisms.
+ *
+ * @param open_mode Flags to alter the actions taken when loading the DLL.
+ * The possible values are:
+ * @li @c RTLD_LAZY (this the default): loads identifier symbols but
+ * not the symbols for functions, which are loaded dynamically
+ * on demand.
+ * @li @c RTLD_NOW: performs all necessary relocations when
+ * @a dll_name is first loaded
+ * @li @c RTLD_GLOBAL: makes symbols available for relocation
+ * processing of any other DLLs.
+ * @param handle If a value other than @c ACE_INVALID_HANDLE is supplied,
+ * this object is assigned the specified handle instead of attempting
+ * to open the specified @a dll_name.
+ * @retval -1 On failure
+ * @retval 0 On success.
*/
int open (const ACE_TCHAR *dll_name,
int open_mode,
diff --git a/dep/acelite/ace/Default_Constants.h b/dep/acelite/ace/Default_Constants.h
index c21c776eaa4..c15b7f9f40b 100644
--- a/dep/acelite/ace/Default_Constants.h
+++ b/dep/acelite/ace/Default_Constants.h
@@ -4,7 +4,7 @@
/**
* @file Default_Constants.h
*
- * $Id: Default_Constants.h 91688 2010-09-09 11:21:50Z johnnyw $
+ * $Id: Default_Constants.h 95517 2012-01-30 10:05:01Z sma $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
* @author Jesper S. M|ller<stophph@diku.dk>
@@ -392,7 +392,7 @@
/// Max udp packet size
#if !defined (ACE_MAX_UDP_PACKET_SIZE)
-#define ACE_MAX_UDP_PACKET_SIZE 65536
+#define ACE_MAX_UDP_PACKET_SIZE 65507
#endif
/**
diff --git a/dep/acelite/ace/Dev_Poll_Reactor.cpp b/dep/acelite/ace/Dev_Poll_Reactor.cpp
index 5f18064ecbe..011fe7883a2 100644
--- a/dep/acelite/ace/Dev_Poll_Reactor.cpp
+++ b/dep/acelite/ace/Dev_Poll_Reactor.cpp
@@ -1,4 +1,4 @@
-// $Id: Dev_Poll_Reactor.cpp 92199 2010-10-11 11:58:35Z johnnyw $
+// $Id: Dev_Poll_Reactor.cpp 95738 2012-05-11 19:16:53Z shuston $
#include "ace/OS_NS_errno.h"
#include "ace/Dev_Poll_Reactor.h"
@@ -12,13 +12,13 @@
# include "ace/OS_NS_stropts.h"
# if defined (ACE_HAS_DEV_POLL)
-# if defined (linux)
+# if defined (ACE_LINUX)
# include /**/ <linux/devpoll.h>
# elif defined (HPUX_VERS) && HPUX_VERS < 1123
# include /**/ <devpoll.h>
# else
# include /**/ <sys/devpoll.h>
-# endif /* linux */
+# endif /* ACE_LINUX */
# endif /* ACE_HAS_DEV_POLL */
#if !defined (__ACE_INLINE__)
@@ -39,6 +39,7 @@
#include "ace/Guard_T.h"
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_sys_time.h"
+#include "ace/Functor_T.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -801,12 +802,13 @@ ACE_Dev_Poll_Reactor::timer_queue (ACE_Timer_Queue *tq)
{
if (this->delete_timer_queue_)
delete this->timer_queue_;
+ else if (this->timer_queue_)
+ this->timer_queue_->close ();
this->timer_queue_ = tq;
this->delete_timer_queue_ = false;
return 0;
-
}
ACE_Timer_Queue *
@@ -858,6 +860,11 @@ ACE_Dev_Poll_Reactor::close (void)
this->timer_queue_ = 0;
this->delete_timer_queue_ = false;
}
+ else if (this->timer_queue_)
+ {
+ this->timer_queue_->close ();
+ this->timer_queue_ = 0;
+ }
if (this->notify_handler_ != 0)
this->notify_handler_->close ();
@@ -1007,7 +1014,10 @@ ACE_Dev_Poll_Reactor::handle_events (ACE_Time_Value *max_wait_time)
return result;
if (this->deactivated_)
- return -1;
+ {
+ errno = ESHUTDOWN;
+ return -1;
+ }
// Update the countdown to reflect time waiting for the mutex.
ACE_MT (countdown.update ());
@@ -1087,37 +1097,10 @@ ACE_Dev_Poll_Reactor::dispatch (Token_Guard &guard)
int
ACE_Dev_Poll_Reactor::dispatch_timer_handler (Token_Guard &guard)
{
- if (this->timer_queue_->is_empty ())
- return 0; // Empty timer queue so cannot have any expired timers.
-
- // 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))
- {
- const void *upcall_act = 0;
+ typedef ACE_Member_Function_Command<Token_Guard> Guard_Release;
- // Preinvoke (handles refcount if needed, etc.)
- this->timer_queue_->preinvoke (info, cur_time, upcall_act);
-
- // Release the token before expiration upcall.
- guard.release_token ();
-
- // call the functor
- this->timer_queue_->upcall (info, cur_time);
-
- // Postinvoke (undo refcount if needed, etc.)
- this->timer_queue_->postinvoke (info, cur_time, upcall_act);
-
- // We have dispatched a timer
- return 1;
- }
-
- return 0;
+ Guard_Release release(guard, &Token_Guard::release_token);
+ return this->timer_queue_->expire_single(release);
}
#if 0
@@ -1950,7 +1933,7 @@ ACE_Dev_Poll_Reactor::resumable_handler (void)
{
// @@ Is this correct?
- return 0;
+ return 1;
}
bool
@@ -2395,8 +2378,8 @@ ACE_Dev_Poll_Reactor::mask_ops_i (ACE_HANDLE handle,
// If a handle is closed, epoll removes it from the poll set
// automatically - we may not know about it yet. If that's the
// case, a mod operation will fail with ENOENT. Retry it as
- // an add.
- if (op == EPOLL_CTL_MOD && errno == ENOENT &&
+ // an add. If it's any other failure, just fail outright.
+ if (op != EPOLL_CTL_MOD || errno != ENOENT ||
::epoll_ctl (this->poll_fd_, EPOLL_CTL_ADD, handle, &epev) == -1)
return -1;
}
diff --git a/dep/acelite/ace/Dev_Poll_Reactor.h b/dep/acelite/ace/Dev_Poll_Reactor.h
index 00ae4c21801..b77d8b16a10 100644
--- a/dep/acelite/ace/Dev_Poll_Reactor.h
+++ b/dep/acelite/ace/Dev_Poll_Reactor.h
@@ -4,7 +4,7 @@
/**
* @file Dev_Poll_Reactor.h
*
- * $Id: Dev_Poll_Reactor.h 91462 2010-08-25 20:29:17Z shuston $
+ * $Id: Dev_Poll_Reactor.h 94549 2011-10-03 06:31:27Z johnnyw $
*
* @c /dev/poll (or Linux @c sys_epoll) based Reactor implementation.
*
@@ -563,7 +563,7 @@ public:
ACE_Event_Handler *event_handler,
ACE_Reactor_Mask mask);
- /// Register @a event_handler> with all the @a handles> in the @c
+ /// Register @a event_handler with all the @a handles in the @c
/// Handle_Set.
virtual int register_handler (const ACE_Handle_Set &handles,
ACE_Event_Handler *event_handler,
@@ -815,7 +815,7 @@ public:
/// Wake up all threads waiting in the event loop.
virtual void wakeup_all_threads (void);
- /// Transfers ownership of Reactor_Impl to the new_owner.
+ /// Transfers ownership of Reactor_Impl to the @a 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
@@ -828,7 +828,7 @@ public:
/**
* @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
+ * event loop simultaneously. As such, this method is a
* no-op.
*/
virtual int owner (ACE_thread_t *owner);
@@ -1123,7 +1123,7 @@ protected:
/// 2) wait quietly for the token, not waking another thread. This
/// is appropriate for cases where a thread wants to wait for and
/// dispatch an event, not causing an existing waiter to relinquish the
- /// token, and also queueing up behind other threads waiting to modify
+ /// token, and also queuing up behind other threads waiting to modify
/// event records.
int acquire_quietly (ACE_Time_Value *max_wait = 0);
diff --git a/dep/acelite/ace/Dump.h b/dep/acelite/ace/Dump.h
index 4ccd64adb95..fc1eca06dcd 100644
--- a/dep/acelite/ace/Dump.h
+++ b/dep/acelite/ace/Dump.h
@@ -4,7 +4,7 @@
/**
* @file Dump.h
*
- * $Id: Dump.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: Dump.h 94034 2011-05-09 19:11:03Z johnnyw $
*
*
* A prototype mechanism that allow all ACE objects to be registered
@@ -149,7 +149,7 @@ private:
/// and we'll have to check for that).
const ACE_Dumpable_Ptr dumper_;
- Tuple (void) : dumper_(0) {}
+ Tuple (void) : this_ (0), dumper_(0) {}
};
/// Singleton instance of this class.
diff --git a/dep/acelite/ace/Dynamic_Message_Strategy.h b/dep/acelite/ace/Dynamic_Message_Strategy.h
index 090ad3a8f82..5ff102ef6ce 100644
--- a/dep/acelite/ace/Dynamic_Message_Strategy.h
+++ b/dep/acelite/ace/Dynamic_Message_Strategy.h
@@ -4,7 +4,7 @@
/**
* @file Dynamic_Message_Strategy.h
*
- * $Id: Dynamic_Message_Strategy.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: Dynamic_Message_Strategy.h 95839 2012-06-07 10:13:33Z johnnyw $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
*/
@@ -43,17 +43,15 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* 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 members 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.
-
+ /// 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
@@ -154,13 +152,13 @@ protected:
class ACE_Export ACE_Deadline_Message_Strategy : public ACE_Dynamic_Message_Strategy
{
public:
- /// Ctor, with all arguments defaulted.
+ /// Constructor 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 destructor.
virtual ~ACE_Deadline_Message_Strategy (void);
/// Dynamic priority conversion function based on time to deadline.
diff --git a/dep/acelite/ace/ETCL/ETCL_Constraint.cpp b/dep/acelite/ace/ETCL/ETCL_Constraint.cpp
new file mode 100644
index 00000000000..638f7c50984
--- /dev/null
+++ b/dep/acelite/ace/ETCL/ETCL_Constraint.cpp
@@ -0,0 +1,655 @@
+// -*- C++ -*-
+// $Id: ETCL_Constraint.cpp 92173 2010-10-07 12:36:17Z olli $
+
+#include "ace/ACE.h"
+
+#include "ace/ETCL/ETCL_Constraint.h"
+#include "ace/ETCL/ETCL_Constraint_Visitor.h"
+
+#if ! defined (__ACE_INLINE__)
+#include "ace/ETCL/ETCL_Constraint.inl"
+#endif /* __ACE_INLINE__ */
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+ETCL_Constraint::ETCL_Constraint (void)
+{
+}
+
+ETCL_Constraint::~ETCL_Constraint (void)
+{
+}
+
+int
+ETCL_Constraint::accept (ETCL_Constraint_Visitor * /* visitor */)
+{
+ return 0;
+}
+
+// ****************************************************************
+
+ETCL_Literal_Constraint::ETCL_Literal_Constraint (
+ const ETCL_Literal_Constraint & lit
+ )
+ : ETCL_Constraint(),
+ type_ (ACE_ETCL_UNKNOWN)
+{
+ this->copy (lit);
+}
+
+ETCL_Literal_Constraint::ETCL_Literal_Constraint (
+ ACE_CDR::ULong uinteger) : type_ (ACE_ETCL_UNSIGNED)
+{
+ this->op_.uinteger_ = uinteger;
+}
+
+ETCL_Literal_Constraint::ETCL_Literal_Constraint (
+ ACE_CDR::Long integer) : type_ (ACE_ETCL_SIGNED)
+{
+ this->op_.integer_ = integer;
+}
+
+ETCL_Literal_Constraint::ETCL_Literal_Constraint (
+ ACE_CDR::Boolean boolean
+ )
+ : type_ (ACE_ETCL_BOOLEAN)
+{
+ this->op_.bool_ = boolean;
+}
+
+ETCL_Literal_Constraint::ETCL_Literal_Constraint (
+ ACE_CDR::Double doub) : type_ (ACE_ETCL_DOUBLE)
+{
+ this->op_.double_ = doub;
+}
+
+ETCL_Literal_Constraint::ETCL_Literal_Constraint (
+ const char* str) : type_ (ACE_ETCL_STRING)
+{
+ this->op_.str_ = ACE::strnew (str);
+}
+
+ETCL_Literal_Constraint::~ETCL_Literal_Constraint (void)
+{
+ if (this->type_ == ACE_ETCL_STRING)
+ {
+ ACE::strdelete (this->op_.str_);
+ }
+}
+
+int
+ETCL_Literal_Constraint::accept (ETCL_Constraint_Visitor* visitor)
+{
+ return visitor->visit_literal (this);
+}
+
+Literal_Type
+ETCL_Literal_Constraint::expr_type (void) const
+{
+ return this->type_;
+}
+
+void
+ETCL_Literal_Constraint::operator= (const ETCL_Literal_Constraint& co)
+{
+ this->copy (co);
+}
+
+ETCL_Literal_Constraint::operator ACE_CDR::Boolean (void) const
+{
+ return (this->type_ == ACE_ETCL_BOOLEAN) ? this->op_.bool_ : false;
+}
+
+ETCL_Literal_Constraint::operator ACE_CDR::ULong (void) const
+{
+ switch (this->type_)
+ {
+ case ACE_ETCL_UNSIGNED:
+ return this->op_.uinteger_;
+ case ACE_ETCL_SIGNED:
+ case ACE_ETCL_INTEGER:
+ return
+ (this->op_.integer_ > 0) ? (ACE_CDR::ULong) this->op_.integer_ : 0;
+ case ACE_ETCL_DOUBLE:
+ return
+ (this->op_.double_ > 0) ?
+ ((this->op_.double_ > ACE_UINT32_MAX) ?
+ ACE_UINT32_MAX :
+ (ACE_CDR::ULong) this->op_.double_)
+ : 0;
+ default:
+ return 0;
+ }
+}
+
+ETCL_Literal_Constraint::operator ACE_CDR::Long (void) const
+{
+ switch (this->type_)
+ {
+ case ACE_ETCL_SIGNED:
+ case ACE_ETCL_INTEGER:
+ return this->op_.integer_;
+ case ACE_ETCL_UNSIGNED:
+ return
+ (this->op_.uinteger_ > (ACE_CDR::ULong) ACE_INT32_MAX) ?
+ ACE_INT32_MAX : (ACE_CDR::Long) this->op_.uinteger_;
+ case ACE_ETCL_DOUBLE:
+ return
+ (this->op_.double_ > 0) ?
+ ((this->op_.double_ > ACE_INT32_MAX) ?
+ ACE_INT32_MAX :
+ (ACE_CDR::Long) this->op_.double_) :
+ ((this->op_.double_ < ACE_INT32_MIN) ?
+ ACE_INT32_MIN :
+ (ACE_CDR::Long) this->op_.double_);
+ default:
+ return 0;
+ }
+}
+
+ETCL_Literal_Constraint::operator ACE_CDR::Double (void) const
+{
+ switch (this->type_)
+ {
+ case ACE_ETCL_DOUBLE:
+ return this->op_.double_;
+ case ACE_ETCL_SIGNED:
+ case ACE_ETCL_INTEGER:
+ return (ACE_CDR::Double) this->op_.integer_;
+ case ACE_ETCL_UNSIGNED:
+ return (ACE_CDR::Double) this->op_.uinteger_;
+ default:
+ return 0.0;
+ }
+}
+
+ETCL_Literal_Constraint::operator const char* (void) const
+{
+ switch (this->type_)
+ {
+ case ACE_ETCL_STRING:
+ return this->op_.str_;
+ default:
+ return 0;
+ }
+}
+
+bool
+ETCL_Literal_Constraint::operator== (const ETCL_Literal_Constraint & rhs)
+{
+ bool return_value = false;
+ Literal_Type widest_type = this->widest_type (rhs);
+
+ switch (widest_type)
+ {
+ case ACE_ETCL_STRING:
+ return_value = (ACE_OS::strcmp ((const char*) *this, (const char*) rhs) == 0);
+ break;
+ case ACE_ETCL_DOUBLE:
+ return_value = ACE::is_equal ((ACE_CDR::Double) *this, (ACE_CDR::Double) rhs);
+ break;
+ case ACE_ETCL_INTEGER:
+ case ACE_ETCL_SIGNED:
+ return_value = (ACE_CDR::Long) *this == (ACE_CDR::Long) rhs;
+ break;
+ case ACE_ETCL_UNSIGNED:
+ return_value = (ACE_CDR::ULong) *this == (ACE_CDR::ULong) rhs;
+ break;
+ case ACE_ETCL_BOOLEAN:
+ return_value = (ACE_CDR::Boolean) *this == (ACE_CDR::Boolean) rhs;
+ break;
+ default:
+ break;
+ }
+
+ return return_value;
+}
+
+bool
+ETCL_Literal_Constraint::operator< (const ETCL_Literal_Constraint & rhs)
+{
+ bool return_value = false;
+ Literal_Type widest_type = this->widest_type (rhs);
+
+ switch (widest_type)
+ {
+ case ACE_ETCL_STRING:
+ return_value = (ACE_OS::strcmp ((const char*) *this, (const char*) rhs) < 0);
+ break;
+ case ACE_ETCL_DOUBLE:
+ return_value = (ACE_CDR::Double) *this < (ACE_CDR::Double) rhs;
+ break;
+ case ACE_ETCL_INTEGER:
+ case ACE_ETCL_SIGNED:
+ return_value = (ACE_CDR::Long) *this < (ACE_CDR::Long) rhs;
+ break;
+ case ACE_ETCL_UNSIGNED:
+ return_value = (ACE_CDR::ULong) *this < (ACE_CDR::ULong) rhs;
+ break;
+ case ACE_ETCL_BOOLEAN:
+ return_value = (ACE_CDR::Boolean) *this < (ACE_CDR::Boolean) rhs;
+ break;
+ default:
+ break;
+ }
+
+ return return_value;
+}
+
+bool
+ETCL_Literal_Constraint::operator> (const ETCL_Literal_Constraint & rhs)
+{
+ bool return_value = false;
+ Literal_Type widest_type = this->widest_type (rhs);
+
+ switch (widest_type)
+ {
+ case ACE_ETCL_STRING:
+ return_value = (ACE_OS::strcmp ((const char*) *this, (const char*) rhs) > 0);
+ break;
+ case ACE_ETCL_DOUBLE:
+ return_value = (ACE_CDR::Double) *this > (ACE_CDR::Double) rhs;
+ break;
+ case ACE_ETCL_INTEGER:
+ case ACE_ETCL_SIGNED:
+ return_value = (ACE_CDR::Long) *this > (ACE_CDR::Long) rhs;
+ break;
+ case ACE_ETCL_UNSIGNED:
+ return_value = (ACE_CDR::ULong) *this > (ACE_CDR::ULong) rhs;
+ break;
+ default:
+ break;
+ }
+
+ return return_value;
+}
+
+ETCL_Literal_Constraint
+ETCL_Literal_Constraint::operator+ (const ETCL_Literal_Constraint & rhs)
+{
+ Literal_Type widest_type = this->widest_type (rhs);
+
+ switch (widest_type)
+ {
+ case ACE_ETCL_DOUBLE:
+ {
+ ACE_CDR::Double result = (ACE_CDR::Double) *this + (ACE_CDR::Double) rhs;
+ return ETCL_Literal_Constraint ((ACE_CDR::Double) result);
+ }
+ case ACE_ETCL_INTEGER:
+ case ACE_ETCL_SIGNED:
+ {
+ ACE_CDR::Long result = (ACE_CDR::Long) *this + (ACE_CDR::Long) rhs;
+ return ETCL_Literal_Constraint ((ACE_CDR::Long) result);
+ }
+ case ACE_ETCL_UNSIGNED:
+ {
+ ACE_CDR::ULong result = (ACE_CDR::ULong) *this + (ACE_CDR::ULong) rhs;
+ return ETCL_Literal_Constraint ((ACE_CDR::ULong) result);
+ }
+ default:
+ return ETCL_Literal_Constraint ((ACE_CDR::Long) 0);
+ }
+}
+
+ETCL_Literal_Constraint
+ETCL_Literal_Constraint::operator- (const ETCL_Literal_Constraint & rhs)
+{
+ Literal_Type widest_type = this->widest_type (rhs);
+
+ switch (widest_type)
+ {
+ case ACE_ETCL_DOUBLE:
+ {
+ ACE_CDR::Double result = (ACE_CDR::Double) *this - (ACE_CDR::Double) rhs;
+ return ETCL_Literal_Constraint ((ACE_CDR::Double) result);
+ }
+ case ACE_ETCL_INTEGER:
+ case ACE_ETCL_SIGNED:
+ {
+ ACE_CDR::Long result = (ACE_CDR::Long) *this - (ACE_CDR::Long) rhs;
+ return ETCL_Literal_Constraint ((ACE_CDR::Long) result);
+ }
+ case ACE_ETCL_UNSIGNED:
+ {
+ ACE_CDR::ULong result = (ACE_CDR::ULong) *this - (ACE_CDR::ULong) rhs;
+ return ETCL_Literal_Constraint ((ACE_CDR::ULong) result);
+ }
+ default:
+ return ETCL_Literal_Constraint ((ACE_CDR::Long) 0);
+ }
+}
+
+ETCL_Literal_Constraint
+ETCL_Literal_Constraint::operator* (const ETCL_Literal_Constraint & rhs)
+{
+ Literal_Type widest_type = this->widest_type (rhs);
+
+ switch (widest_type)
+ {
+ case ACE_ETCL_DOUBLE:
+ {
+ ACE_CDR::Double result = (ACE_CDR::Double) *this * (ACE_CDR::Double) rhs;
+ return ETCL_Literal_Constraint ((ACE_CDR::Double) result);
+ }
+ case ACE_ETCL_INTEGER:
+ case ACE_ETCL_SIGNED:
+ {
+ ACE_CDR::Long result = (ACE_CDR::Long) *this * (ACE_CDR::Long) rhs;
+ return ETCL_Literal_Constraint ((ACE_CDR::Long) result);
+ }
+ case ACE_ETCL_UNSIGNED:
+ {
+ ACE_CDR::ULong result = (ACE_CDR::ULong) *this * (ACE_CDR::ULong) rhs;
+ return ETCL_Literal_Constraint ((ACE_CDR::ULong) result);
+ }
+ default:
+ return ETCL_Literal_Constraint ((ACE_CDR::Long) 0);
+ }
+}
+
+ETCL_Literal_Constraint
+ETCL_Literal_Constraint::operator/ (const ETCL_Literal_Constraint & rhs)
+{
+ Literal_Type widest_type = this->widest_type (rhs);
+
+ switch (widest_type)
+ {
+ case ACE_ETCL_DOUBLE:
+ {
+ if (ACE::is_equal ((ACE_CDR::Double) rhs, 0.0))
+ return ETCL_Literal_Constraint ((ACE_CDR::Double) 0.0);
+
+ ACE_CDR::Double result = (ACE_CDR::Double) *this / (ACE_CDR::Double) rhs;
+ return ETCL_Literal_Constraint ((ACE_CDR::Double) result);
+ }
+ case ACE_ETCL_INTEGER:
+ case ACE_ETCL_SIGNED:
+ {
+ if ((ACE_CDR::Long) rhs == 0)
+ return ETCL_Literal_Constraint ((ACE_CDR::Long) 0);
+
+ ACE_CDR::Long result = (ACE_CDR::Long) *this / (ACE_CDR::Long) rhs;
+ return ETCL_Literal_Constraint ((ACE_CDR::Long) result);
+ }
+ case ACE_ETCL_UNSIGNED:
+ {
+ if ((ACE_CDR::ULong) rhs == 0)
+ return ETCL_Literal_Constraint ((ACE_CDR::ULong) 0);
+
+ ACE_CDR::ULong result = (ACE_CDR::ULong) *this / (ACE_CDR::ULong) rhs;
+ return ETCL_Literal_Constraint ((ACE_CDR::ULong) result);
+ }
+ default:
+ return ETCL_Literal_Constraint ((ACE_CDR::Long) 0);
+ }
+}
+
+ETCL_Literal_Constraint
+ETCL_Literal_Constraint::operator- (void)
+{
+ switch (this->type_)
+ {
+ case ACE_ETCL_DOUBLE:
+ return ETCL_Literal_Constraint (- this->op_.double_);
+ case ACE_ETCL_INTEGER:
+ case ACE_ETCL_SIGNED:
+ return ETCL_Literal_Constraint (- this->op_.integer_);
+ case ACE_ETCL_UNSIGNED:
+ return ETCL_Literal_Constraint (- (ACE_CDR::Long) this->op_.uinteger_);
+ default:
+ return ETCL_Literal_Constraint ((ACE_CDR::Long) 0);
+ }
+}
+
+Literal_Type
+ETCL_Literal_Constraint::widest_type (const ETCL_Literal_Constraint & rhs)
+{
+ Literal_Type rhs_type = rhs.expr_type ();
+ Literal_Type return_value = rhs_type;
+
+ if (rhs_type != this->type_)
+ {
+ if (rhs_type > this->type_)
+ {
+ return_value = rhs_type;
+ }
+ else
+ {
+ return_value = this->type_;
+ }
+ }
+
+ return return_value;
+}
+
+void
+ETCL_Literal_Constraint::copy (const ETCL_Literal_Constraint &lit)
+{
+ if (this->type_ == ACE_ETCL_STRING)
+ {
+ ACE::strdelete (this->op_.str_);
+ }
+
+ this->type_ = lit.type_;
+
+ switch (this->type_)
+ {
+ case ACE_ETCL_STRING:
+ this->op_.str_ = ACE::strnew (lit.op_.str_);
+ break;
+ case ACE_ETCL_DOUBLE:
+ this->op_.double_ = lit.op_.double_;
+ break;
+ case ACE_ETCL_UNSIGNED:
+ this->op_.uinteger_ = lit.op_.uinteger_;
+ break;
+ case ACE_ETCL_INTEGER:
+ case ACE_ETCL_SIGNED:
+ this->op_.integer_ = lit.op_.integer_;
+ break;
+ case ACE_ETCL_BOOLEAN:
+ this->op_.bool_ = lit.op_.bool_;
+ break;
+ default:
+ this->type_ = ACE_ETCL_UNKNOWN;
+ break;
+ }
+}
+
+// ****************************************************************
+
+int
+ETCL_Identifier::accept (ETCL_Constraint_Visitor *visitor)
+{
+ return visitor->visit_identifier (this);
+}
+
+// ****************************************************************
+
+ETCL_Union_Value::~ETCL_Union_Value (void)
+{
+ delete this->string_;
+ delete this->integer_;
+}
+
+int
+ETCL_Union_Value::accept (ETCL_Constraint_Visitor *visitor)
+{
+ return visitor->visit_union_value (this);
+}
+
+// ****************************************************************
+
+ETCL_Union_Pos::~ETCL_Union_Pos (void)
+{
+ delete this->component_;
+ delete this->union_value_;
+}
+
+int
+ETCL_Union_Pos::accept (ETCL_Constraint_Visitor *visitor)
+{
+ return visitor->visit_union_pos (this);
+}
+
+// ****************************************************************
+
+ETCL_Component_Pos::~ETCL_Component_Pos (void)
+{
+ delete this->component_;
+ delete this->integer_;
+}
+
+int
+ETCL_Component_Pos::accept (ETCL_Constraint_Visitor *visitor)
+{
+ return visitor->visit_component_pos (this);
+}
+
+// ****************************************************************
+
+ETCL_Component_Assoc::~ETCL_Component_Assoc (void)
+{
+ delete this->component_;
+ delete this->identifier_;
+}
+
+int
+ETCL_Component_Assoc::accept (ETCL_Constraint_Visitor *visitor)
+{
+ return visitor->visit_component_assoc (this);
+}
+
+// ****************************************************************
+
+ETCL_Component_Array::~ETCL_Component_Array (void)
+{
+ delete this->component_;
+ delete this->integer_;
+}
+
+int
+ETCL_Component_Array::accept (ETCL_Constraint_Visitor *visitor)
+{
+ return visitor->visit_component_array (this);
+}
+
+// ****************************************************************
+
+ETCL_Special::~ETCL_Special (void)
+{}
+
+int
+ETCL_Special::accept (ETCL_Constraint_Visitor *visitor)
+{
+ return visitor->visit_special (this);
+}
+
+// ****************************************************************
+
+ETCL_Component::~ETCL_Component (void)
+{
+ delete this->component_;
+ delete this->identifier_;
+}
+
+int
+ETCL_Component::accept (ETCL_Constraint_Visitor *visitor)
+{
+ return visitor->visit_component (this);
+}
+
+// ****************************************************************
+
+ETCL_Dot::~ETCL_Dot (void)
+{
+ delete this->component_;
+}
+
+int
+ETCL_Dot::accept (ETCL_Constraint_Visitor *visitor)
+{
+ return visitor->visit_dot (this);
+}
+
+// ****************************************************************
+
+ETCL_Eval::~ETCL_Eval (void)
+{
+ delete this->component_;
+}
+
+int
+ETCL_Eval::accept (ETCL_Constraint_Visitor *visitor)
+{
+ return visitor->visit_eval (this);
+}
+
+// ****************************************************************
+
+ETCL_Default::~ETCL_Default (void)
+{
+ delete this->component_;
+}
+
+int
+ETCL_Default::accept (ETCL_Constraint_Visitor *visitor)
+{
+ return visitor->visit_default (this);
+}
+
+// ****************************************************************
+
+ETCL_Exist::~ETCL_Exist (void)
+{
+ delete this->component_;
+}
+
+int
+ETCL_Exist::accept (ETCL_Constraint_Visitor *visitor)
+{
+ return visitor->visit_exist (this);
+}
+
+// ****************************************************************
+
+ETCL_Unary_Expr::~ETCL_Unary_Expr (void)
+{
+ delete this->subexpr_;
+}
+
+int
+ETCL_Unary_Expr::accept (ETCL_Constraint_Visitor *visitor)
+{
+ return visitor->visit_unary_expr (this);
+}
+
+// ****************************************************************
+
+ETCL_Binary_Expr::~ETCL_Binary_Expr (void)
+{
+ delete this->lhs_;
+ delete this->rhs_;
+}
+
+int
+ETCL_Binary_Expr::accept (ETCL_Constraint_Visitor *visitor)
+{
+ return visitor->visit_binary_expr (this);
+}
+
+// ****************************************************************
+
+ETCL_Preference::~ETCL_Preference (void)
+{
+ delete this->subexpr_;
+}
+
+int
+ETCL_Preference::accept (ETCL_Constraint_Visitor *visitor)
+{
+ return visitor->visit_preference (this);
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/ETCL/ETCL_Constraint.h b/dep/acelite/ace/ETCL/ETCL_Constraint.h
new file mode 100644
index 00000000000..0762d190880
--- /dev/null
+++ b/dep/acelite/ace/ETCL/ETCL_Constraint.h
@@ -0,0 +1,416 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file ETCL_Constraint.h
+ *
+ * $Id: ETCL_Constraint.h 94030 2011-05-08 17:58:47Z johnnyw $
+ *
+ * @author Carlos O'Ryan (coryan@cs.wustl.edu)
+ * @author Jeff Parsons (j.parsons@vanderbilt.edu)
+ */
+//=============================================================================
+
+#ifndef ACE_ETCL_CONSTRAINT_H
+#define ACE_ETCL_CONSTRAINT_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/SString.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/CDR_Base.h"
+
+#include "ace/ETCL/ace_etcl_export.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+typedef unsigned long Literal_Type;
+
+class ETCL_Constraint_Visitor;
+
+class ACE_ETCL_Export ETCL_Constraint
+{
+public:
+ /// Constructor and destructor
+ ETCL_Constraint (void);
+ virtual ~ETCL_Constraint (void);
+
+ virtual int accept (ETCL_Constraint_Visitor *visitor);
+
+protected:
+ enum
+ {
+ ACE_ETCL_STRING,
+ ACE_ETCL_DOUBLE,
+ ACE_ETCL_UNSIGNED,
+ ACE_ETCL_SIGNED,
+ ACE_ETCL_INTEGER,
+ ACE_ETCL_BOOLEAN,
+ ACE_ETCL_COMPONENT,
+ ACE_ETCL_UNKNOWN
+ };
+};
+
+// ****************************************************************
+
+class ACE_ETCL_Export ETCL_Literal_Constraint
+ : public ETCL_Constraint
+{
+public:
+ ETCL_Literal_Constraint (void);
+
+ // = Constructors for each of the various types of literals.
+
+ explicit ETCL_Literal_Constraint (ACE_CDR::ULong uinteger);
+ explicit ETCL_Literal_Constraint (ACE_CDR::Long integer);
+ explicit ETCL_Literal_Constraint (ACE_CDR::Boolean boolean);
+ explicit ETCL_Literal_Constraint (ACE_CDR::Double doub);
+ explicit ETCL_Literal_Constraint (const char* str);
+
+ /// Copy constructor
+ ETCL_Literal_Constraint (const ETCL_Literal_Constraint& lit);
+
+ /// Destructor.
+ virtual ~ETCL_Literal_Constraint(void);
+
+ /// Visitor accept method.
+ virtual int accept (ETCL_Constraint_Visitor* visitor);
+
+ Literal_Type expr_type (void) const;
+
+ /// Assignment operator.
+ void operator= (const ETCL_Literal_Constraint& co);
+
+ // Conversion routines.
+ operator ACE_CDR::Boolean (void) const;
+ operator ACE_CDR::ULong (void) const;
+ operator ACE_CDR::Long (void) const;
+ operator ACE_CDR::Double (void) const;
+ operator const char* (void) const;
+
+ // Return the type represented by this MysteryOperand.
+
+ // = Boolean operators.
+
+ bool
+ operator< (const ETCL_Literal_Constraint& rhs);
+
+ bool
+ operator<= (const ETCL_Literal_Constraint& rhs);
+
+ bool
+ operator> (const ETCL_Literal_Constraint& rhs);
+
+ bool
+ operator>= (const ETCL_Literal_Constraint& rhs);
+
+ bool
+ operator== (const ETCL_Literal_Constraint& rhs);
+
+ bool
+ operator!= (const ETCL_Literal_Constraint& rhs);
+
+ // = Arithmetic operators.
+
+ ETCL_Literal_Constraint
+ operator+ (const ETCL_Literal_Constraint& rhs);
+
+ ETCL_Literal_Constraint
+ operator- (const ETCL_Literal_Constraint& rhs);
+
+ ETCL_Literal_Constraint
+ operator* (const ETCL_Literal_Constraint& rhs);
+
+ ETCL_Literal_Constraint
+ operator/ (const ETCL_Literal_Constraint& rhs);
+
+ // Unary minus.
+ ETCL_Literal_Constraint
+ operator- (void);
+
+ /// Ensure both operands are of the same simple numeric type.
+ virtual Literal_Type
+ widest_type (const ETCL_Literal_Constraint& rhs);
+
+protected:
+ /// Private copy method.
+ void copy (const ETCL_Literal_Constraint& co);
+
+ /// Union of the possible literal types.
+ union
+ {
+ char* str_;
+ ACE_CDR::ULong uinteger_;
+ ACE_CDR::Long integer_;
+ ACE_CDR::Boolean bool_;
+ ACE_CDR::Double double_;
+ } op_;
+
+ /// The actual types of the ETCL_Literal_Constraint.
+ Literal_Type type_;
+};
+
+// ****************************************************************
+
+class ACE_ETCL_Export ETCL_Identifier : public ETCL_Constraint
+{
+public:
+ ETCL_Identifier (const char *value);
+
+ /// Get the value
+ const char *value (void) const;
+
+ // = The Constraint methods.
+ int accept (ETCL_Constraint_Visitor *visitor);
+
+private:
+ /// The value
+ ACE_CString string_;
+};
+
+// ****************************************************************
+
+class ACE_ETCL_Export ETCL_Union_Value : public ETCL_Constraint
+{
+public:
+ ETCL_Union_Value (int sign,
+ ETCL_Constraint *integer);
+ explicit ETCL_Union_Value (ETCL_Constraint *string = 0);
+ virtual ~ETCL_Union_Value (void);
+
+ int sign (void) const;
+ ETCL_Literal_Constraint *integer (void) const;
+ ETCL_Literal_Constraint *string (void) const;
+
+ virtual int accept (ETCL_Constraint_Visitor *visitor);
+
+private:
+ int sign_;
+ ETCL_Literal_Constraint *integer_;
+ ETCL_Literal_Constraint *string_;
+};
+
+class ACE_ETCL_Export ETCL_Union_Pos : public ETCL_Constraint
+{
+public:
+ ETCL_Union_Pos (ETCL_Constraint *union_value = 0,
+ ETCL_Constraint *component = 0);
+ virtual ~ETCL_Union_Pos (void);
+
+ ETCL_Union_Value *union_value (void) const;
+ ETCL_Constraint *component (void) const;
+
+ virtual int accept (ETCL_Constraint_Visitor *visitor);
+
+private:
+ ETCL_Union_Value *union_value_;
+ ETCL_Constraint *component_;
+};
+
+class ACE_ETCL_Export ETCL_Component_Pos : public ETCL_Constraint
+{
+public:
+ ETCL_Component_Pos (ETCL_Constraint *integer = 0,
+ ETCL_Constraint *component = 0);
+ virtual ~ETCL_Component_Pos (void);
+
+ ETCL_Literal_Constraint *integer (void) const;
+ ETCL_Constraint *component (void) const;
+
+ virtual int accept (ETCL_Constraint_Visitor *visitor);
+
+private:
+ ETCL_Literal_Constraint *integer_;
+ ETCL_Constraint *component_;
+};
+
+class ACE_ETCL_Export ETCL_Component_Assoc : public ETCL_Constraint
+{
+public:
+ ETCL_Component_Assoc (ETCL_Constraint *identifier = 0,
+ ETCL_Constraint *component = 0);
+ virtual ~ETCL_Component_Assoc (void);
+
+ ETCL_Identifier *identifier (void) const;
+ ETCL_Constraint *component (void) const;
+
+ virtual int accept (ETCL_Constraint_Visitor *visitor);
+
+private:
+ ETCL_Identifier *identifier_;
+ ETCL_Constraint *component_;
+};
+
+class ACE_ETCL_Export ETCL_Component_Array : public ETCL_Constraint
+{
+public:
+ ETCL_Component_Array (ETCL_Constraint *integer = 0,
+ ETCL_Constraint *component = 0);
+ virtual ~ETCL_Component_Array (void);
+
+ ETCL_Literal_Constraint *integer (void) const;
+ ETCL_Constraint *component (void) const;
+
+ virtual int accept (ETCL_Constraint_Visitor *visitor);
+
+private:
+ ETCL_Literal_Constraint *integer_;
+ ETCL_Constraint *component_;
+};
+
+class ACE_ETCL_Export ETCL_Special : public ETCL_Constraint
+{
+public:
+ ETCL_Special (void);
+ ETCL_Special (int type);
+ virtual ~ETCL_Special (void);
+
+ int type (void) const;
+
+ virtual int accept (ETCL_Constraint_Visitor *visitor);
+
+private:
+ int type_;
+};
+
+class ACE_ETCL_Export ETCL_Component : public ETCL_Constraint
+{
+public:
+ ETCL_Component (ETCL_Constraint *identifier = 0,
+ ETCL_Constraint *component = 0);
+ virtual ~ETCL_Component (void);
+
+ ETCL_Identifier *identifier (void) const;
+ ETCL_Constraint *component (void) const;
+
+ virtual int accept (ETCL_Constraint_Visitor *visitor);
+
+private:
+ ETCL_Identifier *identifier_;
+ ETCL_Constraint *component_;
+};
+
+class ACE_ETCL_Export ETCL_Dot : public ETCL_Constraint
+{
+public:
+ explicit ETCL_Dot (ETCL_Constraint *component = 0);
+ virtual ~ETCL_Dot (void);
+
+ ETCL_Constraint *component (void) const;
+
+ virtual int accept (ETCL_Constraint_Visitor *visitor);
+
+private:
+ ETCL_Constraint *component_;
+};
+
+class ACE_ETCL_Export ETCL_Eval : public ETCL_Constraint
+{
+public:
+ explicit ETCL_Eval (ETCL_Constraint *component = 0);
+ virtual ~ETCL_Eval (void);
+
+ ETCL_Constraint *component (void) const;
+
+ virtual int accept (ETCL_Constraint_Visitor *visitor);
+
+private:
+ ETCL_Constraint *component_;
+};
+
+class ACE_ETCL_Export ETCL_Default : public ETCL_Constraint
+{
+public:
+ explicit ETCL_Default (ETCL_Constraint *component = 0);
+ virtual ~ETCL_Default (void);
+
+ ETCL_Constraint *component (void) const;
+
+ virtual int accept (ETCL_Constraint_Visitor *visitor);
+
+private:
+ ETCL_Constraint *component_;
+};
+
+class ACE_ETCL_Export ETCL_Exist : public ETCL_Constraint
+{
+public:
+ explicit ETCL_Exist (ETCL_Constraint *component = 0);
+ virtual ~ETCL_Exist (void);
+
+ ETCL_Constraint *component (void) const;
+
+ virtual int accept (ETCL_Constraint_Visitor *visitor);
+
+private:
+ ETCL_Constraint *component_;
+};
+
+class ACE_ETCL_Export ETCL_Unary_Expr : public ETCL_Constraint
+{
+public:
+ ETCL_Unary_Expr (int type,
+ ETCL_Constraint *subexpr);
+ virtual ~ETCL_Unary_Expr (void);
+
+ int type (void) const;
+ ETCL_Constraint *subexpr (void) const;
+
+ int accept (ETCL_Constraint_Visitor *visitor);
+
+private:
+ int type_;
+ ETCL_Constraint *subexpr_;
+};
+
+class ACE_ETCL_Export ETCL_Binary_Expr : public ETCL_Constraint
+{
+public:
+ ETCL_Binary_Expr (int type,
+ ETCL_Constraint *lhs,
+ ETCL_Constraint *rhs);
+ virtual ~ETCL_Binary_Expr (void);
+
+ int type (void) const;
+ ETCL_Constraint *rhs (void) const;
+ ETCL_Constraint *lhs (void) const;
+
+ int accept (ETCL_Constraint_Visitor *visitor);
+
+private:
+ int type_;
+ ETCL_Constraint *lhs_;
+ ETCL_Constraint *rhs_;
+};
+
+class ACE_ETCL_Export ETCL_Preference : public ETCL_Constraint
+{
+public:
+ ETCL_Preference (void);
+ ETCL_Preference (int type,
+ ETCL_Constraint *subexpr = 0);
+ virtual ~ETCL_Preference (void);
+
+ int type (void) const;
+ ETCL_Constraint *subexpr (void) const;
+
+ virtual int accept (ETCL_Constraint_Visitor *visitor);
+
+private:
+ int type_;
+ ETCL_Constraint *subexpr_;
+};
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/ETCL/ETCL_Constraint.inl"
+#endif /* __ACE_INLINE__ */
+
+#include /**/ "ace/post.h"
+
+#endif // ACE_ETCL_CONSTRAINT_H
diff --git a/dep/acelite/ace/ETCL/ETCL_Constraint.inl b/dep/acelite/ace/ETCL/ETCL_Constraint.inl
new file mode 100644
index 00000000000..a56cf39aa46
--- /dev/null
+++ b/dep/acelite/ace/ETCL/ETCL_Constraint.inl
@@ -0,0 +1,349 @@
+// -*- C++ -*-
+// $Id: ETCL_Constraint.inl 95595 2012-03-07 13:33:25Z johnnyw $
+
+// ****************************************************************
+
+ACE_INLINE
+ETCL_Literal_Constraint::ETCL_Literal_Constraint (void)
+ : type_ (ACE_ETCL_UNKNOWN)
+{
+}
+
+// ****************************************************************
+
+ACE_INLINE
+ETCL_Identifier::ETCL_Identifier (const char *value)
+ : string_ (value)
+{
+}
+
+ACE_INLINE const char *
+ETCL_Identifier::value (void) const
+{
+ return this->string_.c_str ();
+}
+
+
+// ****************************************************************
+
+ACE_INLINE
+ETCL_Union_Value::ETCL_Union_Value (int sign,
+ ETCL_Constraint *integer)
+ : sign_ (sign),
+ string_ (0)
+{
+ this->integer_ =
+ dynamic_cast<ETCL_Literal_Constraint*> (integer);
+}
+
+ACE_INLINE
+ETCL_Union_Value::ETCL_Union_Value (ETCL_Constraint *string)
+ : sign_ (0),
+ integer_ (0)
+{
+ this->string_ =
+ dynamic_cast<ETCL_Literal_Constraint*> (string);
+}
+
+ACE_INLINE int
+ETCL_Union_Value::sign (void) const
+{
+ return this->sign_;
+}
+
+ACE_INLINE ETCL_Literal_Constraint *
+ETCL_Union_Value::integer (void) const
+{
+ return this->integer_;
+}
+
+ACE_INLINE ETCL_Literal_Constraint *
+ETCL_Union_Value::string (void) const
+{
+ return this->string_;
+}
+
+// ****************************************************************
+
+ACE_INLINE
+ETCL_Union_Pos::ETCL_Union_Pos (ETCL_Constraint *union_value,
+ ETCL_Constraint *component)
+ : component_ (component)
+{
+ this->union_value_ =
+ dynamic_cast<ETCL_Union_Value*> (union_value);
+}
+
+ACE_INLINE ETCL_Union_Value *
+ETCL_Union_Pos::union_value (void) const
+{
+ return this->union_value_;
+}
+
+ACE_INLINE ETCL_Constraint *
+ETCL_Union_Pos::component (void) const
+{
+ return this->component_;
+}
+
+// ****************************************************************
+
+ACE_INLINE
+ETCL_Component_Pos::ETCL_Component_Pos (
+ ETCL_Constraint *integer,
+ ETCL_Constraint *component)
+ : component_ (component)
+{
+ this->integer_ =
+ dynamic_cast<ETCL_Literal_Constraint*> (integer);
+}
+
+ACE_INLINE ETCL_Literal_Constraint *
+ETCL_Component_Pos::integer (void) const
+{
+ return this->integer_;
+}
+
+ACE_INLINE ETCL_Constraint *
+ETCL_Component_Pos::component (void) const
+{
+ return this->component_;
+}
+
+// ****************************************************************
+
+ACE_INLINE
+ETCL_Component_Assoc::ETCL_Component_Assoc (
+ ETCL_Constraint *identifier,
+ ETCL_Constraint *component)
+ : component_ (component)
+{
+ this->identifier_ =
+ dynamic_cast<ETCL_Identifier*> (identifier);
+}
+
+ACE_INLINE ETCL_Identifier *
+ETCL_Component_Assoc::identifier (void) const
+{
+ return this->identifier_;
+}
+
+ACE_INLINE ETCL_Constraint *
+ETCL_Component_Assoc::component (void) const
+{
+ return this->component_;
+}
+
+// ****************************************************************
+
+ACE_INLINE
+ETCL_Component_Array::ETCL_Component_Array (
+ ETCL_Constraint *integer,
+ ETCL_Constraint *component)
+ : component_ (component)
+{
+ this->integer_ =
+ dynamic_cast<ETCL_Literal_Constraint*> (integer);
+}
+
+ACE_INLINE ETCL_Literal_Constraint *
+ETCL_Component_Array::integer (void) const
+{
+ return this->integer_;
+}
+
+ACE_INLINE ETCL_Constraint *
+ETCL_Component_Array::component (void) const
+{
+ return this->component_;
+}
+
+// ****************************************************************
+
+ACE_INLINE
+ETCL_Special::ETCL_Special (void)
+ : type_ (0)
+{}
+
+ACE_INLINE
+ETCL_Special::ETCL_Special (int type)
+ : type_ (type)
+{}
+
+ACE_INLINE int
+ETCL_Special::type (void) const
+{
+ return this->type_;
+}
+
+// ****************************************************************
+
+ACE_INLINE
+ETCL_Component::ETCL_Component (ETCL_Constraint *identifier,
+ ETCL_Constraint *component)
+ : component_ (component)
+{
+ this->identifier_ =
+ dynamic_cast<ETCL_Identifier*> (identifier);
+}
+
+ACE_INLINE ETCL_Identifier *
+ETCL_Component::identifier (void) const
+{
+ return this->identifier_;
+}
+
+ACE_INLINE ETCL_Constraint *
+ETCL_Component::component (void) const
+{
+ return this->component_;
+}
+
+// ****************************************************************
+
+ACE_INLINE
+ETCL_Dot::ETCL_Dot (ETCL_Constraint *component)
+ : component_ (component)
+{
+}
+
+ACE_INLINE ETCL_Constraint *
+ETCL_Dot::component (void) const
+{
+ return this->component_;
+}
+
+// ****************************************************************
+
+ACE_INLINE
+ETCL_Eval::ETCL_Eval (ETCL_Constraint *component)
+ : component_ (component)
+{
+}
+
+ACE_INLINE ETCL_Constraint *
+ETCL_Eval::component (void) const
+{
+ return this->component_;
+}
+
+// ****************************************************************
+
+ACE_INLINE
+ETCL_Default::ETCL_Default (ETCL_Constraint *component)
+ : component_ (component)
+{
+}
+
+ACE_INLINE ETCL_Constraint *
+ETCL_Default::component (void) const
+{
+ return this->component_;
+}
+
+// ****************************************************************
+
+ACE_INLINE
+ETCL_Exist::ETCL_Exist (ETCL_Constraint *component)
+ : component_ (component)
+{
+}
+
+ACE_INLINE ETCL_Constraint *
+ETCL_Exist::component (void) const
+{
+ return this->component_;
+}
+
+// ****************************************************************
+
+ACE_INLINE
+ETCL_Unary_Expr::ETCL_Unary_Expr (int type,
+ ETCL_Constraint *subexpr)
+ : type_ (type),
+ subexpr_ (subexpr)
+{}
+
+ACE_INLINE int
+ETCL_Unary_Expr::type (void) const
+{
+ return this->type_;
+}
+
+ACE_INLINE ETCL_Constraint *
+ETCL_Unary_Expr::subexpr (void) const
+{
+ return this->subexpr_;
+}
+
+// ****************************************************************
+
+ACE_INLINE
+ETCL_Binary_Expr::ETCL_Binary_Expr (int type,
+ ETCL_Constraint *lhs,
+ ETCL_Constraint *rhs)
+ : type_ (type),
+ lhs_ (lhs),
+ rhs_ (rhs)
+{}
+
+ACE_INLINE int
+ETCL_Binary_Expr::type (void) const
+{
+ return this->type_;
+}
+
+ACE_INLINE ETCL_Constraint *
+ETCL_Binary_Expr::rhs (void) const
+{
+ return this->rhs_;
+}
+
+ACE_INLINE ETCL_Constraint *
+ETCL_Binary_Expr::lhs (void) const
+{
+ return this->lhs_;
+}
+
+// ****************************************************************
+
+ACE_INLINE
+ETCL_Preference::ETCL_Preference (void)
+{}
+
+ACE_INLINE
+ETCL_Preference::ETCL_Preference (int type,
+ ETCL_Constraint *subexpr)
+ : type_ (type),
+ subexpr_ (subexpr)
+{}
+
+ACE_INLINE int
+ETCL_Preference::type (void) const
+{
+ return this->type_;
+}
+
+ACE_INLINE ETCL_Constraint *
+ETCL_Preference::subexpr (void) const
+{
+ return this->subexpr_;
+}
+
+ACE_INLINE bool
+ETCL_Literal_Constraint::operator!= (const ETCL_Literal_Constraint & rhs)
+{
+ return !(*this == rhs);
+}
+
+ACE_INLINE bool
+ETCL_Literal_Constraint::operator<= (const ETCL_Literal_Constraint & rhs)
+{
+ return !(*this > rhs);
+}
+
+ACE_INLINE bool
+ETCL_Literal_Constraint::operator>= (const ETCL_Literal_Constraint & rhs)
+{
+ return !(*this < rhs);
+}
diff --git a/dep/acelite/ace/ETCL/ETCL_Constraint_Visitor.cpp b/dep/acelite/ace/ETCL/ETCL_Constraint_Visitor.cpp
new file mode 100644
index 00000000000..66dbd8d09b8
--- /dev/null
+++ b/dep/acelite/ace/ETCL/ETCL_Constraint_Visitor.cpp
@@ -0,0 +1,117 @@
+// -*- C++ -*-
+//=============================================================================
+/**
+ * @file ETCL_Constraint_Visitor.cpp
+ *
+ * $Id: ETCL_Constraint_Visitor.cpp 81653 2008-05-08 21:08:49Z parsons $
+ *
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+#include "ace/ETCL/ETCL_Constraint_Visitor.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+ETCL_Constraint_Visitor::~ETCL_Constraint_Visitor (void)
+{
+}
+
+int
+ETCL_Constraint_Visitor::visit_literal (ETCL_Literal_Constraint *)
+{
+ return 0;
+}
+
+int
+ETCL_Constraint_Visitor::visit_identifier (ETCL_Identifier *)
+{
+ return 0;
+}
+
+int
+ETCL_Constraint_Visitor::visit_union_value (ETCL_Union_Value *)
+{
+ return 0;
+}
+
+int
+ETCL_Constraint_Visitor::visit_union_pos (ETCL_Union_Pos *)
+{
+ return 0;
+}
+
+int
+ETCL_Constraint_Visitor::visit_component_pos (ETCL_Component_Pos *)
+{
+ return 0;
+}
+
+int
+ETCL_Constraint_Visitor::visit_component_assoc (ETCL_Component_Assoc *)
+{
+ return 0;
+}
+
+int
+ETCL_Constraint_Visitor::visit_component_array (ETCL_Component_Array *)
+{
+ return 0;
+}
+
+int
+ETCL_Constraint_Visitor::visit_special (ETCL_Special *)
+{
+ return 0;
+}
+
+int
+ETCL_Constraint_Visitor::visit_component (ETCL_Component *)
+{
+ return 0;
+}
+
+int
+ETCL_Constraint_Visitor::visit_dot (ETCL_Dot *)
+{
+ return 0;
+}
+
+int
+ETCL_Constraint_Visitor::visit_eval (ETCL_Eval *)
+{
+ return 0;
+}
+
+int
+ETCL_Constraint_Visitor::visit_default (ETCL_Default *)
+{
+ return 0;
+}
+
+int
+ETCL_Constraint_Visitor::visit_exist (ETCL_Exist *)
+{
+ return 0;
+}
+
+int
+ETCL_Constraint_Visitor::visit_unary_expr (ETCL_Unary_Expr *)
+{
+ return 0;
+}
+
+int
+ETCL_Constraint_Visitor::visit_binary_expr (ETCL_Binary_Expr *)
+{
+ return 0;
+}
+
+int
+ETCL_Constraint_Visitor::visit_preference (ETCL_Preference *)
+{
+ return 0;
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
diff --git a/dep/acelite/ace/ETCL/ETCL_Constraint_Visitor.h b/dep/acelite/ace/ETCL/ETCL_Constraint_Visitor.h
new file mode 100644
index 00000000000..2337f60e8c4
--- /dev/null
+++ b/dep/acelite/ace/ETCL/ETCL_Constraint_Visitor.h
@@ -0,0 +1,70 @@
+// -*- C++ -*-
+//=============================================================================
+/**
+ * @file ETCL_Constraint_Visitor.h
+ *
+ * $Id: ETCL_Constraint_Visitor.h 81653 2008-05-08 21:08:49Z parsons $
+ *
+ * @author Carlos O'Ryan <coryan@cs.wustl.edu>
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef ACE_ETCL_CONSTRAINT_VISITOR_H
+#define ACE_ETCL_CONSTRAINT_VISITOR_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/ETCL/ace_etcl_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+class ETCL_Literal_Constraint;
+class ETCL_Identifier;
+class ETCL_Union_Value;
+class ETCL_Union_Pos;
+class ETCL_Component_Pos;
+class ETCL_Component_Assoc;
+class ETCL_Component_Array;
+class ETCL_Special;
+class ETCL_Component;
+class ETCL_Dot;
+class ETCL_Eval;
+class ETCL_Default;
+class ETCL_Exist;
+class ETCL_Unary_Expr;
+class ETCL_Binary_Expr;
+class ETCL_Preference;
+
+class ACE_ETCL_Export ETCL_Constraint_Visitor
+{
+public:
+ virtual ~ETCL_Constraint_Visitor (void);
+
+ virtual int visit_literal (ETCL_Literal_Constraint *);
+ virtual int visit_identifier (ETCL_Identifier *);
+ virtual int visit_union_value (ETCL_Union_Value *);
+ virtual int visit_union_pos (ETCL_Union_Pos *);
+ virtual int visit_component_pos (ETCL_Component_Pos *);
+ virtual int visit_component_assoc (ETCL_Component_Assoc *);
+ virtual int visit_component_array (ETCL_Component_Array *);
+ virtual int visit_special (ETCL_Special *);
+ virtual int visit_component (ETCL_Component *);
+ virtual int visit_dot (ETCL_Dot *);
+ virtual int visit_eval (ETCL_Eval *);
+ virtual int visit_default (ETCL_Default *);
+ virtual int visit_exist (ETCL_Exist *);
+ virtual int visit_unary_expr (ETCL_Unary_Expr *);
+ virtual int visit_binary_expr (ETCL_Binary_Expr *);
+ virtual int visit_preference (ETCL_Preference *);
+};
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#include /**/ "ace/post.h"
+
+#endif // ACE_ETCL_CONSTRAINT_VISITOR_H
diff --git a/dep/acelite/ace/ETCL/ETCL_Interpreter.cpp b/dep/acelite/ace/ETCL/ETCL_Interpreter.cpp
new file mode 100644
index 00000000000..727bd264672
--- /dev/null
+++ b/dep/acelite/ace/ETCL/ETCL_Interpreter.cpp
@@ -0,0 +1,113 @@
+// -*- C++ -*-
+// $Id: ETCL_Interpreter.cpp 91813 2010-09-17 07:52:52Z johnnyw $
+
+#include "ace/Guard_T.h"
+#include "ace/Truncate.h"
+
+#include "ace/ETCL/ETCL_Interpreter.h"
+#include "ace/ETCL/ETCL_Constraint.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+ETCL_Parser_Export ACE_SYNCH_MUTEX ETCL_Interpreter::parserMutex__;
+
+ETCL_Interpreter::ETCL_Interpreter (void)
+ : root_ (0)
+{
+}
+
+ETCL_Interpreter::~ETCL_Interpreter (void)
+{
+ delete this->root_;
+}
+
+int
+ETCL_Interpreter::build_tree (const char* constraints)
+{
+ ACE_GUARD_RETURN (ACE_SYNCH_MUTEX,
+ guard,
+ ETCL_Interpreter::parserMutex__,
+ -1);
+
+ Lex_String_Input::reset ((char*)constraints);
+
+ yyval.constraint = 0;
+ int return_value = ::yyparse ();
+
+ if (return_value == 0 && yyval.constraint != 0)
+ {
+ this->root_ = yyval.constraint;
+ }
+ else
+ {
+ this->root_ = 0;
+ }
+
+ return return_value;
+}
+
+int
+ETCL_Interpreter::is_empty_string (const char* str)
+{
+ int return_value = 0;
+
+ if (str != 0)
+ {
+ int i = 0;
+
+ while (str[i] != '\0')
+ {
+ if (str[i] != ' ')
+ {
+ break;
+ }
+
+ ++i;
+ }
+
+ if (str[i] == '\0')
+ {
+ return_value = 1;
+ }
+ }
+
+ return return_value;
+}
+
+char* Lex_String_Input::string_ = 0;
+char* Lex_String_Input::current_ = 0;
+char* Lex_String_Input::end_ = 0;
+
+// Routine to have Lex read its input from the constraint string.
+
+int
+Lex_String_Input::copy_into (char* buf,
+ int max_size)
+{
+ int const chars_left =
+ ACE_Utils::truncate_cast<int> (
+ Lex_String_Input::end_ - Lex_String_Input::current_);
+
+ int const n = max_size > chars_left ? chars_left : max_size;
+
+ if (n > 0)
+ {
+ ACE_OS::memcpy (buf,
+ Lex_String_Input::current_,
+ n);
+ Lex_String_Input::current_ += n;
+ }
+
+ return n;
+}
+
+void
+Lex_String_Input::reset (char* input_string)
+{
+ Lex_String_Input::string_ = input_string;
+ Lex_String_Input::current_ = input_string;
+ Lex_String_Input::end_ =
+ input_string + ACE_OS::strlen (Lex_String_Input::string_);
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/ETCL/ETCL_Interpreter.h b/dep/acelite/ace/ETCL/ETCL_Interpreter.h
new file mode 100644
index 00000000000..8553c9b3309
--- /dev/null
+++ b/dep/acelite/ace/ETCL/ETCL_Interpreter.h
@@ -0,0 +1,117 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file ETCL_Interpreter.h
+ *
+ * $Id: ETCL_Interpreter.h 82434 2008-07-28 11:40:36Z johnnyw $
+ *
+ * @author Jeff Parsons <parsons@cs.wustl.edu> based on previous work by
+ * @author Seth Widoff <sbw1@cs.wustl.edu>
+ */
+//=============================================================================
+
+
+#ifndef ETCL_INTERPRETER_H
+#define ETCL_INTERPRETER_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/Thread_Mutex.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Synch_Traits.h"
+
+#include "etcl_parser_export.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+class ETCL_Constraint;
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+/**
+ * @class ETCL_Interpreter
+ *
+ * @brief ETCL_Interpreter is the superclass for all ETCL interpreters.
+ * Its build tree method invokes the yacc parser to parse a constraint
+ * or preference string.
+ */
+class ETCL_Parser_Export ETCL_Interpreter
+{
+protected:
+ // = Initialization and termination methods.
+ /// Constructor.
+ ETCL_Interpreter (void);
+
+ /// Destructor.
+ virtual ~ETCL_Interpreter (void);
+
+ /// Using the Yacc generated parser, construct an expression tree
+ /// representing @a constraints from the tokens returned by it.
+ int build_tree (const char* constraints);
+
+ static int is_empty_string (const char* str);
+
+ /// The root of the expression tree, not equal to null if build_tree
+ /// successfully builds a tree from the constraints.
+ ETCL_Constraint* root_;
+private:
+ /// This mutex protects the <build_tree> method from reentrance.
+ static ACE_SYNCH_MUTEX parserMutex__;
+};
+
+
+// Functions we need for parsing.
+extern int yyparse (void);
+extern void yyrestart (FILE*);
+extern int yylex (void);
+
+// Have yylex read from the constraint string, not from stdin.
+#undef YY_INPUT
+#define YY_INPUT(b, r, ms) (r = Lex_String_Input::copy_into(b, ms))
+
+/**
+ * @class Lex_String_Input
+ *
+ * @brief Have Lex read from a string and not from stdin. Essentially,
+ * the interpreter needs to call yylex() until EOF, and call
+ * TAO_Lex_String_Input::reset() with the new string, prior to
+ * calling yyparse.
+ */
+class Lex_String_Input
+{
+public:
+ /// Reset the lex input.
+ static void reset (char* input_string);
+
+ /// Method lex will call to read from the input string.
+ static int copy_into (char* buf, int max_size);
+
+private:
+
+ /// Pointers to keep track of the input string.
+ static char* string_;
+ static char* current_;
+ static char* end_;
+};
+
+/// The union used by lex and bison to build the Abstract Syntax Tree.
+typedef union
+{
+ ACE_VERSIONED_NAMESPACE_NAME::ETCL_Constraint* constraint;
+} YYSTYPE;
+
+extern YYSTYPE yylval;
+extern YYSTYPE yyval;
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#include /**/ "ace/post.h"
+
+#endif // ETCL_INTERPRETER_H
diff --git a/dep/acelite/ace/ETCL/ETCL_l.cpp b/dep/acelite/ace/ETCL/ETCL_l.cpp
new file mode 100644
index 00000000000..ed985de0035
--- /dev/null
+++ b/dep/acelite/ace/ETCL/ETCL_l.cpp
@@ -0,0 +1,1877 @@
+
+/* A lexical scanner generated by flex */
+
+/* Scanner skeleton version:
+ */
+
+#define FLEX_SCANNER
+#define YY_FLEX_MAJOR_VERSION 2
+#define YY_FLEX_MINOR_VERSION 5
+
+
+/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
+#ifdef c_plusplus
+#ifndef __cplusplus
+#define __cplusplus
+#endif
+#endif
+
+#include "ace/ETCL/ETCL_Constraint.h"
+
+#ifdef __cplusplus
+
+#include "ace/OS_NS_unistd.h"
+#include "ace/OS_NS_stdio.h"
+
+/* Use prototypes in function declarations. */
+#define YY_USE_PROTOS
+
+/* The "const" storage-class-modifier is valid. */
+#define YY_USE_CONST
+
+#else /* ! __cplusplus */
+
+#if __STDC__
+
+#define YY_USE_PROTOS
+#define YY_USE_CONST
+
+#endif /* __STDC__ */
+#endif /* ! __cplusplus */
+
+#ifdef __TURBOC__
+ #pragma warn -rch
+ #pragma warn -use
+#include <io.h>
+#include <stdlib.h>
+#define YY_USE_CONST
+#define YY_USE_PROTOS
+#endif
+
+#ifdef YY_USE_CONST
+#define yyconst const
+#else
+#define yyconst
+#endif
+
+
+#ifdef YY_USE_PROTOS
+#define YY_PROTO(proto) proto
+#else
+#define YY_PROTO(proto) ()
+#endif
+
+/* Returned upon end-of-file. */
+#define 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 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 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 YYSTATE alias is for lex
+ * compatibility.
+ */
+#define YY_START ((yy_start - 1) / 2)
+#define YYSTATE YY_START
+
+/* Action number for EOF rule of a given start state. */
+#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+
+/* Special action meaning "start processing a new file". */
+#define YY_NEW_FILE yyrestart( yyin )
+
+#define YY_END_OF_BUFFER_CHAR 0
+
+/* Size of default input buffer. */
+#define YY_BUF_SIZE 16384
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+
+extern int yyleng;
+extern FILE *yyin, *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 )
+ * 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 yyless() call.
+ */
+
+/* Return all but the first 'n' matched characters back to the input stream. */
+
+#define yyless(n) \
+ do \
+ { \
+ /* Undo effects of setting up yytext. */ \
+ *yy_cp = yy_hold_char; \
+ YY_RESTORE_YY_MORE_OFFSET \
+ yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
+ YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+ } \
+ while ( 0 )
+
+#define unput(c) yyunput( c, yytext_ptr )
+
+/* 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 yy_size_t;
+
+
+struct yy_buffer_state
+{
+ FILE *yy_input_file;
+
+ char *yy_ch_buf; /* input buffer */
+ char *yy_buf_pos; /* current position in input buffer */
+
+ /* Size of input buffer in bytes, not including room for EOB
+ * characters.
+ */
+ yy_size_t yy_buf_size;
+
+ /* Number of characters read into yy_ch_buf, not including EOB
+ * characters.
+ */
+ int 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 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 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 yy_at_bol;
+
+ /* Whether to try to fill the input buffer when we reach the
+ * end of it.
+ */
+ int yy_fill_buffer;
+
+ int yy_buffer_status;
+#define YY_BUFFER_NEW 0
+#define YY_BUFFER_NORMAL 1
+ /* When an EOF's been seen but there's still some text to process
+ * then we mark the buffer as 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 yyrestart()), so that the user can continue scanning by
+ * just pointing yyin at a new input file.
+ */
+#define YY_BUFFER_EOF_PENDING 2
+};
+
+static YY_BUFFER_STATE 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 YY_CURRENT_BUFFER yy_current_buffer
+
+
+/* yy_hold_char holds the character lost when yytext is formed. */
+static char yy_hold_char;
+
+static int yy_n_chars; /* number of characters read into yy_ch_buf */
+
+
+int yyleng;
+
+/* Points to current character in buffer. */
+static char *yy_c_buf_p = (char *) 0;
+static int yy_init = 1; /* whether we need to initialize */
+static int yy_start = 0; /* start state number */
+
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin. A bit of a hack ...
+ */
+static int yy_did_buffer_switch_on_eof;
+
+void yyrestart YY_PROTO(( FILE *input_file ));
+
+void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
+void yy_load_buffer_state YY_PROTO(( void ));
+YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
+void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
+void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
+void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
+#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
+
+YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
+YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
+YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
+
+static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
+static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
+static void yy_flex_free YY_PROTO(( void * ));
+
+#define yy_new_buffer yy_create_buffer
+
+#define yy_set_interactive(is_interactive) \
+ { \
+ if ( ! yy_current_buffer ) \
+ yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
+ yy_current_buffer->yy_is_interactive = is_interactive; \
+ }
+
+#define yy_set_bol(at_bol) \
+ { \
+ if ( ! yy_current_buffer ) \
+ yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
+ yy_current_buffer->yy_at_bol = at_bol; \
+ }
+
+#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
+
+
+typedef unsigned char YY_CHAR;
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+typedef int yy_state_type;
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yy_state_type yy_get_previous_state YY_PROTO(( void ));
+static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
+static int yy_get_next_buffer YY_PROTO(( void ));
+static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
+
+/* Done after the current pattern has been matched and before the
+ * corresponding action - sets up yytext.
+ */
+#define YY_DO_BEFORE_ACTION \
+ yytext_ptr = yy_bp; \
+ yyleng = (int) (yy_cp - yy_bp); \
+ yy_hold_char = *yy_cp; \
+ *yy_cp = '\0'; \
+ yy_c_buf_p = yy_cp;
+
+#define YY_NUM_RULES 41
+#define YY_END_OF_BUFFER 42
+static yyconst short int yy_accept[118] =
+ { 0,
+ 0, 0, 42, 40, 39, 41, 40, 24, 40, 22,
+ 23, 14, 12, 13, 25, 15, 35, 16, 40, 18,
+ 38, 38, 38, 31, 40, 32, 40, 38, 38, 38,
+ 38, 38, 38, 38, 38, 38, 38, 11, 21, 0,
+ 37, 0, 36, 0, 35, 17, 20, 19, 38, 38,
+ 38, 38, 27, 0, 0, 0, 38, 38, 38, 38,
+ 10, 38, 38, 38, 9, 38, 38, 0, 0, 38,
+ 38, 38, 0, 0, 0, 8, 38, 38, 38, 2,
+ 1, 7, 38, 38, 0, 36, 38, 33, 0, 0,
+ 0, 38, 38, 38, 38, 5, 34, 0, 0, 0,
+
+ 38, 6, 3, 38, 0, 0, 0, 38, 4, 30,
+ 0, 0, 26, 0, 28, 29, 0
+ } ;
+
+static yyconst int yy_ec[256] =
+ { 0,
+ 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 2, 4, 1, 1, 5, 1, 1, 6, 7,
+ 8, 9, 10, 1, 11, 12, 13, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 1, 1, 15,
+ 16, 17, 1, 1, 18, 19, 19, 19, 20, 21,
+ 19, 19, 19, 19, 19, 22, 19, 19, 19, 19,
+ 19, 23, 24, 25, 26, 19, 19, 19, 19, 19,
+ 27, 28, 29, 1, 30, 1, 31, 19, 19, 32,
+
+ 33, 34, 35, 36, 37, 19, 19, 38, 39, 40,
+ 41, 42, 19, 43, 44, 45, 46, 19, 47, 48,
+ 49, 19, 1, 1, 1, 50, 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 yyconst int yy_meta[51] =
+ { 0,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 2, 1, 1, 1, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 1, 1, 1, 2,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 1
+ } ;
+
+static yyconst short int yy_base[122] =
+ { 0,
+ 0, 0, 146, 147, 147, 147, 129, 147, 45, 147,
+ 147, 147, 147, 147, 130, 147, 40, 127, 126, 125,
+ 0, 122, 116, 147, 0, 147, 21, 98, 104, 88,
+ 98, 94, 24, 92, 89, 100, 93, 147, 147, 50,
+ 147, 51, 48, 115, 46, 147, 147, 147, 0, 106,
+ 101, 0, 147, 93, 92, 75, 91, 88, 84, 77,
+ 0, 71, 78, 72, 0, 76, 70, 57, 60, 90,
+ 93, 0, 72, 69, 68, 0, 78, 64, 63, 0,
+ 0, 0, 74, 69, 90, 89, 82, 0, 66, 59,
+ 66, 52, 52, 51, 54, 0, 0, 49, 49, 54,
+
+ 45, 0, 0, 43, 44, 47, 39, 30, 0, 147,
+ 35, 37, 0, 35, 147, 147, 147, 85, 87, 62,
+ 89
+ } ;
+
+static yyconst short int yy_def[122] =
+ { 0,
+ 117, 1, 117, 117, 117, 117, 117, 117, 118, 117,
+ 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
+ 119, 119, 119, 117, 120, 117, 117, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 117, 117, 118,
+ 117, 117, 117, 117, 117, 117, 117, 117, 119, 119,
+ 119, 121, 117, 117, 117, 117, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 118, 117, 119,
+ 119, 121, 117, 117, 117, 119, 119, 119, 119, 119,
+ 119, 119, 119, 119, 117, 117, 119, 119, 117, 117,
+ 117, 119, 119, 119, 119, 119, 119, 117, 117, 117,
+
+ 119, 119, 119, 119, 117, 117, 117, 119, 119, 117,
+ 117, 117, 119, 117, 117, 117, 0, 117, 117, 117,
+ 117
+ } ;
+
+static yyconst short int yy_nxt[198] =
+ { 0,
+ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 17, 18, 19, 20, 21, 21, 21,
+ 22, 21, 21, 21, 23, 21, 24, 25, 26, 27,
+ 28, 29, 30, 31, 21, 21, 32, 21, 33, 34,
+ 35, 21, 36, 21, 21, 21, 37, 21, 21, 38,
+ 41, 44, 53, 45, 62, 41, 68, 44, 54, 45,
+ 63, 43, 41, 55, 52, 56, 116, 69, 115, 85,
+ 85, 114, 42, 86, 113, 112, 111, 42, 68, 110,
+ 69, 109, 108, 107, 42, 40, 40, 40, 49, 49,
+ 72, 72, 106, 105, 104, 103, 102, 101, 100, 99,
+
+ 98, 97, 86, 86, 96, 95, 94, 93, 92, 91,
+ 90, 89, 88, 87, 84, 83, 82, 81, 80, 79,
+ 78, 77, 76, 75, 74, 73, 71, 70, 43, 67,
+ 66, 65, 64, 61, 60, 59, 58, 57, 51, 50,
+ 48, 47, 46, 43, 39, 117, 3, 117, 117, 117,
+ 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
+ 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
+ 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
+ 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
+ 117, 117, 117, 117, 117, 117, 117
+
+ } ;
+
+static yyconst short int yy_chk[198] =
+ { 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, 1, 1, 1, 1, 1,
+ 9, 17, 27, 17, 33, 40, 42, 45, 27, 45,
+ 33, 43, 68, 27, 120, 27, 114, 43, 112, 69,
+ 69, 111, 9, 69, 108, 107, 106, 40, 42, 105,
+ 43, 104, 101, 100, 68, 118, 118, 118, 119, 119,
+ 121, 121, 99, 98, 95, 94, 93, 92, 91, 90,
+
+ 89, 87, 86, 85, 84, 83, 79, 78, 77, 75,
+ 74, 73, 71, 70, 67, 66, 64, 63, 62, 60,
+ 59, 58, 57, 56, 55, 54, 51, 50, 44, 37,
+ 36, 35, 34, 32, 31, 30, 29, 28, 23, 22,
+ 20, 19, 18, 15, 7, 3, 117, 117, 117, 117,
+ 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
+ 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
+ 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
+ 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
+ 117, 117, 117, 117, 117, 117, 117
+
+ } ;
+
+static yy_state_type yy_last_accepting_state;
+static char *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 yymore() yymore_used_but_not_detected
+#define YY_MORE_ADJ 0
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#define INITIAL 0
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+//=============================================================================
+/**
+ * @file ETCL_l.cpp
+ *
+ * $Id: ETCL_l.cpp 93651 2011-03-28 08:49:11Z johnnyw $
+ *
+ * @author Carlos O'Ryan <coryan@uci.edu> based on previous work by Seth Widoff <sbw1@cs.wustl.edu>
+ */
+//=============================================================================
+
+
+#include "ace/ETCL/ETCL_Interpreter.h"
+#include "ace/ETCL/ETCL_y.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+static const char* extract_string(char*);
+//static const char * extract_string(char*);
+
+#define YY_LEX_DEBUG
+
+#ifdef CONSTRAINT_DEBUG
+#define YY_LEX_DEBUG ACE_OS::fprintf(stderr, "%s\n", yytext)
+#endif /* CONSTRAINT_DEBUG */
+
+//#define YY_DECL int ETCL_yylex (ETCL_YYSTYPE *lvalp, void* state)
+
+#define YY_BREAK
+#define YY_NO_UNPUT
+
+
+/* Macros after this point can all be overridden by user definitions in
+ * section 1.
+ */
+
+#ifndef YY_SKIP_YYWRAP
+#ifdef __cplusplus
+extern "C" int yywrap YY_PROTO(( void ));
+#else
+extern int yywrap YY_PROTO(( void ));
+#endif
+#endif
+
+#ifndef yytext_ptr
+static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
+#endif
+
+#ifdef YY_NEED_STRLEN
+static int yy_flex_strlen YY_PROTO(( yyconst char * ));
+#endif
+
+#ifndef YY_NO_INPUT
+#ifdef __cplusplus
+static int yyinput YY_PROTO(( void ));
+#else
+static int input YY_PROTO(( void ));
+#endif
+#endif
+
+#if YY_STACK_USED
+static int yy_start_stack_ptr = 0;
+static int yy_start_stack_depth = 0;
+static int *yy_start_stack = 0;
+#ifndef YY_NO_PUSH_STATE
+static void yy_push_state YY_PROTO(( int new_state ));
+#endif
+#ifndef YY_NO_POP_STATE
+static void yy_pop_state YY_PROTO(( void ));
+#endif
+#ifndef YY_NO_TOP_STATE
+static int yy_top_state YY_PROTO(( void ));
+#endif
+
+#else
+#define YY_NO_PUSH_STATE 1
+#define YY_NO_POP_STATE 1
+#define YY_NO_TOP_STATE 1
+#endif
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#ifdef YY_MALLOC_DECL
+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 YY_READ_BUF_SIZE
+#define YY_READ_BUF_SIZE 8192
+#endif
+
+/* Copy whatever the last rule matched to the standard output. */
+
+//FUZZ: disable check_for_lack_ACE_OS
+#ifndef ETCL_ECHO
+/* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+#define ETCL_ECHO { size_t __dum_ret = fwrite( yytext, yyleng, 1, yyout ); (void) __dum_ret; }
+#endif
+ //FUZZ: enable check_for_lack_ACE_OS
+
+/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
+ * is returned in "result".
+ */
+#ifndef YY_INPUT
+#define YY_INPUT(buf,result,max_size) \
+ if ( yy_current_buffer->yy_is_interactive ) \
+ { \
+ int c = '*', n; \
+ for ( n = 0; n < max_size && \
+ (c = ACE_OS::getc( yyin )) != EOF && c != '\n'; ++n ) \
+ buf[n] = (char) c; \
+ if ( c == '\n' ) \
+ buf[n++] = (char) c; \
+ if ( c == EOF && ferror( yyin ) ) \
+ YY_FATAL_ERROR( "input in flex scanner failed" ); \
+ result = n; \
+ } \
+ else if ( ((result = ACE_OS::fread( buf, 1, max_size, yyin )) == 0) \
+ && ferror( yyin ) ) \
+ YY_FATAL_ERROR( "input in flex scanner failed" );
+#endif
+
+/* No semi-colon after return; correct usage is to write "yyterminate();" -
+ * we don't want an extra ';' after the "return" because that will cause
+ * some compilers to complain about unreachable statements.
+ */
+#ifndef yyterminate
+#define yyterminate() return YY_NULL
+#endif
+
+/* Number of entries by which start-condition stack grows. */
+#ifndef YY_START_STACK_INCR
+#define YY_START_STACK_INCR 25
+#endif
+
+/* Report a fatal error. */
+#ifndef YY_FATAL_ERROR
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+#endif
+
+/* Default declaration of generated scanner - a define so the user can
+ * easily add parameters.
+ */
+#ifndef YY_DECL
+#define YY_DECL int yylex YY_PROTO(( void ))
+#endif
+
+/* Code executed at the beginning of each rule, after yytext and yyleng
+ * have been set up.
+ */
+#ifndef YY_USER_ACTION
+#define YY_USER_ACTION
+#endif
+
+/* Code executed at the end of each rule. */
+#ifndef YY_BREAK
+#define YY_BREAK break;
+#endif
+
+#define YY_RULE_SETUP \
+ YY_USER_ACTION
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+YY_DECL
+ {
+ register yy_state_type yy_current_state;
+ register char *yy_cp = 0;
+ register char *yy_bp = 0;
+ register int yy_act;
+
+//#line 50 "ETCL/ETCL.ll"
+
+ if ( yy_init )
+ {
+ yy_init = 0;
+
+#ifdef YY_USER_INIT
+ YY_USER_INIT;
+#endif
+
+ if ( ! yy_start )
+ yy_start = 1; /* first start state */
+
+ if ( ! yyin )
+ yyin = stdin;
+
+ if ( ! yyout )
+ yyout = stdout;
+
+ if ( ! yy_current_buffer )
+ yy_current_buffer =
+ yy_create_buffer( yyin, YY_BUF_SIZE );
+
+ yy_load_buffer_state();
+ }
+
+ while ( 1 ) /* loops until end-of-file is reached */
+ {
+ yy_cp = yy_c_buf_p;
+
+ /* Support of yytext. */
+ *yy_cp = yy_hold_char;
+
+ /* yy_bp points to the position in yy_ch_buf of the start of
+ * the current run.
+ */
+ yy_bp = yy_cp;
+
+ yy_current_state = yy_start;
+yy_match:
+ do
+ {
+ register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
+ if ( yy_accept[yy_current_state] )
+ {
+ yy_last_accepting_state = yy_current_state;
+ yy_last_accepting_cpos = yy_cp;
+ }
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+ {
+ yy_current_state = (int) yy_def[yy_current_state];
+ if ( yy_current_state >= 118 )
+ yy_c = yy_meta[(unsigned int) yy_c];
+ }
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+ ++yy_cp;
+ }
+ while ( yy_base[yy_current_state] != 147 );
+
+yy_find_action:
+ yy_act = yy_accept[yy_current_state];
+ if ( yy_act == 0 )
+ { /* have to back up */
+ yy_cp = yy_last_accepting_cpos;
+ yy_current_state = yy_last_accepting_state;
+ yy_act = yy_accept[yy_current_state];
+ }
+
+ YY_DO_BEFORE_ACTION;
+
+
+do_action: /* This label is used only to access EOF actions. */
+
+
+ switch ( yy_act )
+ { /* beginning of action switch */
+ case 0: /* must back up */
+ /* undo the effects of YY_DO_BEFORE_ACTION */
+ *yy_cp = yy_hold_char;
+ yy_cp = yy_last_accepting_cpos;
+ yy_current_state = yy_last_accepting_state;
+ goto yy_find_action;
+
+case 1:
+YY_RULE_SETUP
+//#line 52 "ETCL/ETCL.ll"
+{ YY_LEX_DEBUG; return ETCL_MIN; }
+ YY_BREAK
+case 2:
+YY_RULE_SETUP
+//#line 53 "ETCL/ETCL.ll"
+{ YY_LEX_DEBUG; return ETCL_MAX; }
+ YY_BREAK
+case 3:
+YY_RULE_SETUP
+//#line 54 "ETCL/ETCL.ll"
+{ YY_LEX_DEBUG; return ETCL_FIRST; }
+ YY_BREAK
+case 4:
+YY_RULE_SETUP
+//#line 55 "ETCL/ETCL.ll"
+{ YY_LEX_DEBUG; return ETCL_RANDOM; }
+ YY_BREAK
+case 5:
+YY_RULE_SETUP
+//#line 56 "ETCL/ETCL.ll"
+{ YY_LEX_DEBUG; return ETCL_WITH; }
+ YY_BREAK
+case 6:
+YY_RULE_SETUP
+//#line 57 "ETCL/ETCL.ll"
+{ YY_LEX_DEBUG; return ETCL_EXIST; }
+ YY_BREAK
+case 7:
+YY_RULE_SETUP
+//#line 58 "ETCL/ETCL.ll"
+{ YY_LEX_DEBUG; return ETCL_NOT; }
+ YY_BREAK
+case 8:
+YY_RULE_SETUP
+//#line 59 "ETCL/ETCL.ll"
+{ YY_LEX_DEBUG; return ETCL_AND; }
+ YY_BREAK
+case 9:
+YY_RULE_SETUP
+//#line 60 "ETCL/ETCL.ll"
+{ YY_LEX_DEBUG; return ETCL_OR; }
+ YY_BREAK
+case 10:
+YY_RULE_SETUP
+//#line 61 "ETCL/ETCL.ll"
+{ YY_LEX_DEBUG; return ETCL_IN; }
+ YY_BREAK
+case 11:
+YY_RULE_SETUP
+//#line 62 "ETCL/ETCL.ll"
+{ YY_LEX_DEBUG; return ETCL_TWIDDLE; }
+ YY_BREAK
+case 12:
+YY_RULE_SETUP
+//#line 63 "ETCL/ETCL.ll"
+{ YY_LEX_DEBUG; return ETCL_PLUS; }
+ YY_BREAK
+case 13:
+YY_RULE_SETUP
+//#line 64 "ETCL/ETCL.ll"
+{ YY_LEX_DEBUG; return ETCL_MINUS; }
+ YY_BREAK
+case 14:
+YY_RULE_SETUP
+//#line 65 "ETCL/ETCL.ll"
+{ YY_LEX_DEBUG; return ETCL_MULT; }
+ YY_BREAK
+case 15:
+YY_RULE_SETUP
+//#line 66 "ETCL/ETCL.ll"
+{ YY_LEX_DEBUG; return ETCL_DIV; }
+ YY_BREAK
+case 16:
+YY_RULE_SETUP
+//#line 67 "ETCL/ETCL.ll"
+{ YY_LEX_DEBUG; return ETCL_LT; }
+ YY_BREAK
+case 17:
+YY_RULE_SETUP
+//#line 68 "ETCL/ETCL.ll"
+{ YY_LEX_DEBUG; return ETCL_LE; }
+ YY_BREAK
+case 18:
+YY_RULE_SETUP
+//#line 69 "ETCL/ETCL.ll"
+{ YY_LEX_DEBUG; return ETCL_GT; }
+ YY_BREAK
+case 19:
+YY_RULE_SETUP
+//#line 70 "ETCL/ETCL.ll"
+{ YY_LEX_DEBUG; return ETCL_GE; }
+ YY_BREAK
+case 20:
+YY_RULE_SETUP
+//#line 71 "ETCL/ETCL.ll"
+{ YY_LEX_DEBUG; return ETCL_EQ; }
+ YY_BREAK
+case 21:
+YY_RULE_SETUP
+//#line 72 "ETCL/ETCL.ll"
+{ YY_LEX_DEBUG; return ETCL_NE; }
+ YY_BREAK
+case 22:
+YY_RULE_SETUP
+//#line 73 "ETCL/ETCL.ll"
+{ YY_LEX_DEBUG; return ETCL_LPAREN; }
+ YY_BREAK
+case 23:
+YY_RULE_SETUP
+//#line 74 "ETCL/ETCL.ll"
+{ YY_LEX_DEBUG; return ETCL_RPAREN; }
+ YY_BREAK
+case 24:
+YY_RULE_SETUP
+//#line 75 "ETCL/ETCL.ll"
+{ YY_LEX_DEBUG; return ETCL_DOLLAR; }
+ YY_BREAK
+case 25:
+YY_RULE_SETUP
+//#line 76 "ETCL/ETCL.ll"
+{ YY_LEX_DEBUG; return ETCL_DOT; }
+ YY_BREAK
+case 26:
+YY_RULE_SETUP
+//#line 77 "ETCL/ETCL.ll"
+{ YY_LEX_DEBUG; return ETCL_DEFAULT; }
+ YY_BREAK
+case 27:
+YY_RULE_SETUP
+//#line 78 "ETCL/ETCL.ll"
+{ YY_LEX_DEBUG; return ETCL_DISCRIMINANT; }
+ YY_BREAK
+case 28:
+YY_RULE_SETUP
+//#line 79 "ETCL/ETCL.ll"
+{ YY_LEX_DEBUG; return ETCL_TYPE_ID; }
+ YY_BREAK
+case 29:
+YY_RULE_SETUP
+//#line 80 "ETCL/ETCL.ll"
+{ YY_LEX_DEBUG; return ETCL_REPOS_ID; }
+ YY_BREAK
+case 30:
+YY_RULE_SETUP
+//#line 81 "ETCL/ETCL.ll"
+{ YY_LEX_DEBUG; return ETCL_LENGTH; }
+ YY_BREAK
+case 31:
+YY_RULE_SETUP
+//#line 82 "ETCL/ETCL.ll"
+{ YY_LEX_DEBUG; return ETCL_LBRA; }
+ YY_BREAK
+case 32:
+YY_RULE_SETUP
+//#line 83 "ETCL/ETCL.ll"
+{ YY_LEX_DEBUG; return ETCL_RBRA; }
+ YY_BREAK
+case 33:
+YY_RULE_SETUP
+//#line 84 "ETCL/ETCL.ll"
+{
+ yylval.constraint =
+ new ETCL_Literal_Constraint ((ACE_CDR::Boolean) 1);
+ YY_LEX_DEBUG; return ETCL_BOOLEAN;
+ }
+ YY_BREAK
+case 34:
+YY_RULE_SETUP
+//#line 89 "ETCL/ETCL.ll"
+{
+ yylval.constraint =
+ new ETCL_Literal_Constraint ((ACE_CDR::Boolean) 0);
+ YY_LEX_DEBUG; return ETCL_BOOLEAN;
+ }
+ YY_BREAK
+case 35:
+YY_RULE_SETUP
+//#line 94 "ETCL/ETCL.ll"
+{
+ yylval.constraint =
+ new ETCL_Literal_Constraint (ACE_OS::atoi (yytext));
+ YY_LEX_DEBUG; return ETCL_INTEGER;
+ }
+ YY_BREAK
+case 36:
+YY_RULE_SETUP
+//#line 99 "ETCL/ETCL.ll"
+{
+ double v;
+ sscanf (yytext, "%lf", &v);
+ yylval.constraint =
+ new ETCL_Literal_Constraint (v);
+ YY_LEX_DEBUG; return ETCL_FLOAT;
+ }
+ YY_BREAK
+case 37:
+YY_RULE_SETUP
+//#line 106 "ETCL/ETCL.ll"
+{
+ yylval.constraint =
+ new ETCL_Literal_Constraint (extract_string(yytext));
+ YY_LEX_DEBUG; return ETCL_STRING;
+ }
+ YY_BREAK
+case 38:
+YY_RULE_SETUP
+//#line 111 "ETCL/ETCL.ll"
+{
+ yylval.constraint =
+ new ETCL_Identifier (yytext);
+ YY_LEX_DEBUG; return ETCL_IDENT;
+ }
+ YY_BREAK
+case 39:
+YY_RULE_SETUP
+//#line 116 "ETCL/ETCL.ll"
+{
+ YY_LEX_DEBUG; break; // Ignore
+ }
+ YY_BREAK
+case 40:
+YY_RULE_SETUP
+//#line 119 "ETCL/ETCL.ll"
+{
+ YY_LEX_DEBUG; break; // @@ TODO
+ }
+ YY_BREAK
+case 41:
+YY_RULE_SETUP
+//#line 122 "ETCL/ETCL.ll"
+ETCL_ECHO;
+ YY_BREAK
+case YY_STATE_EOF(INITIAL):
+ yyterminate();
+
+ case YY_END_OF_BUFFER:
+ {
+ /* Amount of text matched not including the EOB char. */
+ int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
+
+ /* Undo the effects of YY_DO_BEFORE_ACTION. */
+ *yy_cp = yy_hold_char;
+ YY_RESTORE_YY_MORE_OFFSET
+
+ if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
+ {
+ /* We're scanning a new file or input source. It's
+ * possible that this happened because the user
+ * just pointed yyin at a new source and called
+ * yylex(). If so, then we have to assure
+ * consistency between 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.
+ */
+ yy_n_chars = yy_current_buffer->yy_n_chars;
+ yy_current_buffer->yy_input_file = yyin;
+ yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
+ }
+
+ /* Note that here we test for yy_c_buf_p "<=" to the position
+ * of the first EOB in the buffer, since 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 ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
+ { /* This was really a NUL. */
+ yy_state_type yy_next_state;
+
+ yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
+
+ yy_current_state = yy_get_previous_state();
+
+ /* Okay, we're now positioned to make the NUL
+ * transition. We couldn't have
+ * 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).
+ */
+
+ yy_next_state = yy_try_NUL_trans( yy_current_state );
+
+ yy_bp = yytext_ptr + YY_MORE_ADJ;
+
+ if ( yy_next_state )
+ {
+ /* Consume the NUL. */
+ yy_cp = ++yy_c_buf_p;
+ yy_current_state = yy_next_state;
+ goto yy_match;
+ }
+
+ else
+ {
+ yy_cp = yy_c_buf_p;
+ goto yy_find_action;
+ }
+ }
+
+ else switch ( yy_get_next_buffer() )
+ {
+ case EOB_ACT_END_OF_FILE:
+ {
+ yy_did_buffer_switch_on_eof = 0;
+
+ if ( yywrap() )
+ {
+ /* Note: because we've taken care in
+ * yy_get_next_buffer() to have set up
+ * yytext, we can now set up
+ * yy_c_buf_p so that if some total
+ * hoser (like flex itself) wants to
+ * call the scanner after we return the
+ * YY_NULL, it'll still work - another
+ * YY_NULL will get returned.
+ */
+ yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
+
+ yy_act = YY_STATE_EOF(YY_START);
+ goto do_action;
+ }
+
+ else
+ {
+ if ( ! yy_did_buffer_switch_on_eof )
+ YY_NEW_FILE;
+ }
+ break;
+ }
+
+ case EOB_ACT_CONTINUE_SCAN:
+ yy_c_buf_p =
+ yytext_ptr + yy_amount_of_matched_text;
+
+ yy_current_state = yy_get_previous_state();
+
+ yy_cp = yy_c_buf_p;
+ yy_bp = yytext_ptr + YY_MORE_ADJ;
+ goto yy_match;
+
+ case EOB_ACT_LAST_MATCH:
+ yy_c_buf_p =
+ &yy_current_buffer->yy_ch_buf[yy_n_chars];
+
+ yy_current_state = yy_get_previous_state();
+
+ yy_cp = yy_c_buf_p;
+ yy_bp = yytext_ptr + YY_MORE_ADJ;
+ goto yy_find_action;
+ }
+ break;
+ }
+
+ default:
+ YY_FATAL_ERROR(
+ "fatal flex scanner internal error--no action found" );
+ } /* end of action switch */
+ } /* end of scanning one token */
+ } /* end of yylex */
+
+
+/* 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 yy_get_next_buffer()
+ {
+ register char *dest = yy_current_buffer->yy_ch_buf;
+ register char *source = yytext_ptr;
+ register int number_to_move, i;
+ int ret_val;
+
+ if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
+ YY_FATAL_ERROR(
+ "fatal flex scanner internal error--end of buffer missed" );
+
+ if ( yy_current_buffer->yy_fill_buffer == 0 )
+ { /* Don't try to fill the buffer, so this is an EOF. */
+ if ( yy_c_buf_p - yytext_ptr - 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) (yy_c_buf_p - yytext_ptr) - 1;
+
+ for ( i = 0; i < number_to_move; ++i )
+ *(dest++) = *(source++);
+
+ if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+ /* don't do the read, it's not guaranteed to return an EOF,
+ * just force an EOF
+ */
+ yy_current_buffer->yy_n_chars = yy_n_chars = 0;
+
+ else
+ {
+ int num_to_read =
+ yy_current_buffer->yy_buf_size - number_to_move - 1;
+
+ while ( num_to_read <= 0 )
+ { /* Not enough room in the buffer - grow it. */
+#ifdef YY_USES_REJECT
+ YY_FATAL_ERROR(
+"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
+#else
+
+ /* just a shorter name for the current buffer */
+ YY_BUFFER_STATE b = yy_current_buffer;
+
+ int yy_c_buf_p_offset =
+ (int) (yy_c_buf_p - b->yy_ch_buf);
+
+ if ( b->yy_is_our_buffer )
+ {
+ int new_size = b->yy_buf_size * 2;
+
+ if ( new_size <= 0 )
+ b->yy_buf_size += b->yy_buf_size / 8;
+ else
+ b->yy_buf_size *= 2;
+
+ b->yy_ch_buf = (char *)
+ /* Include room in for 2 EOB chars. */
+ yy_flex_realloc( (void *) b->yy_ch_buf,
+ b->yy_buf_size + 2 );
+ }
+ else
+ /* Can't grow it, we don't own it. */
+ b->yy_ch_buf = 0;
+
+ if ( ! b->yy_ch_buf )
+ YY_FATAL_ERROR(
+ "fatal error - scanner input buffer overflow" );
+
+ yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+ num_to_read = yy_current_buffer->yy_buf_size -
+ number_to_move - 1;
+#endif
+ }
+
+ if ( num_to_read > YY_READ_BUF_SIZE )
+ num_to_read = YY_READ_BUF_SIZE;
+
+ /* Read in more data. */
+ YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
+ yy_n_chars, num_to_read );
+
+ yy_current_buffer->yy_n_chars = yy_n_chars;
+ }
+
+ if ( yy_n_chars == 0 )
+ {
+ if ( number_to_move == YY_MORE_ADJ )
+ {
+ ret_val = EOB_ACT_END_OF_FILE;
+ yyrestart( yyin );
+ }
+
+ else
+ {
+ ret_val = EOB_ACT_LAST_MATCH;
+ yy_current_buffer->yy_buffer_status =
+ YY_BUFFER_EOF_PENDING;
+ }
+ }
+
+ else
+ ret_val = EOB_ACT_CONTINUE_SCAN;
+
+ yy_n_chars += number_to_move;
+ yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
+ yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
+
+ yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
+
+ return ret_val;
+ }
+
+
+/* yy_get_previous_state - get the state just before the EOB char was reached */
+
+static yy_state_type yy_get_previous_state()
+ {
+ register yy_state_type yy_current_state;
+ register char *yy_cp;
+
+ yy_current_state = yy_start;
+
+ for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
+ {
+ register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
+ if ( yy_accept[yy_current_state] )
+ {
+ yy_last_accepting_state = yy_current_state;
+ yy_last_accepting_cpos = yy_cp;
+ }
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+ {
+ yy_current_state = (int) yy_def[yy_current_state];
+ if ( yy_current_state >= 118 )
+ yy_c = yy_meta[(unsigned int) yy_c];
+ }
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+ }
+
+ return yy_current_state;
+ }
+
+
+/* yy_try_NUL_trans - try to make a transition on the NUL character
+ *
+ * synopsis
+ * next_state = yy_try_NUL_trans( current_state );
+ */
+
+#ifdef YY_USE_PROTOS
+static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
+#else
+static yy_state_type yy_try_NUL_trans( yy_current_state )
+yy_state_type yy_current_state;
+#endif
+ {
+ register int yy_is_jam;
+ register char *yy_cp = yy_c_buf_p;
+
+ register YY_CHAR yy_c = 1;
+ if ( yy_accept[yy_current_state] )
+ {
+ yy_last_accepting_state = yy_current_state;
+ yy_last_accepting_cpos = yy_cp;
+ }
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+ {
+ yy_current_state = (int) yy_def[yy_current_state];
+ if ( yy_current_state >= 118 )
+ yy_c = yy_meta[(unsigned int) yy_c];
+ }
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+ yy_is_jam = (yy_current_state == 117);
+
+ return yy_is_jam ? 0 : yy_current_state;
+ }
+
+#if 0
+#ifndef YY_NO_UNPUT
+#ifdef YY_USE_PROTOS
+static void yyunput( int c, register char *yy_bp )
+#else
+static void yyunput( c, yy_bp )
+int c;
+register char *yy_bp;
+#endif
+ {
+ register char *yy_cp = yy_c_buf_p;
+
+ /* undo effects of setting up yytext */
+ *yy_cp = yy_hold_char;
+
+ if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
+ { /* need to shift things up to make room */
+ /* +2 for EOB chars. */
+ register int number_to_move = yy_n_chars + 2;
+ register char *dest = &yy_current_buffer->yy_ch_buf[
+ yy_current_buffer->yy_buf_size + 2];
+ register char *source =
+ &yy_current_buffer->yy_ch_buf[number_to_move];
+
+ while ( source > yy_current_buffer->yy_ch_buf )
+ *--dest = *--source;
+
+ yy_cp += (int) (dest - source);
+ yy_bp += (int) (dest - source);
+ yy_current_buffer->yy_n_chars =
+ yy_n_chars = yy_current_buffer->yy_buf_size;
+
+ if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
+ YY_FATAL_ERROR( "flex scanner push-back overflow" );
+ }
+
+ *--yy_cp = (char) c;
+
+
+ yytext_ptr = yy_bp;
+ yy_hold_char = *yy_cp;
+ yy_c_buf_p = yy_cp;
+ }
+#endif /* ifndef YY_NO_UNPUT */
+#endif /* 0 */
+
+#ifdef __cplusplus
+static int yyinput()
+#else
+static int input()
+#endif
+ {
+ int c;
+
+ *yy_c_buf_p = yy_hold_char;
+
+ if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
+ {
+ /* 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 ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
+ /* This was really a NUL. */
+ *yy_c_buf_p = '\0';
+
+ else
+ { /* need more input */
+ int offset = yy_c_buf_p - yytext_ptr;
+ ++yy_c_buf_p;
+
+ switch ( yy_get_next_buffer() )
+ {
+ case EOB_ACT_LAST_MATCH:
+ /* This happens because 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. */
+ yyrestart( yyin );
+
+ /* fall through */
+
+ case EOB_ACT_END_OF_FILE:
+ {
+ if ( yywrap() )
+ return EOF;
+
+ if ( ! yy_did_buffer_switch_on_eof )
+ YY_NEW_FILE;
+#ifdef __cplusplus
+ return yyinput();
+#else
+ return input();
+#endif
+ }
+
+ case EOB_ACT_CONTINUE_SCAN:
+ yy_c_buf_p = yytext_ptr + offset;
+ break;
+ }
+ }
+ }
+
+ c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
+ *yy_c_buf_p = '\0'; /* preserve yytext */
+ yy_hold_char = *++yy_c_buf_p;
+
+
+ return c;
+ }
+
+void yyflush_current_buffer (void)
+{
+ YY_FLUSH_BUFFER;
+}
+
+
+#ifdef YY_USE_PROTOS
+void yyrestart( FILE *input_file )
+#else
+void yyrestart( input_file )
+FILE *input_file;
+#endif
+ {
+ if ( ! yy_current_buffer )
+ yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
+
+ yy_init_buffer( yy_current_buffer, input_file );
+ yy_load_buffer_state();
+ }
+
+
+#ifdef YY_USE_PROTOS
+void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
+#else
+void yy_switch_to_buffer( new_buffer )
+YY_BUFFER_STATE new_buffer;
+#endif
+ {
+ if ( yy_current_buffer == new_buffer )
+ return;
+
+ if ( yy_current_buffer )
+ {
+ /* Flush out information for old buffer. */
+ *yy_c_buf_p = yy_hold_char;
+ yy_current_buffer->yy_buf_pos = yy_c_buf_p;
+ yy_current_buffer->yy_n_chars = yy_n_chars;
+ }
+
+ yy_current_buffer = new_buffer;
+ yy_load_buffer_state();
+
+ /* We don't actually know whether we did this switch during
+ * EOF (yywrap()) processing, but the only time this flag
+ * is looked at is after yywrap() is called, so it's safe
+ * to go ahead and always set it.
+ */
+ yy_did_buffer_switch_on_eof = 1;
+ }
+
+
+#ifdef YY_USE_PROTOS
+void yy_load_buffer_state( void )
+#else
+void yy_load_buffer_state()
+#endif
+ {
+ yy_n_chars = yy_current_buffer->yy_n_chars;
+ yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
+ yyin = yy_current_buffer->yy_input_file;
+ yy_hold_char = *yy_c_buf_p;
+ }
+
+
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
+#else
+YY_BUFFER_STATE yy_create_buffer( file, size )
+FILE *file;
+int size;
+#endif
+ {
+ YY_BUFFER_STATE b;
+
+ b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
+ if ( ! b )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+ b->yy_buf_size = size;
+
+ /* 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->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
+ if ( ! b->yy_ch_buf )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+
+ b->yy_is_our_buffer = 1;
+
+ yy_init_buffer( b, file );
+
+ return b;
+ }
+
+
+#ifdef YY_USE_PROTOS
+void yy_delete_buffer( YY_BUFFER_STATE b )
+#else
+void yy_delete_buffer( b )
+YY_BUFFER_STATE b;
+#endif
+ {
+ if ( ! b )
+ return;
+
+ if ( b == yy_current_buffer )
+ yy_current_buffer = (YY_BUFFER_STATE) 0;
+
+ if ( b->yy_is_our_buffer )
+ yy_flex_free( (void *) b->yy_ch_buf );
+
+ yy_flex_free( (void *) b );
+ }
+
+
+
+#ifdef YY_USE_PROTOS
+void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
+#else
+void yy_init_buffer( b, file )
+YY_BUFFER_STATE b;
+FILE *file;
+#endif
+
+
+ {
+ yy_flush_buffer( b );
+
+ b->yy_input_file = file;
+ b->yy_fill_buffer = 1;
+
+#if defined (ACE_HAS_WINCE)
+ // Mimic the behavior as WinCE does not have isatty().
+ if ((file != 0) && (file == ACE_OS::fileno(file))) {
+ b->yy_is_interactive = 1;
+ }
+ else {
+ b->yy_is_interactive = 0;
+ }
+#else
+ b->yy_is_interactive = file ? (ACE_OS::isatty( ACE_OS::fileno(file) ) > 0) : 0;
+#endif // ACE_HAS_WINCE
+
+ }
+
+
+#ifdef YY_USE_PROTOS
+void yy_flush_buffer( YY_BUFFER_STATE b )
+#else
+void yy_flush_buffer( b )
+YY_BUFFER_STATE b;
+#endif
+
+ {
+ if ( ! b )
+ return;
+
+ b->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->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
+ b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
+
+ b->yy_buf_pos = &b->yy_ch_buf[0];
+
+ b->yy_at_bol = 1;
+ b->yy_buffer_status = YY_BUFFER_NEW;
+
+ if ( b == yy_current_buffer )
+ yy_load_buffer_state();
+ }
+
+
+#ifndef YY_NO_SCAN_BUFFER
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
+#else
+YY_BUFFER_STATE yy_scan_buffer( base, size )
+char *base;
+yy_size_t size;
+#endif
+ {
+ YY_BUFFER_STATE b;
+
+ if ( size < 2 ||
+ base[size-2] != YY_END_OF_BUFFER_CHAR ||
+ base[size-1] != YY_END_OF_BUFFER_CHAR )
+ /* They forgot to leave room for the EOB's. */
+ return 0;
+
+ b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
+ if ( ! b )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+
+ b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
+ b->yy_buf_pos = b->yy_ch_buf = base;
+ b->yy_is_our_buffer = 0;
+ b->yy_input_file = 0;
+ b->yy_n_chars = b->yy_buf_size;
+ b->yy_is_interactive = 0;
+ b->yy_at_bol = 1;
+ b->yy_fill_buffer = 0;
+ b->yy_buffer_status = YY_BUFFER_NEW;
+
+ yy_switch_to_buffer( b );
+
+ return b;
+ }
+#endif
+
+
+#ifndef YY_NO_SCAN_STRING
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
+#else
+YY_BUFFER_STATE yy_scan_string( yy_str )
+yyconst char *yy_str;
+#endif
+ {
+ int len;
+ for ( len = 0; yy_str[len]; ++len )
+ ;
+
+ return yy_scan_bytes( yy_str, len );
+ }
+#endif
+
+
+#ifndef YY_NO_SCAN_BYTES
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
+#else
+YY_BUFFER_STATE yy_scan_bytes( bytes, len )
+yyconst char *bytes;
+int len;
+#endif
+ {
+ YY_BUFFER_STATE b;
+ char *buf;
+ yy_size_t n;
+ int i;
+
+ /* Get memory for full buffer, including space for trailing EOB's. */
+ n = len + 2;
+ buf = (char *) yy_flex_alloc( n );
+ if ( ! buf )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+
+ for ( i = 0; i < len; ++i )
+ buf[i] = bytes[i];
+
+ buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
+
+ b = yy_scan_buffer( buf, n );
+ if ( ! b )
+ YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+
+ /* It's okay to grow etc. this buffer, and we should throw it
+ * away when we're done.
+ */
+ b->yy_is_our_buffer = 1;
+
+ return b;
+ }
+#endif
+
+
+#ifndef YY_NO_PUSH_STATE
+#ifdef YY_USE_PROTOS
+static void yy_push_state( int new_state )
+#else
+static void yy_push_state( new_state )
+int new_state;
+#endif
+ {
+ if ( yy_start_stack_ptr >= yy_start_stack_depth )
+ {
+ yy_size_t new_size;
+
+ yy_start_stack_depth += YY_START_STACK_INCR;
+ new_size = yy_start_stack_depth * sizeof( int );
+
+ if ( ! yy_start_stack )
+ yy_start_stack = (int *) yy_flex_alloc( new_size );
+
+ else
+ yy_start_stack = (int *) yy_flex_realloc(
+ (void *) yy_start_stack, new_size );
+
+ if ( ! yy_start_stack )
+ YY_FATAL_ERROR(
+ "out of memory expanding start-condition stack" );
+ }
+
+ yy_start_stack[yy_start_stack_ptr++] = YY_START;
+
+ BEGIN(new_state);
+ }
+#endif
+
+
+#ifndef YY_NO_POP_STATE
+static void yy_pop_state()
+ {
+ if ( --yy_start_stack_ptr < 0 )
+ YY_FATAL_ERROR( "start-condition stack underflow" );
+
+ BEGIN(yy_start_stack[yy_start_stack_ptr]);
+ }
+#endif
+
+
+#ifndef YY_NO_TOP_STATE
+static int yy_top_state()
+ {
+ return yy_start_stack[yy_start_stack_ptr - 1];
+ }
+#endif
+
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
+
+#ifdef YY_USE_PROTOS
+static void yy_fatal_error( yyconst char msg[] )
+#else
+static void yy_fatal_error( msg )
+char msg[];
+#endif
+ {
+ (void) ACE_OS::fprintf( stderr, "%s\n", msg );
+ ACE_OS::exit( YY_EXIT_FAILURE );
+ }
+
+
+
+/* Redefine yyless() so it works in section 3 code. */
+
+#undef yyless
+#define yyless(n) \
+ do \
+ { \
+ /* Undo effects of setting up yytext. */ \
+ yytext[yyleng] = yy_hold_char; \
+ yy_c_buf_p = yytext + n; \
+ yy_hold_char = *yy_c_buf_p; \
+ *yy_c_buf_p = '\0'; \
+ yyleng = n; \
+ } \
+ while ( 0 )
+
+
+/* Internal utility routines. */
+
+#ifndef yytext_ptr
+#ifdef YY_USE_PROTOS
+static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
+#else
+static void yy_flex_strncpy( s1, s2, n )
+char *s1;
+yyconst char *s2;
+int n;
+#endif
+ {
+ register int i;
+ for ( i = 0; i < n; ++i )
+ s1[i] = s2[i];
+ }
+#endif
+
+#ifdef YY_NEED_STRLEN
+#ifdef YY_USE_PROTOS
+static int yy_flex_strlen( yyconst char *s )
+#else
+static int yy_flex_strlen( s )
+yyconst char *s;
+#endif
+ {
+ register int n;
+ for ( n = 0; s[n]; ++n )
+ ;
+
+ return n;
+ }
+#endif
+
+
+#ifdef YY_USE_PROTOS
+static void *yy_flex_alloc( yy_size_t size )
+#else
+static void *yy_flex_alloc( size )
+yy_size_t size;
+#endif
+ {
+ return (void *) ACE_OS::malloc( size );
+ }
+
+#ifdef YY_USE_PROTOS
+static void *yy_flex_realloc( void *ptr, yy_size_t size )
+#else
+static void *yy_flex_realloc( ptr, size )
+void *ptr;
+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 *) ACE_OS::realloc( (char *) ptr, size );
+ }
+
+#ifdef YY_USE_PROTOS
+static void yy_flex_free( void *ptr )
+#else
+static void yy_flex_free( ptr )
+void *ptr;
+#endif
+ {
+ ACE_OS::free( ptr );
+ }
+
+#if YY_MAIN
+int main()
+ {
+ yylex();
+ return 0;
+ }
+#endif
+//#line 122 "ETCL/ETCL.ll"
+
+
+const char*
+extract_string(char* str)
+{
+ char *t = str;
+ for (char * i = str + 1; *i != '\''; ++i, ++t)
+ {
+ if (*i == '\\')
+ {
+ ++i;
+ if (*i == 0)
+ return 0;
+ else if (*i == 't')
+ *t = '\t';
+ else if (*i == 'n')
+ *t = '\n';
+ else if (*i == '\\')
+ *t = '\\';
+ else
+ *t = *i;
+ continue;
+ }
+
+ *t = *i;
+ }
+
+ *t = '\0';
+ return str;
+}
+
+int
+yywrap (void)
+{
+ return 1;
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/ETCL/ETCL_y.cpp b/dep/acelite/ace/ETCL/ETCL_y.cpp
new file mode 100644
index 00000000000..880b6300d6a
--- /dev/null
+++ b/dep/acelite/ace/ETCL/ETCL_y.cpp
@@ -0,0 +1,1288 @@
+
+/* A Bison parser, made from ETCL/ETCL.yy
+ by GNU Bison version 1.28 */
+
+#define YYBISON 1 /* Identify Bison output. */
+
+#define ETCL_GT 257
+#define ETCL_GE 258
+#define ETCL_LT 259
+#define ETCL_LE 260
+#define ETCL_EQ 261
+#define ETCL_NE 262
+#define ETCL_EXIST 263
+#define ETCL_DEFAULT 264
+#define ETCL_AND 265
+#define ETCL_OR 266
+#define ETCL_NOT 267
+#define ETCL_IN 268
+#define ETCL_TWIDDLE 269
+#define ETCL_BOOLEAN 270
+#define ETCL_PLUS 271
+#define ETCL_MINUS 272
+#define ETCL_MULT 273
+#define ETCL_DIV 274
+#define ETCL_UMINUS 275
+#define ETCL_INTEGER 276
+#define ETCL_FLOAT 277
+#define ETCL_STRING 278
+#define ETCL_RPAREN 279
+#define ETCL_LPAREN 280
+#define ETCL_RBRA 281
+#define ETCL_LBRA 282
+#define ETCL_IDENT 283
+#define ETCL_UNSIGNED 284
+#define ETCL_SIGNED 285
+#define ETCL_DOUBLE 286
+#define ETCL_CONSTRAINT 287
+#define ETCL_COMPONENT 288
+#define ETCL_WITH 289
+#define ETCL_MAX 290
+#define ETCL_MIN 291
+#define ETCL_FIRST 292
+#define ETCL_RANDOM 293
+#define ETCL_DOLLAR 294
+#define ETCL_DOT 295
+#define ETCL_DISCRIMINANT 296
+#define ETCL_LENGTH 297
+#define ETCL_TYPE_ID 298
+#define ETCL_REPOS_ID 299
+
+
+//=============================================================================
+/**
+ * @file ETCL_y.cpp
+ *
+ * $Id: ETCL_y.cpp 93651 2011-03-28 08:49:11Z johnnyw $
+ *
+ * @author Carlos O'Ryan <coryan@uci.edu> based on previous work by Seth Widoff <sbw1@cs.wustl.edu>
+ */
+//=============================================================================
+
+
+#include "ace/ETCL/ETCL_y.h"
+#include "ace/ETCL/ETCL_Constraint.h"
+#include "ace/ETCL/ETCL_Interpreter.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+extern int yylex (void);
+extern void yyflush_current_buffer (void);
+
+static void yyerror (const char *)
+{
+ // @@ TODO
+ // Ignore error messages
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#include <stdio.h>
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+#ifndef __cplusplus
+#ifndef __STDC__
+#define const
+#endif
+#endif
+
+
+
+#define YYFINAL 114
+#define YYFLAG -32768
+#define YYNTBASE 46
+
+#define YYTRANSLATE(x) ((unsigned)(x) <= 299 ? yytranslate[x] : 65)
+
+static const char 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, 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, 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,
+ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
+ 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45
+};
+
+#if YYDEBUG != 0
+static const short yyprhs[] = { 0,
+ 0, 2, 4, 7, 10, 13, 15, 17, 21, 23,
+ 27, 29, 33, 37, 41, 45, 49, 53, 55, 59,
+ 64, 66, 70, 72, 76, 80, 82, 86, 90, 92,
+ 95, 97, 101, 103, 106, 109, 111, 114, 117, 119,
+ 121, 124, 128, 132, 135, 137, 138, 141, 144, 146,
+ 148, 149, 152, 154, 156, 159, 161, 163, 165, 167,
+ 169, 171, 176, 181, 184, 189, 190, 192, 195, 198
+};
+
+static const short yyrhs[] = { 48,
+ 0, 47, 0, 37, 48, 0, 36, 48, 0, 35,
+ 48, 0, 38, 0, 39, 0, 48, 12, 49, 0,
+ 49, 0, 49, 11, 50, 0, 50, 0, 51, 7,
+ 51, 0, 51, 8, 51, 0, 51, 3, 51, 0,
+ 51, 4, 51, 0, 51, 5, 51, 0, 51, 6,
+ 51, 0, 51, 0, 52, 14, 57, 0, 52, 14,
+ 40, 57, 0, 52, 0, 53, 15, 53, 0, 53,
+ 0, 53, 17, 54, 0, 53, 18, 54, 0, 54,
+ 0, 54, 19, 55, 0, 54, 20, 55, 0, 55,
+ 0, 13, 56, 0, 56, 0, 26, 48, 25, 0,
+ 22, 0, 17, 22, 0, 18, 22, 0, 23, 0,
+ 17, 23, 0, 18, 23, 0, 24, 0, 16, 0,
+ 9, 29, 0, 9, 40, 57, 0, 10, 40, 57,
+ 0, 40, 57, 0, 29, 0, 0, 41, 59, 0,
+ 29, 58, 0, 60, 0, 61, 0, 0, 41, 59,
+ 0, 60, 0, 61, 0, 29, 58, 0, 43, 0,
+ 42, 0, 44, 0, 45, 0, 62, 0, 63, 0,
+ 28, 22, 27, 58, 0, 26, 29, 25, 58, 0,
+ 22, 58, 0, 26, 64, 25, 58, 0, 0, 22,
+ 0, 17, 22, 0, 18, 22, 0, 24, 0
+};
+
+#endif
+
+#if YYDEBUG != 0
+static const short yyrline[] = { 0,
+ 92, 93, 96, 98, 100, 102, 104, 108, 110, 113,
+ 115, 118, 120, 122, 124, 126, 128, 130, 133, 135,
+ 137, 140, 142, 145, 147, 149, 152, 154, 156, 159,
+ 161, 164, 166, 168, 170, 172, 174, 176, 178, 180,
+ 182, 184, 186, 188, 190, 194, 196, 199, 202, 203,
+ 206, 208, 211, 212, 215, 217, 219, 221, 223, 225,
+ 226, 229, 233, 237, 241, 245, 247, 249, 251, 253
+};
+#endif
+
+
+#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
+
+static const char * const yytname[] = { "$","error","$undefined.","ETCL_GT",
+"ETCL_GE","ETCL_LT","ETCL_LE","ETCL_EQ","ETCL_NE","ETCL_EXIST",
+"ETCL_DEFAULT","ETCL_AND","ETCL_OR","ETCL_NOT","ETCL_IN",
+"ETCL_TWIDDLE","ETCL_BOOLEAN","ETCL_PLUS","ETCL_MINUS","ETCL_MULT",
+"ETCL_DIV","ETCL_UMINUS","ETCL_INTEGER","ETCL_FLOAT","ETCL_STRING",
+"ETCL_RPAREN","ETCL_LPAREN","ETCL_RBRA","ETCL_LBRA","ETCL_IDENT",
+"ETCL_UNSIGNED","ETCL_SIGNED","ETCL_DOUBLE","ETCL_CONSTRAINT",
+"ETCL_COMPONENT","ETCL_WITH","ETCL_MAX","ETCL_MIN","ETCL_FIRST",
+"ETCL_RANDOM","ETCL_DOLLAR","ETCL_DOT","ETCL_DISCRIMINANT","ETCL_LENGTH",
+"ETCL_TYPE_ID","ETCL_REPOS_ID","constraint","preference","bool_or","bool_and",
+"bool_compare","expr_in","expr_twiddle","expr","term","factor_not","factor",
+"component","component_ext","component_dot","component_array","component_assoc",
+"component_pos","union_pos","union_val", 0
+};
+#endif
+
+static const short yyr1[] = { 0,
+ 46, 46, 47, 47, 47, 47, 47, 48, 48, 49,
+ 49, 50, 50, 50, 50, 50, 50, 50, 51, 51,
+ 51, 52, 52, 53, 53, 53, 54, 54, 54, 55,
+ 55, 56, 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 57, 57, 57, 57, 57,
+ 58, 58, 58, 58, 59, 59, 59, 59, 59, 59,
+ 59, 60, 61, 62, 63, 64, 64, 64, 64, 64
+};
+
+static const short yyr2[] = { 0,
+ 1, 1, 2, 2, 2, 1, 1, 3, 1, 3,
+ 1, 3, 3, 3, 3, 3, 3, 1, 3, 4,
+ 1, 3, 1, 3, 3, 1, 3, 3, 1, 2,
+ 1, 3, 1, 2, 2, 1, 2, 2, 1, 1,
+ 2, 3, 3, 2, 1, 0, 2, 2, 1, 1,
+ 0, 2, 1, 1, 2, 1, 1, 1, 1, 1,
+ 1, 4, 4, 2, 4, 0, 1, 2, 2, 1
+};
+
+static const short yydefact[] = { 0,
+ 0, 0, 0, 40, 0, 0, 33, 36, 39, 0,
+ 45, 0, 0, 0, 6, 7, 46, 2, 1, 9,
+ 11, 18, 21, 23, 26, 29, 31, 41, 46, 46,
+ 30, 34, 37, 35, 38, 0, 5, 4, 3, 0,
+ 0, 51, 0, 44, 49, 50, 0, 0, 0, 0,
+ 0, 0, 0, 0, 46, 0, 0, 0, 0, 0,
+ 42, 43, 32, 0, 0, 0, 48, 53, 54, 51,
+ 66, 51, 57, 56, 58, 59, 47, 60, 61, 8,
+ 10, 14, 15, 16, 17, 12, 13, 46, 19, 22,
+ 24, 25, 27, 28, 51, 51, 52, 64, 0, 0,
+ 67, 70, 0, 55, 20, 63, 62, 68, 69, 51,
+ 65, 0, 0, 0
+};
+
+static const short yydefgoto[] = { 112,
+ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
+ 44, 67, 77, 68, 69, 78, 79, 103
+};
+
+static const short yypact[] = { 41,
+ -13, -39, 94,-32768, 38, 46,-32768,-32768,-32768, 73,
+-32768, 73, 73, 73,-32768,-32768, -9,-32768, -6, 7,
+-32768, 121, -5, 19, 55,-32768,-32768,-32768, -9, -9,
+-32768,-32768,-32768,-32768,-32768, 21, -6, -6, -6, 6,
+ 25, -2, -1,-32768,-32768,-32768, 73, 73, 73, 73,
+ 73, 73, 73, 73, -18, 73, 73, 73, 73, 73,
+-32768,-32768,-32768, 27, 29, -1,-32768,-32768,-32768, -2,
+ 31, -2,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 7,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768, -9,-32768, 67,
+ 55, 55,-32768,-32768, -2, -2,-32768,-32768, 44, 50,
+-32768,-32768, 69,-32768,-32768,-32768,-32768,-32768,-32768, -2,
+-32768, 98, 100,-32768
+};
+
+static const short yypgoto[] = {-32768,
+-32768, 95, 54, 58, 86,-32768, 59, 30, 33, 111,
+ -26, -65, 53, -17, -15,-32768,-32768,-32768
+};
+
+
+#define YYLAST 140
+
+
+static const short yytable[] = { 45,
+ 30, 46, 61, 62, 98, 47, 104, 40, 55, 41,
+ 42, 45, 45, 46, 46, 28, 40, 48, 41, 42,
+ 70, 88, 43, 40, 71, 41, 29, 72, 89, 106,
+ 107, 43, 47, 56, 64, 57, 58, 45, 66, 46,
+ 73, 74, 75, 76, 111, 63, 65, 99, 100, 1,
+ 2, 95, 101, 3, 102, 96, 4, 5, 6, 32,
+ 33, 105, 7, 8, 9, 108, 10, 34, 35, 11,
+ 45, 109, 46, 59, 60, 12, 13, 14, 15, 16,
+ 17, 1, 2, 57, 58, 3, 91, 92, 4, 5,
+ 6, 93, 94, 110, 7, 8, 9, 113, 10, 114,
+ 80, 11, 1, 2, 36, 81, 37, 38, 39, 4,
+ 5, 6, 17, 31, 90, 7, 8, 9, 97, 10,
+ 0, 0, 11, 49, 50, 51, 52, 53, 54, 0,
+ 0, 0, 0, 17, 82, 83, 84, 85, 86, 87
+};
+
+static const short yycheck[] = { 17,
+ 40, 17, 29, 30, 70, 12, 72, 26, 14, 28,
+ 29, 29, 30, 29, 30, 29, 26, 11, 28, 29,
+ 22, 40, 41, 26, 26, 28, 40, 29, 55, 95,
+ 96, 41, 12, 15, 29, 17, 18, 55, 41, 55,
+ 42, 43, 44, 45, 110, 25, 22, 17, 18, 9,
+ 10, 25, 22, 13, 24, 27, 16, 17, 18, 22,
+ 23, 88, 22, 23, 24, 22, 26, 22, 23, 29,
+ 88, 22, 88, 19, 20, 35, 36, 37, 38, 39,
+ 40, 9, 10, 17, 18, 13, 57, 58, 16, 17,
+ 18, 59, 60, 25, 22, 23, 24, 0, 26, 0,
+ 47, 29, 9, 10, 10, 48, 12, 13, 14, 16,
+ 17, 18, 40, 3, 56, 22, 23, 24, 66, 26,
+ -1, -1, 29, 3, 4, 5, 6, 7, 8, -1,
+ -1, -1, -1, 40, 49, 50, 51, 52, 53, 54
+};
+/* -*-C-*- Note some compilers choke on comments on `//#line' lines. */
+//#line 3 "/pkg/gnu/share/bison.simple"
+/* This file comes from bison-1.28. */
+
+/* Skeleton output parser for bison,
+ Copyright (C) 1984, 1989, 1990 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. */
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#ifndef YYSTACK_USE_ALLOCA
+#ifdef alloca
+#define YYSTACK_USE_ALLOCA
+#else /* alloca not defined */
+#ifdef __GNUC__
+#define YYSTACK_USE_ALLOCA
+#define alloca __builtin_alloca
+#else /* not GNU C. */
+#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || (defined (__sun) && defined (__i386))
+#define YYSTACK_USE_ALLOCA
+#include <alloca.h>
+#else /* not sparc */
+/* We think this test detects Watcom and Microsoft C. */
+/* This used to test MSDOS, but that is a bad idea
+ since that symbol is in the user namespace. */
+#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
+#if 0 /* No need for malloc.h, which pollutes the namespace;
+ instead, just don't use alloca. */
+#include <malloc.h>
+#endif
+#else /* not MSDOS, or __TURBOC__ */
+#if defined(_AIX)
+/* I don't know what this was needed for, but it pollutes the namespace.
+ So I turned it off. rms, 2 May 1997. */
+/* #include <malloc.h> */
+ #pragma alloca
+#define YYSTACK_USE_ALLOCA
+#else /* not MSDOS, or __TURBOC__, or _AIX */
+#if 0
+#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
+ and on HPUX 10. Eventually we can turn this on. */
+#define YYSTACK_USE_ALLOCA
+#define alloca __builtin_alloca
+#endif /* __hpux */
+#endif
+#endif /* not _AIX */
+#endif /* not MSDOS, or __TURBOC__ */
+#endif /* not sparc */
+#endif /* not GNU C */
+#endif /* alloca not defined */
+#endif /* YYSTACK_USE_ALLOCA not defined */
+
+#ifdef YYSTACK_USE_ALLOCA
+#define YYSTACK_ALLOC alloca
+#else
+#define YYSTACK_ALLOC malloc
+#endif
+
+/* Note: there must be only one dollar sign in this file.
+ It is replaced by the list of actions, each action
+ as one case of the switch. */
+
+#define yyerrok (yyerrstatus = 0)
+#define yyclearin (yychar = YYEMPTY)
+#define YYEMPTY -2
+#define YYEOF 0
+#define YYACCEPT goto yyacceptlab
+#define YYABORT goto yyabortlab
+#define YYERROR goto yyerrlab1
+/* Like YYERROR except do call yyerror.
+ This remains here temporarily to ease the
+ transition to the new meaning of YYERROR, for GCC.
+ Once GCC version 2 has supplanted version 1, this can go. */
+#define YYFAIL goto yyerrlab
+#define YYRECOVERING() (!!yyerrstatus)
+#define YYBACKUP(token, value) \
+do \
+ if (yychar == YYEMPTY && yylen == 1) \
+ { yychar = (token), yylval = (value); \
+ yychar1 = YYTRANSLATE (yychar); \
+ YYPOPSTACK; \
+ goto yybackup; \
+ } \
+ else \
+ { yyerror ("syntax error: cannot back up"); YYERROR; } \
+while (0)
+
+#define YYTERROR 1
+#define YYERRCODE 256
+
+#ifndef YYPURE
+#define YYLEX yylex()
+#endif
+
+#ifdef YYPURE
+#ifdef YYLSP_NEEDED
+#ifdef YYLEX_PARAM
+#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
+#else
+#define YYLEX yylex(&yylval, &yylloc)
+#endif
+#else /* not YYLSP_NEEDED */
+#ifdef YYLEX_PARAM
+#define YYLEX yylex(&yylval, YYLEX_PARAM)
+#else
+#define YYLEX yylex(&yylval)
+#endif
+#endif /* not YYLSP_NEEDED */
+#endif
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+/* If nonreentrant, generate the variables here */
+
+#ifndef YYPURE
+
+int yychar; /* the lookahead symbol */
+YYSTYPE yylval; /* the semantic value of the */
+ /* lookahead symbol */
+YYSTYPE yyval; /* the variable used to return */
+ /* semantic values from the action */
+ /* routines */
+
+
+#ifdef YYLSP_NEEDED
+YYLTYPE yylloc; /* location data for the lookahead */
+ /* symbol */
+#endif
+
+int yynerrs; /* number of parse errors so far */
+#endif /* not YYPURE */
+
+#if YYDEBUG != 0
+int yydebug; /* nonzero means print parse trace */
+/* Since this is uninitialized, it does not stop multiple parsers
+ from coexisting. */
+#endif
+
+/* YYINITDEPTH indicates the initial size of the parser's stacks */
+
+#ifndef YYINITDEPTH
+#define YYINITDEPTH 200
+#endif
+
+/* YYMAXDEPTH is the maximum size the stacks can grow to
+ (effective only if the built-in stack extension method is used). */
+
+#if YYMAXDEPTH == 0
+#undef YYMAXDEPTH
+#endif
+
+#ifndef YYMAXDEPTH
+#define YYMAXDEPTH 10000
+#endif
+
+/* Define __yy_memcpy. Note that the size argument
+ should be passed with type unsigned int, because that is what the non-GCC
+ definitions require. With GCC, __builtin_memcpy takes an arg
+ of type size_t, but it can handle unsigned int. */
+
+#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
+#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
+#else /* not GNU C or C++ */
+#ifndef __cplusplus
+
+/* This is the most reliable way to avoid incompatibilities
+ in available built-in functions on various systems. */
+static void
+__yy_memcpy (to, from, count)
+ char *to;
+ char *from;
+ unsigned int count;
+{
+ register char *f = from;
+ register char *t = to;
+ register int i = count;
+
+ while (i-- > 0)
+ *t++ = *f++;
+}
+
+#else /* __cplusplus */
+
+/* This is the most reliable way to avoid incompatibilities
+ in available built-in functions on various systems. */
+static void
+__yy_memcpy (char *to, char *from, unsigned int count)
+{
+ register char *t = to;
+ register char *f = from;
+ register int i = count;
+
+ while (i-- > 0)
+ *t++ = *f++;
+}
+
+#endif
+#endif
+
+//#line 217 "/pkg/gnu/share/bison.simple"
+
+/* The user can define YYPARSE_PARAM as the name of an argument to be passed
+ into 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 YYPARSE_PARAM
+#ifdef __cplusplus
+#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL
+#else /* not __cplusplus */
+#define YYPARSE_PARAM_ARG YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
+#endif /* not __cplusplus */
+#else /* not YYPARSE_PARAM */
+#define YYPARSE_PARAM_ARG
+#define YYPARSE_PARAM_DECL
+#endif /* not YYPARSE_PARAM */
+
+/* Prevent warning if -Wstrict-prototypes. */
+#ifdef __GNUC__
+#ifdef YYPARSE_PARAM
+int yyparse (void *);
+#else
+int yyparse (void);
+#endif
+#endif
+
+int
+yyparse(YYPARSE_PARAM_ARG)
+ YYPARSE_PARAM_DECL
+{
+ register int yystate;
+ register int yyn;
+ register short *yyssp;
+ register YYSTYPE *yyvsp;
+ int yyerrstatus; /* number of tokens to shift before error messages enabled */
+ int yychar1 = 0; /* lookahead token as an internal (translated) token number */
+
+ short yyssa[YYINITDEPTH]; /* the state stack */
+ YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
+
+ short *yyss = yyssa; /* refer to the stacks thru separate pointers */
+ YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
+
+#ifdef YYLSP_NEEDED
+ YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
+ YYLTYPE *yyls = yylsa;
+ YYLTYPE *yylsp;
+
+#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
+#else
+#define YYPOPSTACK (yyvsp--, yyssp--)
+#endif
+
+ int yystacksize = YYINITDEPTH;
+ int yyfree_stacks = 0;
+
+#ifdef YYPURE
+ int yychar;
+ YYSTYPE yylval;
+ int yynerrs;
+#ifdef YYLSP_NEEDED
+ YYLTYPE yylloc;
+#endif
+#endif
+
+ int yylen;
+
+#if YYDEBUG != 0
+ if (yydebug)
+ ACE_OS::fprintf(stderr, "Starting parse\n");
+#endif
+
+ yystate = 0;
+ yyerrstatus = 0;
+ yynerrs = 0;
+ yychar = 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. */
+
+ yyssp = yyss - 1;
+ yyvsp = yyvs;
+#ifdef YYLSP_NEEDED
+ yylsp = yyls;
+#endif
+
+/* Push a new state, which is found in yystate . */
+/* In all cases, when you get here, the value and location stacks
+ have just been pushed. so pushing a state here evens the stacks. */
+yynewstate:
+
+ *++yyssp = yystate;
+
+ if (yyssp >= yyss + yystacksize - 1)
+ {
+ /* Give user a chance to reallocate the stack */
+ /* Use copies of these so that the &'s don't force the real ones into memory. */
+ YYSTYPE *yyvs1 = yyvs;
+ short *yyss1 = yyss;
+#ifdef YYLSP_NEEDED
+ YYLTYPE *yyls1 = yyls;
+#endif
+
+ /* Get the current used size of the three stacks, in elements. */
+ int size = yyssp - yyss + 1;
+
+#ifdef yyoverflow
+ /* Each stack pointer address is followed by the size of
+ the data in use in that stack, in bytes. */
+#ifdef YYLSP_NEEDED
+ /* This used to be a conditional around just the two extra args,
+ but that might be undefined if yyoverflow is a macro. */
+ yyoverflow("parser stack overflow",
+ &yyss1, size * sizeof (*yyssp),
+ &yyvs1, size * sizeof (*yyvsp),
+ &yyls1, size * sizeof (*yylsp),
+ &yystacksize);
+#else
+ yyoverflow("parser stack overflow",
+ &yyss1, size * sizeof (*yyssp),
+ &yyvs1, size * sizeof (*yyvsp),
+ &yystacksize);
+#endif
+
+ yyss = yyss1; yyvs = yyvs1;
+#ifdef YYLSP_NEEDED
+ yyls = yyls1;
+#endif
+#else /* no yyoverflow */
+ /* Extend the stack our own way. */
+ if (yystacksize >= YYMAXDEPTH)
+ {
+ yyerror("parser stack overflow");
+ if (yyfree_stacks)
+ {
+ ACE_OS::free (yyss);
+ ACE_OS::free (yyvs);
+#ifdef YYLSP_NEEDED
+ ACE_OS::free (yyls);
+#endif
+ }
+ return 2;
+ }
+ yystacksize *= 2;
+ if (yystacksize > YYMAXDEPTH)
+ yystacksize = YYMAXDEPTH;
+#ifndef YYSTACK_USE_ALLOCA
+ yyfree_stacks = 1;
+#endif
+ yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
+ __yy_memcpy ((char *)yyss, (char *)yyss1,
+ size * (unsigned int) sizeof (*yyssp));
+ yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
+ __yy_memcpy ((char *)yyvs, (char *)yyvs1,
+ size * (unsigned int) sizeof (*yyvsp));
+#ifdef YYLSP_NEEDED
+ yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
+ __yy_memcpy ((char *)yyls, (char *)yyls1,
+ size * (unsigned int) sizeof (*yylsp));
+#endif
+#endif /* no yyoverflow */
+
+ yyssp = yyss + size - 1;
+ yyvsp = yyvs + size - 1;
+#ifdef YYLSP_NEEDED
+ yylsp = yyls + size - 1;
+#endif
+
+#if YYDEBUG != 0
+ if (yydebug)
+ ACE_OS::fprintf(stderr, "Stack size increased to %d\n", yystacksize);
+#endif
+
+ if (yyssp >= yyss + yystacksize - 1)
+ YYABORT;
+ }
+
+#if YYDEBUG != 0
+ if (yydebug)
+ ACE_OS::fprintf(stderr, "Entering state %d\n", yystate);
+#endif
+
+ goto yybackup;
+ yybackup:
+
+/* Do appropriate processing given the current state. */
+/* Read a lookahead token if we need one and don't already have one. */
+/* yyresume: */
+
+ /* First try to decide what to do without reference to lookahead token. */
+
+ yyn = yypact[yystate];
+ if (yyn == YYFLAG)
+ goto yydefault;
+
+ /* Not known => get a lookahead token if don't already have one. */
+
+ /* yychar is either YYEMPTY or YYEOF
+ or a valid token in external form. */
+
+ if (yychar == YYEMPTY)
+ {
+#if YYDEBUG != 0
+ if (yydebug)
+ ACE_OS::fprintf(stderr, "Reading a token: ");
+#endif
+ yychar = YYLEX;
+ }
+
+ /* Convert token to internal form (in yychar1) for indexing tables with */
+
+ if (yychar <= 0) /* This means end of input. */
+ {
+ yychar1 = 0;
+ yychar = YYEOF; /* Don't call YYLEX any more */
+
+#if YYDEBUG != 0
+ if (yydebug)
+ ACE_OS::fprintf(stderr, "Now at end of input.\n");
+#endif
+ }
+ else
+ {
+ yychar1 = YYTRANSLATE(yychar);
+
+#if YYDEBUG != 0
+ if (yydebug)
+ {
+ ACE_OS::fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
+ /* Give the individual parser a way to print the precise meaning
+ of a token, for further debugging info. */
+#ifdef YYPRINT
+ YYPRINT (stderr, yychar, yylval);
+#endif
+ ACE_OS::fprintf (stderr, ")\n");
+ }
+#endif
+ }
+
+ yyn += yychar1;
+ if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
+ goto yydefault;
+
+ yyn = yytable[yyn];
+
+ /* yyn is what to do for this token type in this state.
+ Negative => reduce, -yyn is rule number.
+ Positive => shift, yyn is new state.
+ New state is final state => don't bother to shift,
+ just return success.
+ 0, or most negative number => error. */
+
+ if (yyn < 0)
+ {
+ if (yyn == YYFLAG)
+ goto yyerrlab;
+ yyn = -yyn;
+ goto yyreduce;
+ }
+ else if (yyn == 0)
+ goto yyerrlab;
+
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+ /* Shift the lookahead token. */
+
+#if YYDEBUG != 0
+ if (yydebug)
+ ACE_OS::fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
+#endif
+
+ /* Discard the token being shifted unless it is eof. */
+ if (yychar != YYEOF)
+ yychar = YYEMPTY;
+
+ *++yyvsp = yylval;
+#ifdef YYLSP_NEEDED
+ *++yylsp = yylloc;
+#endif
+
+ /* count tokens shifted since error; after three, turn off error status. */
+ if (yyerrstatus) yyerrstatus--;
+
+ yystate = yyn;
+ goto yynewstate;
+
+/* Do the default action for the current state. */
+yydefault:
+
+ yyn = yydefact[yystate];
+ if (yyn == 0)
+ goto yyerrlab;
+
+/* Do a reduction. yyn is the number of a rule to reduce with. */
+yyreduce:
+ yylen = yyr2[yyn];
+ if (yylen > 0)
+ yyval = yyvsp[1-yylen]; /* implement default value of the action */
+
+#if YYDEBUG != 0
+ if (yydebug)
+ {
+ int i;
+
+ ACE_OS::fprintf (stderr, "Reducing via rule %d (line %d), ",
+ yyn, yyrline[yyn]);
+
+ /* Print the symbols being reduced, and their result. */
+ for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
+ ACE_OS::fprintf (stderr, "%s ", yytname[yyrhs[i]]);
+ ACE_OS::fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
+ }
+#endif
+
+
+ switch (yyn) {
+
+case 3:
+//#line 97 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Preference (ETCL_MIN, yyvsp[0].constraint); ;
+ break;}
+case 4:
+//#line 99 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Preference (ETCL_MAX, yyvsp[0].constraint); ;
+ break;}
+case 5:
+//#line 101 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Preference (ETCL_WITH, yyvsp[0].constraint); ;
+ break;}
+case 6:
+//#line 103 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Preference (ETCL_FIRST); ;
+ break;}
+case 7:
+//#line 105 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Preference (ETCL_RANDOM); ;
+ break;}
+case 8:
+//#line 109 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Binary_Expr (ETCL_OR, yyvsp[-2].constraint, yyvsp[0].constraint); ;
+ break;}
+case 10:
+//#line 114 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Binary_Expr (ETCL_AND, yyvsp[-2].constraint, yyvsp[0].constraint); ;
+ break;}
+case 12:
+//#line 119 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Binary_Expr (ETCL_EQ, yyvsp[-2].constraint, yyvsp[0].constraint); ;
+ break;}
+case 13:
+//#line 121 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Binary_Expr (ETCL_NE, yyvsp[-2].constraint, yyvsp[0].constraint); ;
+ break;}
+case 14:
+//#line 123 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Binary_Expr (ETCL_GT, yyvsp[-2].constraint, yyvsp[0].constraint); ;
+ break;}
+case 15:
+//#line 125 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Binary_Expr (ETCL_GE, yyvsp[-2].constraint, yyvsp[0].constraint); ;
+ break;}
+case 16:
+//#line 127 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Binary_Expr (ETCL_LT, yyvsp[-2].constraint, yyvsp[0].constraint); ;
+ break;}
+case 17:
+//#line 129 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Binary_Expr (ETCL_LE, yyvsp[-2].constraint, yyvsp[0].constraint); ;
+ break;}
+case 19:
+//#line 134 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Binary_Expr (ETCL_IN, yyvsp[-2].constraint, yyvsp[0].constraint); ;
+ break;}
+case 20:
+//#line 136 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Binary_Expr (ETCL_IN, yyvsp[-3].constraint, yyvsp[0].constraint); ;
+ break;}
+case 22:
+//#line 141 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Binary_Expr (ETCL_TWIDDLE, yyvsp[-2].constraint, yyvsp[0].constraint); ;
+ break;}
+case 24:
+//#line 146 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Binary_Expr (ETCL_PLUS, yyvsp[-2].constraint, yyvsp[0].constraint); ;
+ break;}
+case 25:
+//#line 148 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Binary_Expr (ETCL_MINUS, yyvsp[-2].constraint, yyvsp[0].constraint); ;
+ break;}
+case 27:
+//#line 153 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Binary_Expr (ETCL_MULT, yyvsp[-2].constraint, yyvsp[0].constraint); ;
+ break;}
+case 28:
+//#line 155 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Binary_Expr (ETCL_DIV, yyvsp[-2].constraint, yyvsp[0].constraint); ;
+ break;}
+case 30:
+//#line 160 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Unary_Expr (ETCL_NOT, yyvsp[0].constraint); ;
+ break;}
+case 32:
+//#line 165 "ETCL/ETCL.yy"
+{ yyval.constraint = yyvsp[-1].constraint; ;
+ break;}
+case 33:
+//#line 167 "ETCL/ETCL.yy"
+{ yyval.constraint = yyvsp[0].constraint; ;
+ break;}
+case 34:
+//#line 169 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Unary_Expr (ETCL_PLUS, yyvsp[0].constraint); ;
+ break;}
+case 35:
+//#line 171 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Unary_Expr (ETCL_MINUS, yyvsp[0].constraint); ;
+ break;}
+case 36:
+//#line 173 "ETCL/ETCL.yy"
+{ yyval.constraint = yyvsp[0].constraint; ;
+ break;}
+case 37:
+//#line 175 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Unary_Expr (ETCL_PLUS, yyvsp[0].constraint); ;
+ break;}
+case 38:
+//#line 177 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Unary_Expr (ETCL_MINUS, yyvsp[0].constraint); ;
+ break;}
+case 39:
+//#line 179 "ETCL/ETCL.yy"
+{ yyval.constraint = yyvsp[0].constraint; ;
+ break;}
+case 40:
+//#line 181 "ETCL/ETCL.yy"
+{ yyval.constraint = yyvsp[0].constraint; ;
+ break;}
+case 41:
+//#line 183 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Exist (yyvsp[0].constraint); ;
+ break;}
+case 42:
+//#line 185 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Exist (yyvsp[0].constraint); ;
+ break;}
+case 43:
+//#line 187 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Default (yyvsp[0].constraint); ;
+ break;}
+case 44:
+//#line 189 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Eval (yyvsp[0].constraint); ;
+ break;}
+case 45:
+//#line 191 "ETCL/ETCL.yy"
+{ yyval.constraint = yyvsp[0].constraint; ;
+ break;}
+case 46:
+//#line 195 "ETCL/ETCL.yy"
+{ yyval.constraint = 0; ;
+ break;}
+case 47:
+//#line 197 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Dot (yyvsp[0].constraint); ;
+ break;}
+case 48:
+//#line 200 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Component (yyvsp[-1].constraint, yyvsp[0].constraint); ;
+ break;}
+case 51:
+//#line 207 "ETCL/ETCL.yy"
+{ yyval.constraint = 0; ;
+ break;}
+case 52:
+//#line 209 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Dot (yyvsp[0].constraint); ;
+ break;}
+case 55:
+//#line 216 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Component (yyvsp[-1].constraint, yyvsp[0].constraint); ;
+ break;}
+case 56:
+//#line 218 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Special (ETCL_LENGTH); ;
+ break;}
+case 57:
+//#line 220 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Special (ETCL_DISCRIMINANT); ;
+ break;}
+case 58:
+//#line 222 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Special (ETCL_TYPE_ID); ;
+ break;}
+case 59:
+//#line 224 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Special (ETCL_REPOS_ID); ;
+ break;}
+case 62:
+//#line 230 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Component_Array (yyvsp[-2].constraint, yyvsp[0].constraint); ;
+ break;}
+case 63:
+//#line 234 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Component_Assoc (yyvsp[-2].constraint, yyvsp[0].constraint); ;
+ break;}
+case 64:
+//#line 238 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Component_Pos (yyvsp[-1].constraint, yyvsp[0].constraint); ;
+ break;}
+case 65:
+//#line 242 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Union_Pos (yyvsp[-2].constraint, yyvsp[0].constraint); ;
+ break;}
+case 66:
+//#line 246 "ETCL/ETCL.yy"
+{ yyval.constraint = 0; ;
+ break;}
+case 67:
+//#line 248 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Union_Value (+1, yyvsp[0].constraint); ;
+ break;}
+case 68:
+//#line 250 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Union_Value (+1, yyvsp[0].constraint); ;
+ break;}
+case 69:
+//#line 252 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Union_Value (-1, yyvsp[0].constraint); ;
+ break;}
+case 70:
+//#line 254 "ETCL/ETCL.yy"
+{ yyval.constraint = new ETCL_Union_Value (yyvsp[0].constraint); ;
+ break;}
+}
+ /* the action file gets copied in in place of this dollarsign */
+//#line 543 "/pkg/gnu/share/bison.simple"
+
+ yyvsp -= yylen;
+ yyssp -= yylen;
+#ifdef YYLSP_NEEDED
+ yylsp -= yylen;
+#endif
+
+#if YYDEBUG != 0
+ if (yydebug)
+ {
+ short *ssp1 = yyss - 1;
+ ACE_OS::fprintf (stderr, "state stack now");
+ while (ssp1 != yyssp)
+ ACE_OS::fprintf (stderr, " %d", *++ssp1);
+ ACE_OS::fprintf (stderr, "\n");
+ }
+#endif
+
+ *++yyvsp = yyval;
+
+#ifdef YYLSP_NEEDED
+ yylsp++;
+ if (yylen == 0)
+ {
+ yylsp->first_line = yylloc.first_line;
+ yylsp->first_column = yylloc.first_column;
+ yylsp->last_line = (yylsp-1)->last_line;
+ yylsp->last_column = (yylsp-1)->last_column;
+ yylsp->text = 0;
+ }
+ else
+ {
+ yylsp->last_line = (yylsp+yylen-1)->last_line;
+ yylsp->last_column = (yylsp+yylen-1)->last_column;
+ }
+#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. */
+
+ yyn = yyr1[yyn];
+
+ yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
+ if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+ yystate = yytable[yystate];
+ else
+ yystate = yydefgoto[yyn - YYNTBASE];
+
+ goto yynewstate;
+
+yyerrlab: /* here on detecting error */
+
+ if (! yyerrstatus)
+ /* If not already recovering from an error, report this error. */
+ {
+ ++yynerrs;
+
+#ifdef YYERROR_VERBOSE
+ yyn = yypact[yystate];
+
+ if (yyn > YYFLAG && yyn < YYLAST)
+ {
+ int size = 0;
+ char *msg;
+ int x, count;
+
+ count = 0;
+ /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
+ for (x = (yyn < 0 ? -yyn : 0);
+ x < (sizeof(yytname) / sizeof(char *)); x++)
+ if (yycheck[x + yyn] == x)
+ size += ACE_OS::strlen(yytname[x]) + 15, count++;
+ msg = (char *) ACE_OS::malloc(size + 15);
+ if (msg != 0)
+ {
+ ACE_OS::strcpy(msg, "parse error");
+
+ if (count < 5)
+ {
+ count = 0;
+ for (x = (yyn < 0 ? -yyn : 0);
+ x < (sizeof(yytname) / sizeof(char *)); x++)
+ if (yycheck[x + yyn] == x)
+ {
+ ACE_OS::strcat(msg, count == 0 ? ", expecting `" : " or `");
+ ACE_OS::strcat(msg, yytname[x]);
+ ACE_OS::strcat(msg, "'");
+ count++;
+ }
+ }
+ yyerror(msg);
+ ACE_OS::free(msg);
+ }
+ else
+ yyerror ("parse error; also virtual memory exceeded");
+ }
+ else
+#endif /* YYERROR_VERBOSE */
+ yyerror("parse error");
+ }
+
+ goto yyerrlab1;
+yyerrlab1: /* here on error raised explicitly by an action */
+
+ if (yyerrstatus == 3)
+ {
+ /* if just tried and failed to reuse lookahead token after an error, discard it. */
+
+ /* return failure if at end of input */
+ if (yychar == YYEOF)
+ YYABORT;
+
+#if YYDEBUG != 0
+ if (yydebug)
+ ACE_OS::fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
+#endif
+
+ yychar = YYEMPTY;
+ }
+
+ /* Else will try to reuse lookahead token
+ after shifting the error token. */
+
+ yyerrstatus = 3; /* Each real token shifted decrements this */
+
+ goto yyerrhandle;
+
+yyerrdefault: /* current state does not do anything special for the error token. */
+
+#if 0
+ /* This is wrong; only states that explicitly want error tokens
+ should shift them. */
+ yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
+ if (yyn) goto yydefault;
+#endif
+
+yyerrpop: /* pop the current state because it cannot handle the error token */
+
+ if (yyssp == yyss) YYABORT;
+ yyvsp--;
+ yystate = *--yyssp;
+#ifdef YYLSP_NEEDED
+ yylsp--;
+#endif
+
+#if YYDEBUG != 0
+ if (yydebug)
+ {
+ short *ssp1 = yyss - 1;
+ ACE_OS::fprintf (stderr, "Error: state stack now");
+ while (ssp1 != yyssp)
+ ACE_OS::fprintf (stderr, " %d", *++ssp1);
+ ACE_OS::fprintf (stderr, "\n");
+ }
+#endif
+
+yyerrhandle:
+
+ yyn = yypact[yystate];
+ if (yyn == YYFLAG)
+ goto yyerrdefault;
+
+ yyn += YYTERROR;
+ if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
+ goto yyerrdefault;
+
+ yyn = yytable[yyn];
+ if (yyn < 0)
+ {
+ if (yyn == YYFLAG)
+ goto yyerrpop;
+ yyn = -yyn;
+ goto yyreduce;
+ }
+ else if (yyn == 0)
+ goto yyerrpop;
+
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+#if YYDEBUG != 0
+ if (yydebug)
+ ACE_OS::fprintf(stderr, "Shifting error token, ");
+#endif
+
+ *++yyvsp = yylval;
+#ifdef YYLSP_NEEDED
+ *++yylsp = yylloc;
+#endif
+
+ yystate = yyn;
+ goto yynewstate;
+
+ yyacceptlab:
+ /* YYACCEPT comes here. */
+ if (yyfree_stacks)
+ {
+ ACE_OS::free (yyss);
+ ACE_OS::free (yyvs);
+#ifdef YYLSP_NEEDED
+ ACE_OS::free (yyls);
+#endif
+ }
+ return 0;
+
+ yyabortlab:
+ /* YYABORT comes here. */
+
+ /* Flush out yy_current_buffer before next parse. Since there is
+ no error recovery, the buffer could still contain tokens from this
+ parse. */
+ yyflush_current_buffer();
+
+ if (yyfree_stacks)
+ {
+ ACE_OS::free (yyss);
+ ACE_OS::free (yyvs);
+#ifdef YYLSP_NEEDED
+ ACE_OS::free (yyls);
+#endif
+ }
+ return 1;
+}
+//#line 257 "ETCL/ETCL.yy"
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/ETCL/ETCL_y.h b/dep/acelite/ace/ETCL/ETCL_y.h
new file mode 100644
index 00000000000..577296e9ee2
--- /dev/null
+++ b/dep/acelite/ace/ETCL/ETCL_y.h
@@ -0,0 +1,45 @@
+// $Id: ETCL_y.h 81458 2008-04-28 11:31:49Z johnnyw $
+#define ETCL_GT 257
+#define ETCL_GE 258
+#define ETCL_LT 259
+#define ETCL_LE 260
+#define ETCL_EQ 261
+#define ETCL_NE 262
+#define ETCL_EXIST 263
+#define ETCL_DEFAULT 264
+#define ETCL_AND 265
+#define ETCL_OR 266
+#define ETCL_NOT 267
+#define ETCL_IN 268
+#define ETCL_TWIDDLE 269
+#define ETCL_BOOLEAN 270
+#define ETCL_PLUS 271
+#define ETCL_MINUS 272
+#define ETCL_MULT 273
+#define ETCL_DIV 274
+#define ETCL_UMINUS 275
+#define ETCL_INTEGER 276
+#define ETCL_FLOAT 277
+#define ETCL_STRING 278
+#define ETCL_RPAREN 279
+#define ETCL_LPAREN 280
+#define ETCL_RBRA 281
+#define ETCL_LBRA 282
+#define ETCL_IDENT 283
+#define ETCL_UNSIGNED 284
+#define ETCL_SIGNED 285
+#define ETCL_DOUBLE 286
+#define ETCL_CONSTRAINT 287
+#define ETCL_COMPONENT 288
+#define ETCL_WITH 289
+#define ETCL_MAX 290
+#define ETCL_MIN 291
+#define ETCL_FIRST 292
+#define ETCL_RANDOM 293
+#define ETCL_DOLLAR 294
+#define ETCL_DOT 295
+#define ETCL_DISCRIMINANT 296
+#define ETCL_LENGTH 297
+#define ETCL_TYPE_ID 298
+#define ETCL_REPOS_ID 299
+
diff --git a/dep/acelite/ace/ETCL/ace_etcl_export.h b/dep/acelite/ace/ETCL/ace_etcl_export.h
new file mode 100644
index 00000000000..561d99f85be
--- /dev/null
+++ b/dep/acelite/ace/ETCL/ace_etcl_export.h
@@ -0,0 +1,40 @@
+
+// -*- C++ -*-
+// $Id: ace_etcl_export.h 81458 2008-04-28 11:31:49Z johnnyw $
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl
+// ------------------------------
+#ifndef ACE_ETCL_EXPORT_H
+#define ACE_ETCL_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS)
+# if !defined (ACE_ETCL_HAS_DLL)
+# define ACE_ETCL_HAS_DLL 0
+# endif /* ! ACE_ETCL_HAS_DLL */
+#else
+# if !defined (ACE_ETCL_HAS_DLL)
+# define ACE_ETCL_HAS_DLL 1
+# endif /* ! ACE_ETCL_HAS_DLL */
+#endif
+
+#if defined (ACE_ETCL_HAS_DLL) && (ACE_ETCL_HAS_DLL == 1)
+# if defined (ACE_ETCL_BUILD_DLL)
+# define ACE_ETCL_Export ACE_Proper_Export_Flag
+# define ACE_ETCL_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ACE_ETCL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ACE_ETCL_BUILD_DLL */
+# define ACE_ETCL_Export ACE_Proper_Import_Flag
+# define ACE_ETCL_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ACE_ETCL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ACE_ETCL_BUILD_DLL */
+#else /* ACE_ETCL_HAS_DLL == 1 */
+# define ACE_ETCL_Export
+# define ACE_ETCL_SINGLETON_DECLARATION(T)
+# define ACE_ETCL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ACE_ETCL_HAS_DLL == 1 */
+
+#endif /* ACE_ETCL_EXPORT_H */
+
+// End of auto generated file.
diff --git a/dep/acelite/ace/ETCL/etcl_parser_export.h b/dep/acelite/ace/ETCL/etcl_parser_export.h
new file mode 100644
index 00000000000..678d25b466a
--- /dev/null
+++ b/dep/acelite/ace/ETCL/etcl_parser_export.h
@@ -0,0 +1,40 @@
+
+// -*- C++ -*-
+// $Id: etcl_parser_export.h 81640 2008-05-07 19:04:11Z parsons $
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl
+// ------------------------------
+#ifndef ETCL_PARSER_EXPORT_H
+#define ETCL_PARSER_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS)
+# if !defined (ETCL_PARSER_HAS_DLL)
+# define ETCL_PARSER_HAS_DLL 0
+# endif /* ! ETCL_PARSER_HAS_DLL */
+#else
+# if !defined (ETCL_PARSER_HAS_DLL)
+# define ETCL_PARSER_HAS_DLL 1
+# endif /* ! ETCL_PARSER_HAS_DLL */
+#endif
+
+#if defined (ETCL_PARSER_HAS_DLL) && (ETCL_PARSER_HAS_DLL == 1)
+# if defined (ETCL_PARSER_BUILD_DLL)
+# define ETCL_Parser_Export ACE_Proper_Export_Flag
+# define ETCL_PARSER_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ETCL_PARSER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ETCL_PARSER_BUILD_DLL */
+# define ETCL_Parser_Export ACE_Proper_Import_Flag
+# define ETCL_PARSER_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ETCL_PARSER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ETCL_PARSER_BUILD_DLL */
+#else /* ETCL_PARSER_HAS_DLL == 1 */
+# define ETCL_Parser_Export
+# define ETCL_PARSER_SINGLETON_DECLARATION(T)
+# define ETCL_PARSER_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ETCL_PARSER_HAS_DLL == 1 */
+
+#endif /* ETCL_PARSER_EXPORT_H */
+
+// End of auto generated file.
diff --git a/dep/acelite/ace/Env_Value_T.h b/dep/acelite/ace/Env_Value_T.h
index c8b459b26c2..412baf935ed 100644
--- a/dep/acelite/ace/Env_Value_T.h
+++ b/dep/acelite/ace/Env_Value_T.h
@@ -4,7 +4,7 @@
/**
* @file Env_Value_T.h
*
- * $Id: Env_Value_T.h 91626 2010-09-07 10:59:20Z johnnyw $
+ * $Id: Env_Value_T.h 92712 2010-11-25 12:22:13Z johnnyw $
*
* Template to encapsulate getting a value from an environment variable
* and using a supplied default value if not in the environment.
@@ -45,7 +45,7 @@ public:
/**
* Default constructor which isn't bound to a specific environment
* variable name or a default value. Before being useful it must
- * <open>'d.
+ * open()'d.
*/
ACE_Env_Value (void);
diff --git a/dep/acelite/ace/Event_Handler_Handle_Timeout_Upcall.cpp b/dep/acelite/ace/Event_Handler_Handle_Timeout_Upcall.cpp
new file mode 100644
index 00000000000..b16679a11ec
--- /dev/null
+++ b/dep/acelite/ace/Event_Handler_Handle_Timeout_Upcall.cpp
@@ -0,0 +1,99 @@
+// $Id: Event_Handler_Handle_Timeout_Upcall.cpp 95586 2012-03-03 20:45:57Z johnnyw $
+
+#include "ace/Event_Handler_Handle_Timeout_Upcall.h"
+#include "ace/Reactor_Timer_Interface.h"
+#include "ace/Abstract_Timer_Queue.h"
+
+#if !defined(__ACE_INLINE__)
+# include "ace/Event_Handler_Handle_Timeout_Upcall.inl"
+#endif /* __ACE_INLINE__ */
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+ACE_Event_Handler_Handle_Timeout_Upcall::
+ACE_Event_Handler_Handle_Timeout_Upcall (void) :
+ requires_reference_counting_ (0)
+{
+}
+
+ACE_Event_Handler_Handle_Timeout_Upcall::
+~ACE_Event_Handler_Handle_Timeout_Upcall (void)
+{
+}
+
+int
+ACE_Event_Handler_Handle_Timeout_Upcall::
+timeout (ACE_Timer_Queue &timer_queue,
+ ACE_Event_Handler *event_handler,
+ const void *act,
+ int recurring_timer,
+ const ACE_Time_Value &cur_time)
+{
+ int requires_reference_counting = 0;
+
+ if (!recurring_timer)
+ {
+ requires_reference_counting =
+ event_handler->reference_counting_policy ().value () ==
+ ACE_Event_Handler::Reference_Counting_Policy::ENABLED;
+ }
+
+ // Upcall to the <handler>s handle_timeout method.
+ if (event_handler->handle_timeout (cur_time, act) == -1)
+ {
+ if (event_handler->reactor_timer_interface ())
+ event_handler->reactor_timer_interface ()->cancel_timer (event_handler, 0);
+ else
+ timer_queue.cancel (event_handler, 0); // 0 means "call handle_close()".
+ }
+
+ if (!recurring_timer &&
+ requires_reference_counting)
+ {
+ event_handler->remove_reference ();
+ }
+
+ return 0;
+}
+
+int
+ACE_Event_Handler_Handle_Timeout_Upcall::
+cancel_type (ACE_Timer_Queue &,
+ ACE_Event_Handler *event_handler,
+ int dont_call,
+ int &requires_reference_counting)
+{
+ requires_reference_counting =
+ event_handler->reference_counting_policy ().value () ==
+ ACE_Event_Handler::Reference_Counting_Policy::ENABLED;
+
+ // Upcall to the <handler>s handle_close method
+ if (dont_call == 0)
+ event_handler->handle_close (ACE_INVALID_HANDLE,
+ ACE_Event_Handler::TIMER_MASK);
+
+ return 0;
+}
+
+int
+ACE_Event_Handler_Handle_Timeout_Upcall::
+deletion (ACE_Timer_Queue &timer_queue,
+ ACE_Event_Handler *event_handler,
+ const void *)
+{
+ int requires_reference_counting = 0;
+
+ this->cancel_type (timer_queue,
+ event_handler,
+ 0,
+ requires_reference_counting);
+
+ this->cancel_timer (timer_queue,
+ event_handler,
+ 0,
+ requires_reference_counting);
+
+ return 0;
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/Event_Handler_Handle_Timeout_Upcall.h b/dep/acelite/ace/Event_Handler_Handle_Timeout_Upcall.h
new file mode 100644
index 00000000000..0ce4a4dd9ca
--- /dev/null
+++ b/dep/acelite/ace/Event_Handler_Handle_Timeout_Upcall.h
@@ -0,0 +1,103 @@
+//$Id: Event_Handler_Handle_Timeout_Upcall.h 95334 2011-12-15 12:52:50Z msmit $
+
+#ifndef ACE_EVENT_HANDLER_HANDLE_TIMEOUT_UPCALL_H
+#define ACE_EVENT_HANDLER_HANDLE_TIMEOUT_UPCALL_H
+
+#include /**/ "ace/pre.h"
+
+/**
+ * @file Event_Handler_Handle_Timeout_Upcall.h
+ *
+ * @author Carlos O'Ryan <coryan@atdesk.com>
+ *
+ * Based on classes and files developed by Doug Schmidt, Darrell
+ * Brunsch, Irfan Pyarali and a cast of thousands.
+ */
+
+#include "ace/Timer_Queuefwd.h"
+#include "ace/Copy_Disabled.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+class ACE_Time_Value;
+
+/**
+ * @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.
+ */
+class ACE_Export ACE_Event_Handler_Handle_Timeout_Upcall
+ : private ACE_Copy_Disabled
+{
+public:
+ // = 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 a timer is registered.
+ int registration (ACE_Timer_Queue &timer_queue,
+ ACE_Event_Handler *handler,
+ const void *arg);
+
+ /// This method is called before the timer expires.
+ int preinvoke (ACE_Timer_Queue &timer_queue,
+ ACE_Event_Handler *handler,
+ const void *arg,
+ int recurring_timer,
+ const ACE_Time_Value &cur_time,
+ const void *&upcall_act);
+
+ /// This method is called when the timer expires.
+ int timeout (ACE_Timer_Queue &timer_queue,
+ ACE_Event_Handler *handler,
+ const void *arg,
+ int recurring_timer,
+ const ACE_Time_Value &cur_time);
+
+ /// This method is called after the timer expires.
+ int postinvoke (ACE_Timer_Queue &timer_queue,
+ ACE_Event_Handler *handler,
+ const void *arg,
+ int recurring_timer,
+ const ACE_Time_Value &cur_time,
+ const void *upcall_act);
+
+ /// This method is called when a handler is cancelled
+ int cancel_type (ACE_Timer_Queue &timer_queue,
+ ACE_Event_Handler *handler,
+ int dont_call,
+ int &requires_reference_counting);
+
+ /// This method is called when a timer is cancelled
+ int cancel_timer (ACE_Timer_Queue &timer_queue,
+ ACE_Event_Handler *handler,
+ int dont_call,
+ int requires_reference_counting);
+
+ /// This method is called when the timer queue is destroyed and
+ /// the timer is still contained in it
+ int deletion (ACE_Timer_Queue &timer_queue,
+ ACE_Event_Handler *handler,
+ const void *arg);
+
+private:
+
+ /// Flag indicating that reference counting is required for this
+ /// event handler upcall.
+ int requires_reference_counting_;
+};
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined(__ACE_INLINE__)
+# include "ace/Event_Handler_Handle_Timeout_Upcall.inl"
+#endif /* __ACE_INLINE__ */
+
+#include /**/ "ace/post.h"
+#endif /* ACE_EVENT_HANDLER_HANDLE_TIMEOUT_UPCALL_H */
diff --git a/dep/acelite/ace/Event_Handler_Handle_Timeout_Upcall.inl b/dep/acelite/ace/Event_Handler_Handle_Timeout_Upcall.inl
new file mode 100644
index 00000000000..f52a7206c47
--- /dev/null
+++ b/dep/acelite/ace/Event_Handler_Handle_Timeout_Upcall.inl
@@ -0,0 +1,71 @@
+// $Id: Event_Handler_Handle_Timeout_Upcall.inl 95336 2011-12-15 13:22:33Z msmit $
+
+#include "ace/Event_Handler.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+ACE_INLINE int
+ACE_Event_Handler_Handle_Timeout_Upcall::
+registration (ACE_Timer_Queue &,
+ ACE_Event_Handler *event_handler,
+ const void *)
+{
+ event_handler->add_reference ();
+ return 0;
+}
+
+ACE_INLINE int
+ACE_Event_Handler_Handle_Timeout_Upcall::
+preinvoke (ACE_Timer_Queue &,
+ ACE_Event_Handler *event_handler,
+ const void *,
+ int,
+ const ACE_Time_Value &,
+ const void * & upcall_act)
+{
+ bool const requires_reference_counting =
+ event_handler->reference_counting_policy ().value () ==
+ ACE_Event_Handler::Reference_Counting_Policy::ENABLED;
+
+ if (requires_reference_counting)
+ {
+ event_handler->add_reference ();
+
+ upcall_act = &this->requires_reference_counting_;
+ }
+
+ return 0;
+}
+
+ACE_INLINE int
+ACE_Event_Handler_Handle_Timeout_Upcall::
+postinvoke (ACE_Timer_Queue & /* timer_queue */,
+ ACE_Event_Handler *event_handler,
+ const void * /* timer_act */,
+ int /* recurring_timer */,
+ const ACE_Time_Value & /* cur_time */,
+ const void *upcall_act)
+{
+ if (upcall_act == &this->requires_reference_counting_)
+ {
+ event_handler->remove_reference ();
+ }
+
+ return 0;
+}
+
+ACE_INLINE int
+ACE_Event_Handler_Handle_Timeout_Upcall::
+cancel_timer (ACE_Timer_Queue &,
+ ACE_Event_Handler *event_handler,
+ int,
+ int requires_reference_counting)
+{
+ if (requires_reference_counting)
+ event_handler->remove_reference ();
+
+ return 0;
+}
+
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/FIFO.cpp b/dep/acelite/ace/FIFO.cpp
index b564a26c6b6..a4d7ba1d0b9 100644
--- a/dep/acelite/ace/FIFO.cpp
+++ b/dep/acelite/ace/FIFO.cpp
@@ -1,4 +1,4 @@
-// $Id: FIFO.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: FIFO.cpp 94034 2011-05-09 19:11:03Z johnnyw $
#include "ace/FIFO.h"
@@ -12,8 +12,6 @@
#include "ace/OS_NS_sys_stat.h"
#include "ace/OS_NS_fcntl.h"
-
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_FIFO)
diff --git a/dep/acelite/ace/FIFO_Recv_Msg.cpp b/dep/acelite/ace/FIFO_Recv_Msg.cpp
index b8580ae317c..9d041d558cc 100644
--- a/dep/acelite/ace/FIFO_Recv_Msg.cpp
+++ b/dep/acelite/ace/FIFO_Recv_Msg.cpp
@@ -1,4 +1,4 @@
-// $Id: FIFO_Recv_Msg.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: FIFO_Recv_Msg.cpp 93359 2011-02-11 11:33:12Z mcorino $
#include "ace/FIFO_Recv_Msg.h"
@@ -8,8 +8,6 @@
#include "ace/FIFO_Recv_Msg.inl"
#endif /* __ACE_INLINE__ */
-
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_FIFO_Recv_Msg)
diff --git a/dep/acelite/ace/Filecache.cpp b/dep/acelite/ace/Filecache.cpp
index 7a9615bb59d..65e548c75ec 100644
--- a/dep/acelite/ace/Filecache.cpp
+++ b/dep/acelite/ace/Filecache.cpp
@@ -1,4 +1,4 @@
-// $Id: Filecache.cpp 91368 2010-08-16 13:03:34Z mhengstmengel $
+// $Id: Filecache.cpp 94034 2011-05-09 19:11:03Z johnnyw $
#include "ace/Filecache.h"
#include "ace/Object_Manager.h"
@@ -164,6 +164,7 @@ template <>
ACE_Filecache_Hash_Entry::ACE_Hash_Map_Entry (ACE_Filecache_Hash_Entry *next,
ACE_Filecache_Hash_Entry *prev)
: ext_id_ (0),
+ int_id_ (0),
next_ (next),
prev_ (prev)
{
diff --git a/dep/acelite/ace/FlReactor/ACE_FlReactor_export.h b/dep/acelite/ace/FlReactor/ACE_FlReactor_export.h
new file mode 100644
index 00000000000..282adb6494d
--- /dev/null
+++ b/dep/acelite/ace/FlReactor/ACE_FlReactor_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id: ACE_FlReactor_export.h 80826 2008-03-04 14:51:23Z wotte $
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl -s ACE_FlReactor
+// ------------------------------
+#ifndef ACE_FLREACTOR_EXPORT_H
+#define ACE_FLREACTOR_EXPORT_H
+
+#include /**/ "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ACE_FLREACTOR_HAS_DLL)
+# define ACE_FLREACTOR_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ACE_FLREACTOR_HAS_DLL */
+
+#if !defined (ACE_FLREACTOR_HAS_DLL)
+# define ACE_FLREACTOR_HAS_DLL 1
+#endif /* ! ACE_FLREACTOR_HAS_DLL */
+
+#if defined (ACE_FLREACTOR_HAS_DLL) && (ACE_FLREACTOR_HAS_DLL == 1)
+# if defined (ACE_FLREACTOR_BUILD_DLL)
+# define ACE_FlReactor_Export ACE_Proper_Export_Flag
+# define ACE_FLREACTOR_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ACE_FLREACTOR_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ACE_FLREACTOR_BUILD_DLL */
+# define ACE_FlReactor_Export ACE_Proper_Import_Flag
+# define ACE_FLREACTOR_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ACE_FLREACTOR_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ACE_FLREACTOR_BUILD_DLL */
+#else /* ACE_FLREACTOR_HAS_DLL == 1 */
+# define ACE_FlReactor_Export
+# define ACE_FLREACTOR_SINGLETON_DECLARATION(T)
+# define ACE_FLREACTOR_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ACE_FLREACTOR_HAS_DLL == 1 */
+
+// Set ACE_FLREACTOR_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ACE_FLREACTOR_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ACE_FLREACTOR_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ACE_FLREACTOR_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ACE_FLREACTOR_NTRACE */
+
+#if (ACE_FLREACTOR_NTRACE == 1)
+# define ACE_FLREACTOR_TRACE(X)
+#else /* (ACE_FLREACTOR_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ACE_FLREACTOR_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ACE_FLREACTOR_NTRACE == 1) */
+
+#endif /* ACE_FLREACTOR_EXPORT_H */
+
+// End of auto generated file.
diff --git a/dep/acelite/ace/FlReactor/FlReactor.cpp b/dep/acelite/ace/FlReactor/FlReactor.cpp
new file mode 100644
index 00000000000..4cab9c9df78
--- /dev/null
+++ b/dep/acelite/ace/FlReactor/FlReactor.cpp
@@ -0,0 +1,328 @@
+// $Id: FlReactor.cpp 95511 2012-01-27 09:40:38Z johnnyw $
+
+#include "ace/FlReactor/FlReactor.h"
+
+#include /**/ <FL/Fl.H>
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+ACE_ALLOC_HOOK_DEFINE (ACE_FlReactor)
+
+// Must be called with lock held
+ACE_FlReactor::ACE_FlReactor (size_t size,
+ bool 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 = static_cast<ACE_FlReactor *> (reactor);
+ ACE_HANDLE handle = (ACE_HANDLE)fd; //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 = 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, // 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); // 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 const 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;
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/FlReactor/FlReactor.h b/dep/acelite/ace/FlReactor/FlReactor.h
new file mode 100644
index 00000000000..6f67de88cb1
--- /dev/null
+++ b/dep/acelite/ace/FlReactor/FlReactor.h
@@ -0,0 +1,110 @@
+/* -*- C++ -*- */
+
+//=============================================================================
+/**
+ * @file FlReactor.h
+ *
+ * $Id: FlReactor.h 82723 2008-09-16 09:35:44Z johnnyw $
+ *
+ * @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 */
+
+#include "ace/FlReactor/ACE_FlReactor_export.h"
+#include "ace/Select_Reactor.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+/**
+ * @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_FlReactor_Export ACE_FlReactor : public ACE_Select_Reactor
+{
+
+public:
+ // = Initialization and termination methods.
+ ACE_FlReactor (size_t size = DEFAULT_SIZE,
+ bool restart = false,
+ 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 @a 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 @a 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 &);
+};
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#include /**/ "ace/post.h"
+#endif /* ACE_FLREACTOR_H */
diff --git a/dep/acelite/ace/FoxReactor/ACE_FoxReactor_export.h b/dep/acelite/ace/FoxReactor/ACE_FoxReactor_export.h
new file mode 100644
index 00000000000..641be964c46
--- /dev/null
+++ b/dep/acelite/ace/FoxReactor/ACE_FoxReactor_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id: ACE_FoxReactor_export.h 80826 2008-03-04 14:51:23Z wotte $
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl -s ACE_FoxReactor
+// ------------------------------
+#ifndef ACE_FOXREACTOR_EXPORT_H
+#define ACE_FOXREACTOR_EXPORT_H
+
+#include /**/ "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ACE_FOXREACTOR_HAS_DLL)
+# define ACE_FOXREACTOR_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ACE_FOXREACTOR_HAS_DLL */
+
+#if !defined (ACE_FOXREACTOR_HAS_DLL)
+# define ACE_FOXREACTOR_HAS_DLL 1
+#endif /* ! ACE_FOXREACTOR_HAS_DLL */
+
+#if defined (ACE_FOXREACTOR_HAS_DLL) && (ACE_FOXREACTOR_HAS_DLL == 1)
+# if defined (ACE_FOXREACTOR_BUILD_DLL)
+# define ACE_FoxReactor_Export ACE_Proper_Export_Flag
+# define ACE_FOXREACTOR_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ACE_FOXREACTOR_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ACE_FOXREACTOR_BUILD_DLL */
+# define ACE_FoxReactor_Export ACE_Proper_Import_Flag
+# define ACE_FOXREACTOR_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ACE_FOXREACTOR_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ACE_FOXREACTOR_BUILD_DLL */
+#else /* ACE_FOXREACTOR_HAS_DLL == 1 */
+# define ACE_FoxReactor_Export
+# define ACE_FOXREACTOR_SINGLETON_DECLARATION(T)
+# define ACE_FOXREACTOR_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ACE_FOXREACTOR_HAS_DLL == 1 */
+
+// Set ACE_FOXREACTOR_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ACE_FOXREACTOR_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ACE_FOXREACTOR_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ACE_FOXREACTOR_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ACE_FOXREACTOR_NTRACE */
+
+#if (ACE_FOXREACTOR_NTRACE == 1)
+# define ACE_FOXREACTOR_TRACE(X)
+#else /* (ACE_FOXREACTOR_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ACE_FOXREACTOR_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ACE_FOXREACTOR_NTRACE == 1) */
+
+#endif /* ACE_FOXREACTOR_EXPORT_H */
+
+// End of auto generated file.
diff --git a/dep/acelite/ace/FoxReactor/FoxReactor.cpp b/dep/acelite/ace/FoxReactor/FoxReactor.cpp
new file mode 100644
index 00000000000..61b59a16c71
--- /dev/null
+++ b/dep/acelite/ace/FoxReactor/FoxReactor.cpp
@@ -0,0 +1,327 @@
+// $Id: FoxReactor.cpp 93117 2011-01-20 12:11:28Z mcorino $
+
+#include "ace/FoxReactor/FoxReactor.h"
+
+FXDEFMAP(ACE_FoxReactor) ACE_FoxReactorMap[]={
+ FXMAPFUNCS(SEL_IO_READ,0,MAXKEY,ACE_FoxReactor::onFileEvents),
+ FXMAPFUNCS(SEL_IO_WRITE,0,MAXKEY,ACE_FoxReactor::onFileEvents),
+ FXMAPFUNCS(SEL_IO_EXCEPT,0,MAXKEY,ACE_FoxReactor::onFileEvents),
+ FXMAPFUNCS(SEL_TIMEOUT,0,MAXKEY,ACE_FoxReactor::onTimerEvents),
+};
+
+FXIMPLEMENT(ACE_FoxReactor,FXObject,ACE_FoxReactorMap,ARRAYNUMBER(ACE_FoxReactorMap))
+
+ACE_ALLOC_HOOK_DEFINE (ACE_FoxReactor)
+
+// Must be called with lock held
+ACE_FoxReactor::ACE_FoxReactor (FXApp* a,
+ size_t size,
+ bool restart,
+ ACE_Sig_Handler *h)
+ : ACE_Select_Reactor (size, restart, h), fxapp(a)
+{
+ // When the ACE_Select_Reactor is constructed it creates the notify
+ // pipe and registers it with the register_handler_i() method. The
+ // FoxReactor 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 FoxReactor register_handler_i(). This means
+ // that the notify pipe is registered with the ACE_Select_Reactor
+ // event handling code not the FoxReactor and so notfications don't
+ // work. To get around this we simply close and re-opened the
+ // notification handler in the constructor of the FoxReactor.
+
+#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
+ this->notify_handler_->close ();
+ this->notify_handler_->open (this, 0);
+#endif /* ACE_MT_SAFE */
+}
+
+ACE_FoxReactor::~ACE_FoxReactor (void)
+{
+}
+
+void ACE_FoxReactor::fxapplication(FXApp *a)
+{
+ fxapp=a;
+}
+
+// This is just the <wait_for_multiple_events> from ace/Reactor.cpp
+// but we use the Fox functions to wait for an event, not <select>
+
+int
+ACE_FoxReactor::wait_for_multiple_events (ACE_Select_Reactor_Handle_Set &handle_set,
+ ACE_Time_Value *max_wait_time)
+{
+ ACE_TRACE( "ACE_FoxReactor::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 = FoxWaitForMultipleEvents (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
+}
+
+int
+ACE_FoxReactor::FoxWaitForMultipleEvents (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->fxapp->runOneEvent () ;
+
+ // 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);
+}
+
+
+long ACE_FoxReactor::onFileEvents(FXObject* /* ob */, FXSelector se, void* handle){
+ FXSelector sel=FXSELTYPE(se);
+ ACE_Select_Reactor_Handle_Set dispatch_set;
+ bool f=false;
+ if(sel==SEL_IO_READ){
+ dispatch_set.rd_mask_.set_bit(ACE_HANDLE(reinterpret_cast<FXival>(handle)));
+ f=true;
+ }
+ else
+ if(sel==SEL_IO_WRITE){
+ dispatch_set.wr_mask_.set_bit(ACE_HANDLE(reinterpret_cast<FXival>(handle)));
+ f=true;
+ }
+ else
+ if(sel==SEL_IO_EXCEPT){
+ dispatch_set.ex_mask_.set_bit(ACE_HANDLE(reinterpret_cast<FXival>(handle)));
+ f=true;
+ };
+ if(f) dispatch (1, dispatch_set);
+
+ return 1;
+}
+
+long ACE_FoxReactor::onTimerEvents(FXObject* /* ob */, FXSelector /* sel */, void* /* handle */)
+{
+ // Deal with any timer events
+ ACE_Select_Reactor_Handle_Set handle_set;
+ this->dispatch (0, handle_set );
+
+ // Set next timeout signal
+ this->reset_timeout ();
+
+ return 0;
+}
+
+int
+ACE_FoxReactor::register_handler_i (ACE_HANDLE handle,
+ ACE_Event_Handler *handler,
+ ACE_Reactor_Mask mask)
+{
+ ACE_TRACE ("ACE_FoxReactor::register_handler_i");
+
+ int const result = ACE_Select_Reactor::register_handler_i (handle,
+ handler, mask);
+ if (result == -1)
+ return -1;
+
+ unsigned long condition = 0;
+
+ if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::READ_MASK))
+ ACE_SET_BITS (condition, FX::INPUT_READ);
+ if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::WRITE_MASK))
+ ACE_SET_BITS (condition, FX::INPUT_WRITE);
+ if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::EXCEPT_MASK))
+ ACE_SET_BITS (condition, FX::INPUT_EXCEPT);
+ if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::ACCEPT_MASK))
+ ACE_SET_BITS (condition, FX::INPUT_READ);
+ if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::CONNECT_MASK))
+ {
+ ACE_SET_BITS (condition, FX::INPUT_WRITE); // connected, you may write
+ ACE_SET_BITS (condition, FX::INPUT_READ); // connected, you have data/err
+ }
+
+ if (condition != 0)
+ {
+ fxapp->addInput(handle, condition, this, 0);
+ }
+ return 0;
+}
+
+int
+ACE_FoxReactor::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_FoxReactor::remove_handler_i (ACE_HANDLE handle, ACE_Reactor_Mask mask)
+{
+ ACE_TRACE ("ACE_FoxReactor::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.
+
+ int condition = 0;
+
+ if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::READ_MASK))
+ ACE_SET_BITS (condition, FX::INPUT_READ);
+ if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::WRITE_MASK))
+ ACE_SET_BITS (condition, FX::INPUT_WRITE);
+ if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::EXCEPT_MASK))
+ ACE_SET_BITS (condition, FX::INPUT_EXCEPT);
+ if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::ACCEPT_MASK))
+ ACE_SET_BITS (condition, FX::INPUT_READ);
+ if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::CONNECT_MASK))
+ {
+ ACE_SET_BITS (condition, FX::INPUT_WRITE); // connected, you may write
+ ACE_SET_BITS (condition, FX::INPUT_READ); // connected, you have data/err
+ }
+
+ // First clean up the corresponding X11Input.
+ fxapp->removeInput ((int)handle,condition); // ACE_reinterpret_cast(int,handle));
+
+ // Now let the reactor do its work.
+ return ACE_Select_Reactor::remove_handler_i (handle, mask);
+}
+
+int
+ACE_FoxReactor::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 Fox timeout for the first
+// timeout in the Reactor's Timer_Queue.
+
+void
+ACE_FoxReactor::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;
+ fxapp->addTimeout (this, 0, t*1000);
+ }
+}
+
+int
+ACE_FoxReactor::reset_timer_interval
+ (long timer_id,
+ const ACE_Time_Value &interval)
+{
+ ACE_TRACE ("ACE_FoxReactor::reset_timer_interval");
+ ACE_MT (ACE_GUARD_RETURN (ACE_Select_Reactor_Token, ace_mon, this->token_, -1));
+
+ int const result =
+ ACE_Select_Reactor::reset_timer_interval (timer_id,
+ interval);
+
+ if (result == -1)
+ return -1;
+ else
+ {
+ this->reset_timeout ();
+ return result;
+ }
+}
+
+long
+ACE_FoxReactor::schedule_timer (ACE_Event_Handler *event_handler,
+ const void *arg,
+ const ACE_Time_Value &delay,
+ const ACE_Time_Value &interval)
+{
+ ACE_TRACE ("ACE_FoxReactor::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_FoxReactor::cancel_timer (ACE_Event_Handler *handler,
+ int dont_call_handle_close)
+{
+ ACE_TRACE ("ACE_FoxReactor::cancel_timer");
+
+ if (ACE_Select_Reactor::cancel_timer (handler,
+ dont_call_handle_close) == -1)
+ return -1;
+ else
+ {
+ this->reset_timeout ();
+ return 0;
+ }
+}
+
+int
+ACE_FoxReactor::cancel_timer (long timer_id,
+ const void **arg,
+ int dont_call_handle_close)
+{
+ ACE_TRACE ("ACE_FoxReactor::cancel_timer");
+
+ if (ACE_Select_Reactor::cancel_timer (timer_id,
+ arg,
+ dont_call_handle_close) == -1)
+ return -1;
+ else
+ {
+ this->reset_timeout ();
+ return 0;
+ }
+}
+
diff --git a/dep/acelite/ace/FoxReactor/FoxReactor.h b/dep/acelite/ace/FoxReactor/FoxReactor.h
new file mode 100644
index 00000000000..e284441e555
--- /dev/null
+++ b/dep/acelite/ace/FoxReactor/FoxReactor.h
@@ -0,0 +1,112 @@
+/* -*- C-*- */
+
+//=============================================================================
+/**
+ * @file FoxReactor.h
+ *
+ * $Id: FoxReactor.h 93117 2011-01-20 12:11:28Z mcorino $
+ *
+ * @author Dmitriy Nikitinskiy <nick@bel.ru>
+ * @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_FOXREACTOR_H
+#define ACE_FOXREACTOR_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/Select_Reactor.h"
+#include "ace/FoxReactor/ACE_FoxReactor_export.h"
+
+#include <fx.h>
+
+/**
+ * @class ACE_FoxReactor
+ *
+ * @brief A Reactor implementation that uses the FOX toolkit (www.fox-toolkit.org)
+ * for event demultiplexing. This will let us integrate the FOX
+ * toolkit with ACE and/or TAO.
+ *
+ */
+class ACE_FoxReactor_Export ACE_FoxReactor : public FXObject, public ACE_Select_Reactor
+{
+ FXDECLARE(ACE_FoxReactor)
+public:
+ // = Initialization and termination methods.
+ ACE_FoxReactor (FXApp* a=0,
+ size_t size = DEFAULT_SIZE,
+ bool restart = false,
+ ACE_Sig_Handler * = 0);
+ virtual ~ACE_FoxReactor (void);
+
+ void fxapplication(FXApp* a);
+
+ // = 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);
+
+ // = Integrate with the Fox callback function mechanism.
+ long onFileEvents (FXObject*, FXSelector, void*);
+ long onTimerEvents (FXObject*, FXSelector, void*);
+
+
+protected:
+ // = Register timers/handles with Fox.
+ /// Register a single @a 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 @a 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 *);
+
+ int FoxWaitForMultipleEvents (int,ACE_Select_Reactor_Handle_Set &,ACE_Time_Value *);
+
+private:
+ /// This method ensures there's an Fox timeout for the first timeout
+ /// in the Reactor's Timer_Queue.
+ void reset_timeout (void);
+
+ FXApp *fxapp;
+
+ /// Deny access since member-wise won't work...
+ ACE_FoxReactor (const ACE_FoxReactor &);
+ ACE_FoxReactor &operator = (const ACE_FoxReactor &);
+};
+
+#include /**/ "ace/post.h"
+#endif /* ACE_FOXREACTOR_H */
+
diff --git a/dep/acelite/ace/Functor.cpp b/dep/acelite/ace/Functor.cpp
index 4f12670e83e..09e80a587a9 100644
--- a/dep/acelite/ace/Functor.cpp
+++ b/dep/acelite/ace/Functor.cpp
@@ -3,7 +3,7 @@
/**
* @file Functor.cpp
*
- * $Id: Functor.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+ * $Id: Functor.cpp 95332 2011-12-15 11:09:41Z mcorino $
*
* Non-inlinable method definitions for non-templatized classes
* and template specializations implementing the GOF Command Pattern,
@@ -40,4 +40,14 @@ ACE_Command_Base::~ACE_Command_Base (void)
{
}
+ACE_Noop_Command::ACE_Noop_Command()
+{
+}
+
+int
+ACE_Noop_Command::execute(void*)
+{
+ return 0;
+}
+
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/Functor.h b/dep/acelite/ace/Functor.h
index cb01630e2fc..0241dc7d8fe 100644
--- a/dep/acelite/ace/Functor.h
+++ b/dep/acelite/ace/Functor.h
@@ -4,7 +4,7 @@
/**
* @file Functor.h
*
- * $Id: Functor.h 92069 2010-09-28 11:38:59Z johnnyw $
+ * $Id: Functor.h 95761 2012-05-15 18:23:04Z johnnyw $
*
* Non-templatized classes and class template specializations for
* implementing function objects that are used in various places
@@ -77,6 +77,23 @@ public:
virtual int execute (void *arg = 0) = 0;
};
+/**
+ * @class ACE_Noop_Command
+ *
+ * Implements a ACE_Command_Base with an empty execute() body.
+ */
+
+class ACE_Export ACE_Noop_Command
+ : public ACE_Command_Base
+{
+public:
+ /// Constructor
+ ACE_Noop_Command();
+
+ /// Implement the empty execute() member function
+ virtual int execute(void*);
+};
+
////////////////////////////////////////////////////////////
// STL-style Functor Classes and Template Specializations //
////////////////////////////////////////////////////////////
@@ -187,7 +204,7 @@ public:
unsigned long operator () (unsigned long t) const;
};
-#if !defined (ACE_LACKS_LONGLONG_T) && (ACE_SIZEOF_LONG < 8)
+#if (ACE_SIZEOF_LONG < 8)
/**
* @brief Function object for hashing a signed 64-bit number
*/
@@ -198,10 +215,8 @@ public:
/// Simply returns t
unsigned long operator () (ACE_INT64 t) const;
};
-#endif /* !ACE_LACKS_LONGLONG_T && ACE_SIZEOF_LONG < 8 */
+#endif /* ACE_SIZEOF_LONG < 8 */
-// We can do this even if ACE_LACKS_UNSIGNEDLONGLONG_T because there's an
-// emulation for it in ACE_U_LongLong.
#if (ACE_SIZEOF_LONG < 8)
/**
* @brief Function object for hashing an unsigned 64-bit number
diff --git a/dep/acelite/ace/Functor.inl b/dep/acelite/ace/Functor.inl
index 46fb002178f..0c4777c48ea 100644
--- a/dep/acelite/ace/Functor.inl
+++ b/dep/acelite/ace/Functor.inl
@@ -4,7 +4,7 @@
/**
* @file Functor.inl
*
- * $Id: Functor.inl 92069 2010-09-28 11:38:59Z johnnyw $
+ * $Id: Functor.inl 95763 2012-05-16 06:43:51Z johnnyw $
*
* Inlinable method definitions for non-templatized classes
* and template specializations implementing the GOF Command Pattern,
@@ -108,13 +108,13 @@ ACE_Hash<unsigned long>::operator () (unsigned long t) const
}
// This #if needs to match the one in Functor.h
-#if !defined (ACE_LACKS_LONGLONG_T) && (ACE_SIZEOF_LONG < 8)
+#if (ACE_SIZEOF_LONG < 8)
ACE_INLINE unsigned long
ACE_Hash<ACE_INT64>::operator () (ACE_INT64 t) const
{
return static_cast<unsigned long> (t);
}
-#endif /* !ACE_LACKS_LONGLONG_T && ACE_SIZEOF_LONG < 8 */
+#endif /* ACE_SIZEOF_LONG < 8 */
#if (ACE_SIZEOF_LONG < 8)
ACE_INLINE unsigned long
@@ -126,7 +126,7 @@ ACE_Hash<ACE_UINT64>::operator () (const ACE_UINT64 &t) const
return static_cast<unsigned long> (t);
#endif /* ACE_SIZEOF_LONG */
}
-#endif /* !ACE_LACKS_UNSIGNEDLONGLONG_T */
+#endif /* ACE_SIZEOF_LONG < 8 */
ACE_INLINE unsigned long
ACE_Hash<const char *>::operator () (const char *t) const
diff --git a/dep/acelite/ace/Functor_String.h b/dep/acelite/ace/Functor_String.h
index 2adf561a65f..4a2abb512f0 100644
--- a/dep/acelite/ace/Functor_String.h
+++ b/dep/acelite/ace/Functor_String.h
@@ -4,7 +4,7 @@
/**
* @file Functor_String.h
*
- * $Id: Functor_String.h 86698 2009-09-13 15:58:17Z johnnyw $
+ * $Id: Functor_String.h 93411 2011-02-18 22:21:16Z hillj $
*
* Class template specializations for ACE_*String types implementing
* function objects that are used in various places in ATC. They
@@ -25,6 +25,7 @@
#include /**/ "ace/ACE_export.h"
#include "ace/SStringfwd.h"
+#include <string>
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -77,6 +78,44 @@ public:
const ACE_CString &rhs) const;
};
+/**
+ * @brief Function object for determining whether two std::strings are
+ * equal.
+ */
+template<>
+class ACE_Export ACE_Equal_To<std::string>
+{
+public:
+ int operator () (const std::string &lhs,
+ const std::string &rhs) const;
+};
+
+
+/**
+ * @brief Function object for hashing a std::string
+ */
+template<>
+class ACE_Export ACE_Hash<std::string>
+{
+public:
+ /// Calls ACE::hash_pjw
+ unsigned long operator () (const std::string &lhs) const;
+};
+
+
+/**
+ * @brief Function object for determining whether the first const string
+ * is less than the second const string.
+ */
+template<>
+class ACE_Export ACE_Less_Than<std::string>
+{
+public:
+ /// Simply calls std::string::compare
+ int operator () (const std::string &lhs,
+ const std::string &rhs) const;
+};
+
#if defined (ACE_USES_WCHAR)
diff --git a/dep/acelite/ace/Functor_String.inl b/dep/acelite/ace/Functor_String.inl
index bdac96386f8..045cd05f780 100644
--- a/dep/acelite/ace/Functor_String.inl
+++ b/dep/acelite/ace/Functor_String.inl
@@ -1,6 +1,6 @@
// -*- C++ -*-
//
-// $Id: Functor_String.inl 80826 2008-03-04 14:51:23Z wotte $
+// $Id: Functor_String.inl 93411 2011-02-18 22:21:16Z hillj $
#include "ace/ACE.h"
#include "ace/String_Base.h"
@@ -28,6 +28,26 @@ ACE_Less_Than<ACE_CString>::operator () (const ACE_CString &lhs,
return (lhs < rhs);
}
+ACE_INLINE unsigned long
+ACE_Hash<std::string>::operator () (const std::string &t) const
+{
+ return ACE::hash_pjw (t.c_str (), t.length ());
+}
+
+
+ACE_INLINE int
+ACE_Equal_To<std::string>::operator () (const std::string &lhs,
+ const std::string &rhs) const
+{
+ return lhs == rhs;
+}
+
+ACE_INLINE int
+ACE_Less_Than<std::string>::operator () (const std::string &lhs,
+ const std::string &rhs) const
+{
+ return (lhs < rhs);
+}
#if defined (ACE_USES_WCHAR)
ACE_INLINE unsigned long
diff --git a/dep/acelite/ace/Functor_T.h b/dep/acelite/ace/Functor_T.h
index ff087d2019e..6dfbbcff6b1 100644
--- a/dep/acelite/ace/Functor_T.h
+++ b/dep/acelite/ace/Functor_T.h
@@ -4,7 +4,7 @@
/**
* @file Functor_T.h
*
- * $Id: Functor_T.h 91396 2010-08-19 12:37:24Z johnnyw $
+ * $Id: Functor_T.h 95332 2011-12-15 11:09:41Z mcorino $
*
* Templatized classes for implementing function objects that are
* used in various places in ACE. There are currently two major
@@ -79,6 +79,38 @@ private:
ACTION action_;
};
+/**
+ * @class ACE_Member_Function_Command
+ *
+ * @brief Defines a class template that allows us to invoke a member
+ * function using the GoF command style callback.
+ *
+ */
+template <class RECEIVER>
+class ACE_Member_Function_Command : public ACE_Command_Base
+{
+public:
+ typedef void (RECEIVER::*PTMF)(void);
+
+ /// Con Constructor: sets the <receiver_> of the Command to recvr, and the
+ /// <action_> of the Command to <action>.
+ ACE_Member_Function_Command (RECEIVER &recvr, PTMF ptmf);
+
+ /// Virtual destructor.
+ virtual ~ACE_Member_Function_Command (void);
+
+ /// Invokes the method <action_> from the object <receiver_>. The
+ /// parameter is ignored
+ virtual int execute (void *);
+
+private:
+ /// Object where the method resides.
+ RECEIVER &receiver_;
+
+ /// Method that is going to be invoked.
+ PTMF ptmf_;
+};
+
/////////////////////////////////
// STL-style Functor Templates //
/////////////////////////////////
diff --git a/dep/acelite/ace/Functor_T.inl b/dep/acelite/ace/Functor_T.inl
index 35cfed5b798..1b303210cad 100644
--- a/dep/acelite/ace/Functor_T.inl
+++ b/dep/acelite/ace/Functor_T.inl
@@ -1,9 +1,30 @@
// -*- C++ -*-
//
-// $Id: Functor_T.inl 80826 2008-03-04 14:51:23Z wotte $
+// $Id: Functor_T.inl 95332 2011-12-15 11:09:41Z mcorino $
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+template<class RECEIVER> ACE_INLINE
+ACE_Member_Function_Command<RECEIVER>::
+ACE_Member_Function_Command (RECEIVER &recvr, PTMF ptmf)
+ : receiver_(recvr)
+ , ptmf_(ptmf)
+{
+}
+
+template<class RECEIVER> ACE_INLINE
+ACE_Member_Function_Command<RECEIVER>::
+~ACE_Member_Function_Command (void)
+{
+}
+
+template<class RECEIVER> ACE_INLINE int
+ACE_Member_Function_Command<RECEIVER>::execute (void *)
+{
+ (this->receiver_.*ptmf_)();
+ return 0;
+}
+
template <class TYPE> ACE_INLINE unsigned long
ACE_Hash<TYPE>::operator () (const TYPE &t) const
{
diff --git a/dep/acelite/ace/Future.cpp b/dep/acelite/ace/Future.cpp
index 5ebb550a68c..6544c118582 100644
--- a/dep/acelite/ace/Future.cpp
+++ b/dep/acelite/ace/Future.cpp
@@ -1,4 +1,4 @@
- // $Id: Future.cpp 91626 2010-09-07 10:59:20Z johnnyw $
+ // $Id: Future.cpp 95706 2012-04-18 06:42:16Z johnnyw $
#ifndef ACE_FUTURE_CPP
#define ACE_FUTURE_CPP
@@ -98,7 +98,7 @@ 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_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, r_mon, rep->value_ready_mutex_, 0);
+ ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, r_mon, rep->value_ready_mutex_, 0);
++rep->ref_count_;
return rep;
}
diff --git a/dep/acelite/ace/Future_Set.cpp b/dep/acelite/ace/Future_Set.cpp
index 986ce948c34..1ba1fd6be66 100644
--- a/dep/acelite/ace/Future_Set.cpp
+++ b/dep/acelite/ace/Future_Set.cpp
@@ -1,4 +1,4 @@
-// $Id: Future_Set.cpp 91626 2010-09-07 10:59:20Z johnnyw $
+// $Id: Future_Set.cpp 92900 2010-12-17 14:45:11Z mcorino $
#ifndef ACE_FUTURE_SET_CPP
#define ACE_FUTURE_SET_CPP
@@ -117,7 +117,7 @@ ACE_Future_Set<T>::next_readable (ACE_Future<T> &future,
return 0;
// Remove the hash map entry with the specified future rep from our map.
- FUTURE_HOLDER *future_holder;
+ FUTURE_HOLDER *future_holder = 0;
if (this->future_map_.find (future_rep,
future_holder) != -1)
{
diff --git a/dep/acelite/ace/Get_Opt.cpp b/dep/acelite/ace/Get_Opt.cpp
index 5953abe1810..90355f91a1b 100644
--- a/dep/acelite/ace/Get_Opt.cpp
+++ b/dep/acelite/ace/Get_Opt.cpp
@@ -1,4 +1,4 @@
-// $Id: Get_Opt.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: Get_Opt.cpp 95710 2012-04-25 07:02:50Z johnnyw $
#include "ace/Get_Opt.h"
diff --git a/dep/acelite/ace/Get_Opt.inl b/dep/acelite/ace/Get_Opt.inl
index e307fb5e400..1f915184716 100644
--- a/dep/acelite/ace/Get_Opt.inl
+++ b/dep/acelite/ace/Get_Opt.inl
@@ -1,6 +1,5 @@
// -*- C++ -*-
-//
-// $Id: Get_Opt.inl 81840 2008-06-05 13:46:45Z sma $
+// $Id: Get_Opt.inl 93736 2011-04-05 12:38:35Z johnnyw $
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/Global_Macros.h b/dep/acelite/ace/Global_Macros.h
index bce0544e1a6..b18a5482e52 100644
--- a/dep/acelite/ace/Global_Macros.h
+++ b/dep/acelite/ace/Global_Macros.h
@@ -4,7 +4,7 @@
/**
* @file Global_Macros.h
*
- * $Id: Global_Macros.h 91685 2010-09-09 09:35:14Z johnnyw $
+ * $Id: Global_Macros.h 96084 2012-08-20 18:07:57Z johnnyw $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
* @author Jesper S. M|ller<stophph@diku.dk>
@@ -166,7 +166,7 @@ ACE_END_VERSIONED_NAMESPACE_DECL
/* Using ACE_UNEXPECTED_RETURNS is ill-advised because, in many cases,
* it fails to inform callers of the error condition.
- * It exists mainly to provide back-compatibility with old, dangerous,
+ * It exists mainly to provide back-compatibility with old, dangegrous,
* incorrect behavior.
* Code that previously used ACE_GUARD() or ACE_GUARD_RETURN() to return
* upon failure to acquire a lock can now use:
@@ -905,7 +905,7 @@ ACE_MAKE_SVC_CONFIG_FACTORY_NAME(ACE_VERSIONED_NAMESPACE_NAME,SERVICE_CLASS) (AC
} while (0)
#endif /* defined ACE_LACKS_ARRAY_PLACEMENT_NEW */
-// This is being placed here temporarily to help stablelize the builds, but will
+// This is being placed here temporarily to help stabilize the builds, but will
// be moved out along with the above macros as part of the subsetting. dhinton
#if !defined (ACE_LACKS_NEW_H)
# if defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB)
diff --git a/dep/acelite/ace/Guard_T.cpp b/dep/acelite/ace/Guard_T.cpp
index 90321c6ac4e..25c31ce0379 100644
--- a/dep/acelite/ace/Guard_T.cpp
+++ b/dep/acelite/ace/Guard_T.cpp
@@ -1,10 +1,9 @@
-// $Id: Guard_T.cpp 92052 2010-09-27 14:20:22Z vzykov $
+// $Id: Guard_T.cpp 93736 2011-04-05 12:38:35Z johnnyw $
#ifndef ACE_GUARD_T_CPP
#define ACE_GUARD_T_CPP
// FUZZ: disable check_for_ACE_Guard
-
#include "ace/Guard_T.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
diff --git a/dep/acelite/ace/Guard_T.h b/dep/acelite/ace/Guard_T.h
index 5120d3f7a57..da06e1573f4 100644
--- a/dep/acelite/ace/Guard_T.h
+++ b/dep/acelite/ace/Guard_T.h
@@ -4,7 +4,7 @@
/**
* @file Guard_T.h
*
- * $Id: Guard_T.h 91626 2010-09-07 10:59:20Z johnnyw $
+ * $Id: Guard_T.h 93792 2011-04-07 11:48:50Z mcorino $
*
* Moved from Synch.h.
*
@@ -36,9 +36,9 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* function... It performs automatic acquisition 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.
+ * The ACE_LOCK class given as an actual parameter must provide, at
+ * the very least the acquire(), tryacquire(), release(), and
+ * remove() methods.
*
* @warning A successfully constructed ACE_Guard does NOT mean that the
* lock was acquired! It is the caller's responsibility, after
@@ -72,11 +72,11 @@ public:
ACE_Guard (ACE_LOCK &l);
/// Implicitly and automatically acquire (or try to acquire) the
- /// lock. If @a block is non-0 then <acquire> the <ACE_LOCK>, else
- /// <tryacquire> it.
+ /// lock. If @a block is non-0 then acquire() the ACE_LOCK, else
+ /// tryacquire() it.
ACE_Guard (ACE_LOCK &l, bool block);
- /// Initialise the guard without implicitly acquiring the lock. The
+ /// Initialize the guard without implicitly acquiring the lock. The
/// @a become_owner parameter indicates whether the guard should release
/// the lock implicitly on destruction. The @a block parameter is
/// ignored and is used here to disambiguate with the preceding
diff --git a/dep/acelite/ace/Guard_T.inl b/dep/acelite/ace/Guard_T.inl
index 9c313a0fa2c..34b2b777f66 100644
--- a/dep/acelite/ace/Guard_T.inl
+++ b/dep/acelite/ace/Guard_T.inl
@@ -1,6 +1,5 @@
// -*- C++ -*-
-//
-// $Id: Guard_T.inl 91626 2010-09-07 10:59:20Z johnnyw $
+// $Id: Guard_T.inl 93736 2011-04-05 12:38:35Z johnnyw $
// FUZZ: disable check_for_ACE_Guard
diff --git a/dep/acelite/ace/Handle_Set.cpp b/dep/acelite/ace/Handle_Set.cpp
index ba64fb3443f..4c9b6b56017 100644
--- a/dep/acelite/ace/Handle_Set.cpp
+++ b/dep/acelite/ace/Handle_Set.cpp
@@ -1,5 +1,5 @@
// Handle_Set.cpp
-// $Id: Handle_Set.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: Handle_Set.cpp 95761 2012-05-15 18:23:04Z johnnyw $
#include "ace/Handle_Set.h"
@@ -9,8 +9,6 @@
#include "ace/OS_NS_string.h"
-
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_Handle_Set)
@@ -24,12 +22,12 @@ ACE_ALLOC_HOOK_DEFINE(ACE_Handle_Set)
# define ACE_MSB_MASK (~((fd_mask) 1 << (NFDBITS - 1)))
#endif /* ! ACE_WIN32 */
-#if defined (linux) && __GLIBC__ > 1 && __GLIBC_MINOR__ >= 1 && !defined (_XOPEN_SOURCE)
+#if defined (ACE_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 */
+#endif /* ACE_LINUX && __GLIBC__ > 1 && __GLIBC_MINOR__ >= 1 && !_XOPEN_SOURCE */
void
ACE_Handle_Set::dump (void) const
@@ -226,24 +224,11 @@ ACE_Handle_Set::set_max (ACE_HANDLE current_max)
maskp[i] == 0;
i--)
continue;
-#if defined (ACE_TANDEM_NSK_BIT_ORDER)
- // bits are in reverse order, MSB (sign bit) = bit 0.
- 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...
@@ -312,12 +297,7 @@ ACE_Handle_Set_Iterator::operator () (void)
// Increment the iterator and advance to the next bit in this
// word.
this->handle_index_++;
-#if defined (ACE_TANDEM_NSK_BIT_ORDER)
- // bits are in reverse order, MSB (sign bit) = bit 0.
- this->word_val_ = (this->word_val_ << 1);
-# else
this->word_val_ = (this->word_val_ >> 1) & ACE_MSB_MASK;
-# endif /* ACE_TANDEM_NSK_BIT_ORDER */
// If we've examined all the bits in this word, we'll go onto
// the next word.
@@ -353,19 +333,10 @@ ACE_Handle_Set_Iterator::operator () (void)
// bit enabled, keeping track of which <handle_index> this
// represents (this information is used by subsequent calls to
// <operator()>).
-
-#if defined (ACE_TANDEM_NSK_BIT_ORDER)
- // 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_TANDEM_NSK_BIT_ORDER */
return result;
}
@@ -435,6 +406,7 @@ ACE_Handle_Set_Iterator::ACE_Handle_Set_Iterator (const ACE_Handle_Set &hs)
handle_index_ (0),
word_num_ (-1)
#elif defined (ACE_HAS_BIG_FD_SET)
+ handle_index_ (0),
oldlsb_ (0),
word_max_ (hs.max_handle_ == ACE_INVALID_HANDLE
? 0
@@ -466,19 +438,11 @@ ACE_Handle_Set_Iterator::ACE_Handle_Set_Iterator (const ACE_Handle_Set &hs)
// 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_TANDEM_NSK_BIT_ORDER)
- // 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_TANDEM_NSK_BIT_ORDER */
#elif !defined (ACE_WIN32) && defined (ACE_HAS_BIG_FD_SET)
if (this->word_max_==0)
{
@@ -494,7 +458,6 @@ ACE_Handle_Set_Iterator::ACE_Handle_Set_Iterator (const ACE_Handle_Set &hs)
#endif /* !ACE_WIN32 && !ACE_HAS_BIG_FD_SET */
}
-
void
ACE_Handle_Set_Iterator::reset_state (void)
{
@@ -534,19 +497,11 @@ ACE_Handle_Set_Iterator::reset_state (void)
// 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_TANDEM_NSK_BIT_ORDER)
- // 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_TANDEM_NSK_BIT_ORDER */
#elif !defined (ACE_WIN32) && defined (ACE_HAS_BIG_FD_SET)
if (this->word_max_==0)
{
diff --git a/dep/acelite/ace/Handle_Set.h b/dep/acelite/ace/Handle_Set.h
index 0de5c98ea4f..97b3042a6a1 100644
--- a/dep/acelite/ace/Handle_Set.h
+++ b/dep/acelite/ace/Handle_Set.h
@@ -4,7 +4,7 @@
/**
* @file Handle_Set.h
*
- * $Id: Handle_Set.h 92298 2010-10-21 11:15:17Z johnnyw $
+ * $Id: Handle_Set.h 93736 2011-04-05 12:38:35Z johnnyw $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
*/
@@ -58,7 +58,6 @@ public:
MAXSIZE = ACE_DEFAULT_SELECT_REACTOR_SIZE
};
- // = Initialization methods.
/// Constructor, initializes the bitmask to all 0s.
ACE_Handle_Set (void);
diff --git a/dep/acelite/ace/Handle_Set.inl b/dep/acelite/ace/Handle_Set.inl
index 7e669d4fd2d..fd401caa628 100644
--- a/dep/acelite/ace/Handle_Set.inl
+++ b/dep/acelite/ace/Handle_Set.inl
@@ -1,21 +1,9 @@
// -*- C++ -*-
//
-// $Id: Handle_Set.inl 80826 2008-03-04 14:51:23Z wotte $
+// $Id: Handle_Set.inl 96017 2012-08-08 22:18:09Z mitza $
#include "ace/Log_Msg.h"
-// todo: This should be cleaned up a bit.
-// memset for FD_ZERO on OpenBSD and Solaris w/ gcc 2.95.3
-#include "ace/os_include/os_string.h"
-
-// FreeBSD 4.8-RC? for bzero() used by FD_ZERO
-#include "ace/os_include/os_strings.h"
-
-// IRIX5 defines bzero() in this odd file... used by FD_ZERO
-#if defined (ACE_HAS_BSTRING)
-# include /**/ <bstring.h>
-#endif /* ACE_HAS_BSTRING */
-
// AIX defines bzero() in this odd file... used by FD_ZERO
#if defined (ACE_HAS_STRINGS)
# include "ace/os_include/os_strings.h"
@@ -87,6 +75,8 @@ ACE_Handle_Set::is_set (ACE_HANDLE handle) const
#elif defined (ACE_HAS_NONCONST_FD_ISSET)
return FD_ISSET (handle,
const_cast<fd_set*> (&this->mask_));
+#elif defined (ACE_VXWORKS) && ACE_VXWORKS >= 0x690
+ return static_cast<int> (FD_ISSET (handle, &this->mask_));
#else
return FD_ISSET (handle,
&this->mask_);
diff --git a/dep/acelite/ace/Hash_Cache_Map_Manager_T.cpp b/dep/acelite/ace/Hash_Cache_Map_Manager_T.cpp
index ad333543ade..19478977569 100644
--- a/dep/acelite/ace/Hash_Cache_Map_Manager_T.cpp
+++ b/dep/acelite/ace/Hash_Cache_Map_Manager_T.cpp
@@ -1,4 +1,4 @@
-// $Id: Hash_Cache_Map_Manager_T.cpp 92097 2010-09-30 05:41:49Z msmit $
+// $Id: Hash_Cache_Map_Manager_T.cpp 93359 2011-02-11 11:33:12Z mcorino $
#ifndef ACE_HASH_CACHE_MAP_MANAGER_T_CPP
#define ACE_HASH_CACHE_MAP_MANAGER_T_CPP
@@ -17,11 +17,8 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_Hash_Cache_Map_Manager)
-#define ACE_T1 class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES
-#define ACE_T2 KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES
-
-template <ACE_T1>
-ACE_Hash_Cache_Map_Manager<ACE_T2>::ACE_Hash_Cache_Map_Manager (CACHING_STRATEGY &caching_s,
+template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES>
+ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES>::ACE_Hash_Cache_Map_Manager (CACHING_STRATEGY &caching_s,
size_t size,
ACE_Allocator *alloc)
: ACE_HCMM_BASE (caching_s,
@@ -30,13 +27,13 @@ ACE_Hash_Cache_Map_Manager<ACE_T2>::ACE_Hash_Cache_Map_Manager (CACHING_STRATEGY
{
}
-template <ACE_T1>
-ACE_Hash_Cache_Map_Manager<ACE_T2>::~ACE_Hash_Cache_Map_Manager (void)
+template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES>
+ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES>::~ACE_Hash_Cache_Map_Manager (void)
{
}
-template <ACE_T1> int
-ACE_Hash_Cache_Map_Manager<ACE_T2>::bind (const KEY &key,
+template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES>::bind (const KEY &key,
const VALUE &value,
CACHE_ENTRY *&entry)
{
@@ -71,8 +68,8 @@ ACE_Hash_Cache_Map_Manager<ACE_T2>::bind (const KEY &key,
return bind_result;
}
-template <ACE_T1> int
-ACE_Hash_Cache_Map_Manager<ACE_T2>::rebind (const KEY &key,
+template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES>::rebind (const KEY &key,
const VALUE &value,
CACHE_ENTRY *&entry)
{
@@ -109,8 +106,8 @@ ACE_Hash_Cache_Map_Manager<ACE_T2>::rebind (const KEY &key,
return rebind_result;
}
-template <ACE_T1> int
-ACE_Hash_Cache_Map_Manager<ACE_T2>::trybind (const KEY &key,
+template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES>::trybind (const KEY &key,
VALUE &value,
CACHE_ENTRY *&entry)
{
@@ -152,8 +149,8 @@ ACE_Hash_Cache_Map_Manager<ACE_T2>::trybind (const KEY &key,
return trybind_result;
}
-template <ACE_T1> int
-ACE_Hash_Cache_Map_Manager<ACE_T2>::find (const KEY &key,
+template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES>::find (const KEY &key,
CACHE_ENTRY *&entry)
{
// Lookup the key and populate the <value>.
@@ -178,8 +175,8 @@ ACE_Hash_Cache_Map_Manager<ACE_T2>::find (const KEY &key,
return find_result;
}
-template <ACE_T1> int
-ACE_Hash_Cache_Map_Manager<ACE_T2>::find (const KEY &key,
+template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES>::find (const KEY &key,
VALUE &value)
{
CACHE_ENTRY *entry = 0;
@@ -195,8 +192,8 @@ ACE_Hash_Cache_Map_Manager<ACE_T2>::find (const KEY &key,
return result;
}
-template <ACE_T1> int
-ACE_Hash_Cache_Map_Manager<ACE_T2>::find (const KEY &key)
+template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES>::find (const KEY &key)
{
CACHE_ENTRY *entry = 0;
@@ -204,8 +201,8 @@ ACE_Hash_Cache_Map_Manager<ACE_T2>::find (const KEY &key)
entry);
}
-template <ACE_T1> int
-ACE_Hash_Cache_Map_Manager<ACE_T2>::unbind (CACHE_ENTRY *entry)
+template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES> int
+ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES>::unbind (CACHE_ENTRY *entry)
{
// Remove the entry from the cache.
int unbind_result = this->map_.unbind (entry);
@@ -226,7 +223,4 @@ ACE_Hash_Cache_Map_Manager<ACE_T2>::unbind (CACHE_ENTRY *entry)
ACE_END_VERSIONED_NAMESPACE_DECL
-#undef ACE_T1
-#undef ACE_T2
-
#endif /* ACE_HASH_CACHE_MAP_MANAGER_T_CPP */
diff --git a/dep/acelite/ace/Hash_Cache_Map_Manager_T.h b/dep/acelite/ace/Hash_Cache_Map_Manager_T.h
index 0bc64a5a9ed..e1fc4d77317 100644
--- a/dep/acelite/ace/Hash_Cache_Map_Manager_T.h
+++ b/dep/acelite/ace/Hash_Cache_Map_Manager_T.h
@@ -4,7 +4,7 @@
/**
* @file Hash_Cache_Map_Manager_T.h
*
- * $Id: Hash_Cache_Map_Manager_T.h 92097 2010-09-30 05:41:49Z msmit $
+ * $Id: Hash_Cache_Map_Manager_T.h 93366 2011-02-11 19:30:35Z johnnyw $
*
* @author Kirthika Parameswaran <kirthika@cs.wustl.edu>
*/
@@ -39,9 +39,6 @@ class ACE_Allocator;
CACHING_STRATEGY, \
ATTRIBUTES>
-// For linkers that cant grok long names.
-#define ACE_Hash_Cache_Map_Manager AHCMM
-
/**
* @class ACE_Hash_Cache_Map_Manager
*
@@ -58,7 +55,7 @@ class ACE_Allocator;
* 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
+ * isn't 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>
@@ -189,7 +186,6 @@ class ACE_Hash_Cache_Map_Manager : public ACE_CACHE_MAP_MANAGER
int unbind (CACHE_ENTRY *entry);
protected:
-
/// Base class.
typedef ACE_CACHE_MAP_MANAGER ACE_HCMM_BASE;
};
diff --git a/dep/acelite/ace/Hash_Cache_Map_Manager_T.inl b/dep/acelite/ace/Hash_Cache_Map_Manager_T.inl
index f097bb7e073..8c4bb122360 100644
--- a/dep/acelite/ace/Hash_Cache_Map_Manager_T.inl
+++ b/dep/acelite/ace/Hash_Cache_Map_Manager_T.inl
@@ -1,43 +1,43 @@
// -*- C++ -*-
-//
-// $Id: Hash_Cache_Map_Manager_T.inl 80826 2008-03-04 14:51:23Z wotte $
-
-#define ACE_T1 class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES
-#define ACE_T2 KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES
+// $Id: Hash_Cache_Map_Manager_T.inl 93359 2011-02-11 11:33:12Z mcorino $
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-template <ACE_T1> ACE_INLINE int
-ACE_Hash_Cache_Map_Manager<ACE_T2>::bind (const KEY &key,
- const VALUE &value)
+template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES>
+ACE_INLINE int
+ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES>::bind (
+ const KEY &key,
+ const VALUE &value)
{
- return ACE_HCMM_BASE::bind (key,
- value);
+ return ACE_HCMM_BASE::bind (key, value);
}
-template <ACE_T1> ACE_INLINE int
-ACE_Hash_Cache_Map_Manager<ACE_T2>::rebind (const KEY &key,
- const VALUE &value)
+template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES>
+ACE_INLINE int
+ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES>::rebind (
+ const KEY &key,
+ const VALUE &value)
{
- return ACE_HCMM_BASE::rebind (key,
- value);
+ return ACE_HCMM_BASE::rebind (key, value);
}
-template <ACE_T1> ACE_INLINE int
-ACE_Hash_Cache_Map_Manager<ACE_T2>::rebind (const KEY &key,
- const VALUE &value,
- VALUE &old_value)
+template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES>
+ACE_INLINE int
+ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES>::rebind (
+ const KEY &key,
+ const VALUE &value,
+ VALUE &old_value)
{
- return ACE_HCMM_BASE::rebind (key,
- value,
- old_value);
+ return ACE_HCMM_BASE::rebind (key, value, old_value);
}
-template <ACE_T1> ACE_INLINE int
-ACE_Hash_Cache_Map_Manager<ACE_T2>::rebind (const KEY &key,
- const VALUE &value,
- KEY &old_key,
- VALUE &old_value)
+template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES>
+ACE_INLINE int
+ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES>::rebind (
+ const KEY &key,
+ const VALUE &value,
+ KEY &old_key,
+ VALUE &old_value)
{
return ACE_HCMM_BASE::rebind (key,
value,
@@ -45,29 +45,28 @@ ACE_Hash_Cache_Map_Manager<ACE_T2>::rebind (const KEY &key,
old_value);
}
-template <ACE_T1> ACE_INLINE int
-ACE_Hash_Cache_Map_Manager<ACE_T2>::trybind (const KEY &key,
- VALUE &value)
+template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES>
+ACE_INLINE int
+ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES>::trybind (
+ const KEY &key,
+ VALUE &value)
{
- return ACE_HCMM_BASE::trybind (key,
- value);
+ return ACE_HCMM_BASE::trybind (key, value);
}
-template <ACE_T1> ACE_INLINE int
-ACE_Hash_Cache_Map_Manager<ACE_T2>::unbind (const KEY &key)
+template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES>
+ACE_INLINE int
+ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES>::unbind (const KEY &key)
{
return ACE_HCMM_BASE::unbind (key);
}
-template <ACE_T1> ACE_INLINE int
-ACE_Hash_Cache_Map_Manager<ACE_T2>::unbind (const KEY &key,
+template <class KEY, class VALUE, class HASH_KEY, class COMPARE_KEYS, class CACHING_STRATEGY, class ATTRIBUTES>
+ACE_INLINE int
+ACE_Hash_Cache_Map_Manager<KEY, VALUE, HASH_KEY, COMPARE_KEYS, CACHING_STRATEGY, ATTRIBUTES>::unbind (const KEY &key,
VALUE &value)
{
- return ACE_HCMM_BASE::unbind (key,
- value);
+ return ACE_HCMM_BASE::unbind (key, value);
}
ACE_END_VERSIONED_NAMESPACE_DECL
-
-#undef ACE_T1
-#undef ACE_T2
diff --git a/dep/acelite/ace/Hash_Multi_Map_Manager_T.cpp b/dep/acelite/ace/Hash_Multi_Map_Manager_T.cpp
index db79e018793..195e8ac03c2 100644
--- a/dep/acelite/ace/Hash_Multi_Map_Manager_T.cpp
+++ b/dep/acelite/ace/Hash_Multi_Map_Manager_T.cpp
@@ -3,13 +3,12 @@
/**
* @file Hash_Multi_Map_Manager_T.cpp
*
- * $Id: Hash_Multi_Map_Manager_T.cpp 91688 2010-09-09 11:21:50Z johnnyw $
+ * $Id: Hash_Multi_Map_Manager_T.cpp 93736 2011-04-05 12:38:35Z johnnyw $
*
* @author Shanshan Jiang <shanshan.jiang@vanderbilt.edu>
*/
//=============================================================================
-
#ifndef ACE_Hash_Multi_Map_Manager_T_CPP
#define ACE_Hash_Multi_Map_Manager_T_CPP
@@ -27,7 +26,6 @@
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-
template <class EXT_ID, class INT_ID>
ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID>::ACE_Hash_Multi_Map_Entry (ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *next,
ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *prev)
diff --git a/dep/acelite/ace/Hash_Multi_Map_Manager_T.inl b/dep/acelite/ace/Hash_Multi_Map_Manager_T.inl
index b6c353c2153..5bf8371ec99 100644
--- a/dep/acelite/ace/Hash_Multi_Map_Manager_T.inl
+++ b/dep/acelite/ace/Hash_Multi_Map_Manager_T.inl
@@ -1,6 +1,6 @@
// -*- C++ -*-
//
-// $Id: Hash_Multi_Map_Manager_T.inl 80826 2008-03-04 14:51:23Z wotte $
+// $Id: Hash_Multi_Map_Manager_T.inl 94520 2011-09-22 14:55:20Z johnnyw $
#include "ace/Guard_T.h"
@@ -91,7 +91,7 @@ template <class EXT_ID, class INT_ID, class HASH_KEY, class COMPARE_KEYS, class
ACE_Hash_Multi_Map_Manager<EXT_ID, INT_ID, HASH_KEY, COMPARE_KEYS, ACE_LOCK>::bind_i (const EXT_ID &ext_id,
const INT_ID &int_id)
{
- ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *temp;
+ ACE_Hash_Multi_Map_Entry<EXT_ID, INT_ID> *temp = 0;
return this->bind_i (ext_id, int_id, temp);
}
diff --git a/dep/acelite/ace/Hashable.cpp b/dep/acelite/ace/Hashable.cpp
index 75dc809dc0d..24b2407242f 100644
--- a/dep/acelite/ace/Hashable.cpp
+++ b/dep/acelite/ace/Hashable.cpp
@@ -1,4 +1,4 @@
-//$Id: Hashable.cpp 91368 2010-08-16 13:03:34Z mhengstmengel $
+//$Id: Hashable.cpp 93736 2011-04-05 12:38:35Z johnnyw $
#include "ace/Hashable.h"
@@ -6,8 +6,6 @@
#include "ace/Hashable.inl"
#endif /* __ACE_INLINE __ */
-
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_Hashable::~ACE_Hashable (void)
diff --git a/dep/acelite/ace/Hashable.inl b/dep/acelite/ace/Hashable.inl
index 352b7794eb9..1fb6956cfed 100644
--- a/dep/acelite/ace/Hashable.inl
+++ b/dep/acelite/ace/Hashable.inl
@@ -1,7 +1,5 @@
// -*- C++ -*-
-//
-// $Id: Hashable.inl 80826 2008-03-04 14:51:23Z wotte $
-
+// $Id: Hashable.inl 93736 2011-04-05 12:38:35Z johnnyw $
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/High_Res_Timer.cpp b/dep/acelite/ace/High_Res_Timer.cpp
index 4bc380c591d..81f8415aaa9 100644
--- a/dep/acelite/ace/High_Res_Timer.cpp
+++ b/dep/acelite/ace/High_Res_Timer.cpp
@@ -1,4 +1,4 @@
-// $Id: High_Res_Timer.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: High_Res_Timer.cpp 95788 2012-05-24 07:59:51Z johnnyw $
// Be very carefull before changing the calculations inside
// ACE_High_Res_Timer. The precision matters and we are using integer
@@ -22,8 +22,6 @@
#include "ace/OS_NS_stdlib.h"
#include "ace/Truncate.h"
-
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_High_Res_Timer)
@@ -43,11 +41,11 @@ ACE_END_VERSIONED_NAMESPACE_DECL
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
- // 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;
+/// Initialize the global_scale_factor_ to 1. The first
+/// ACE_High_Res_Timer instance construction will override this
+/// value.
+/* static */
+ACE_High_Res_Timer::global_scale_factor_type ACE_High_Res_Timer::global_scale_factor_ = 1u;
ACE_END_VERSIONED_NAMESPACE_DECL
@@ -69,13 +67,12 @@ ACE_END_VERSIONED_NAMESPACE_DECL
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-// This is used to tell if the global_scale_factor_ has been
-// set, and if high resolution timers are supported.
+/// 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)
+#if defined (ACE_LINUX)
// Determine the apparent CPU clock speed from /proc/cpuinfo
ACE_UINT32
ACE_High_Res_Timer::get_cpuinfo (void)
@@ -188,9 +185,10 @@ ACE_High_Res_Timer::get_cpuinfo (void)
return scale_factor;
}
-#endif /* linux */
+#endif /* ACE_LINUX */
-ACE_UINT32
+
+ACE_High_Res_Timer::global_scale_factor_type
ACE_High_Res_Timer::global_scale_factor (void)
{
#if (defined (ACE_WIN32) || defined (ACE_HAS_POWERPC_TIMER) || \
@@ -211,30 +209,23 @@ ACE_High_Res_Timer::global_scale_factor (void)
if (ACE_High_Res_Timer::global_scale_factor_status_ == 0)
{
# if defined (ACE_WIN32)
+ // This a higher-precision version, specific for Windows systems
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
- (static_cast<unsigned int> (freq.QuadPart / ACE_HR_SCALE_CONVERSION));
-# endif // (ACE_LACKS_LONGLONG_T)
+ {
+ ACE_High_Res_Timer::global_scale_factor(freq.QuadPart);
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)
+# elif defined (ACE_LINUX)
ACE_High_Res_Timer::global_scale_factor (ACE_High_Res_Timer::get_cpuinfo ());
-# endif /* ! ACE_WIN32 && ! (linux && __alpha__) */
+# endif /* ! ACE_WIN32 && ! (ACE_LINUX && __alpha__) */
# if !defined (ACE_WIN32)
if (ACE_High_Res_Timer::global_scale_factor_ <= 1u)
@@ -314,17 +305,6 @@ ACE_High_Res_Timer::dump (void) const
ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\nglobal_scale_factor_: %u\n"),
global_scale_factor ()));
-#if defined (ACE_LACKS_LONGLONG_T)
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT (":\nstart_.hi (): %8x; start_.lo (): %8x;\n")
- ACE_TEXT ("end_.hi (): %8x; end_.lo (): %8x;\n")
- ACE_TEXT ("total_.hi (): %8x; total_.lo (): %8x;\n")
- ACE_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_TEXT (":\nstart_.hi (): %8x; start_.lo (): %8x;\n")
ACE_TEXT ("end_.hi (): %8x; end_.lo (): %8x;\n")
@@ -338,7 +318,6 @@ ACE_High_Res_Timer::dump (void) const
static_cast<ACE_UINT32> (total_ & 0xfffffffful),
static_cast<ACE_UINT32> (start_incr_ >> 32),
static_cast<ACE_UINT32> (start_incr_ & 0xfffffffful)));
-#endif /* ! ACE_LACKS_LONGLONG_T */
ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
#endif /* ACE_HAS_DUMP */
}
@@ -357,7 +336,7 @@ ACE_High_Res_Timer::reset (void)
void
ACE_High_Res_Timer::elapsed_time (ACE_Time_Value &tv) const
{
- hrtime_to_tv (tv,
+ this->hrtime_to_tv (tv,
ACE_High_Res_Timer::elapsed_hrtime (this->end_, this->start_));
}
@@ -394,12 +373,13 @@ ACE_High_Res_Timer::elapsed_time (struct timespec &elapsed_time) const
void
ACE_High_Res_Timer::elapsed_time_incr (ACE_Time_Value &tv) const
{
- hrtime_to_tv (tv, total_);
+ this->hrtime_to_tv (tv, total_);
}
void
ACE_High_Res_Timer::elapsed_time (ACE_hrtime_t &nanoseconds) const
{
+#if !defined (ACE_WIN32)
// 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.
@@ -410,16 +390,29 @@ ACE_High_Res_Timer::elapsed_time (ACE_hrtime_t &nanoseconds) const
nanoseconds = nanoseconds >> 10;
// Right shift is implemented for non native 64-bit ints
// operator/ only for a 32 bit result !
+#else
+ // This a higher-precision version, specific for Windows systems
+ nanoseconds =
+ (ACE_High_Res_Timer::elapsed_hrtime (this->end_, this->start_) * ACE_HR_SCALE_CONVERSION * 1000u) /
+ ACE_High_Res_Timer::global_scale_factor ();
+#endif
}
void
ACE_High_Res_Timer::elapsed_time_incr (ACE_hrtime_t &nanoseconds) const
{
+#if !defined (ACE_WIN32)
// Same as above.
nanoseconds = this->total_
- * (1024000u / ACE_High_Res_Timer::global_scale_factor ());
+ * (1024000u / ACE_High_Res_Timer::global_scale_factor ());
// Caution - Borland has a problem with >>=, so resist the temptation.
nanoseconds = nanoseconds >> 10;
+#else
+ // This a higher-precision version, specific for Windows systems
+ nanoseconds =
+ this->total_ * 1000000000u /
+ ACE_High_Res_Timer::global_scale_factor ();
+#endif
}
void
diff --git a/dep/acelite/ace/High_Res_Timer.h b/dep/acelite/ace/High_Res_Timer.h
index 3716597e5cd..d01149bce87 100644
--- a/dep/acelite/ace/High_Res_Timer.h
+++ b/dep/acelite/ace/High_Res_Timer.h
@@ -4,7 +4,7 @@
/**
* @file High_Res_Timer.h
*
- * $Id: High_Res_Timer.h 89483 2010-03-15 09:48:01Z johnnyw $
+ * $Id: High_Res_Timer.h 95798 2012-05-31 07:58:55Z johnnyw $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
*/
@@ -52,7 +52,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* 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
+ * Dependent 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
@@ -74,8 +74,8 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* 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
+ * you query for your @c timer.stop() value might not be the one
+ * you queried for @c 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.
@@ -100,7 +100,11 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
class ACE_Export ACE_High_Res_Timer
{
public:
- // = Initialization method.
+#if !defined (ACE_WIN32)
+ typedef ACE_UINT32 global_scale_factor_type;
+#else
+ typedef ACE_UINT64 global_scale_factor_type;
+#endif
/**
* global_scale_factor_ is set to @a gsf. All High_Res_Timers use
@@ -112,13 +116,13 @@ public:
* 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
+ * 1/millisecond. Use @c ACE_HR_SCALE_CONVERSION inside calculations
* instead a hardcoded value.
*/
- static void global_scale_factor (ACE_UINT32 gsf);
+ static void global_scale_factor (global_scale_factor_type gsf);
/// Returns the global_scale_factor.
- static ACE_UINT32 global_scale_factor (void);
+ static global_scale_factor_type global_scale_factor (void);
#ifndef ACE_HR_SCALE_CONVERSION
# define ACE_HR_SCALE_CONVERSION (ACE_ONE_SECOND_IN_USECS)
@@ -164,11 +168,6 @@ public:
void stop (const ACE_OS::ACE_HRTimer_Op = ACE_OS::ACE_HRTIMER_GETTIME);
/// Set @a 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 @a nanoseconds to the number of nanoseconds elapsed.
@@ -200,7 +199,7 @@ public:
/// 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
+ /// Set @a nanoseconds to the number of nanoseconds elapsed between all calls
/// to start_incr and stop_incr.
void elapsed_time_incr (ACE_hrtime_t &nanoseconds) const;
@@ -249,14 +248,14 @@ public:
static void hrtime_to_tv (ACE_Time_Value &tv,
const ACE_hrtime_t hrt);
-#if defined (linux)
+#if defined (ACE_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) */
+#endif /* defined (ACE_LINUX) */
private:
/**
@@ -289,7 +288,7 @@ private:
/// Converts ticks to microseconds. That is, ticks /
/// global_scale_factor_ == microseconds.
- static ACE_UINT32 global_scale_factor_;
+ static global_scale_factor_type global_scale_factor_;
/**
* Indicates the status of the global scale factor,
diff --git a/dep/acelite/ace/High_Res_Timer.inl b/dep/acelite/ace/High_Res_Timer.inl
index 06241dc0dfc..c22c47cc3f3 100644
--- a/dep/acelite/ace/High_Res_Timer.inl
+++ b/dep/acelite/ace/High_Res_Timer.inl
@@ -1,6 +1,5 @@
// -*- C++ -*- */
-//
-// $Id: High_Res_Timer.inl 89483 2010-03-15 09:48:01Z johnnyw $
+// $Id: High_Res_Timer.inl 95798 2012-05-31 07:58:55Z johnnyw $
#include "ace/Global_Macros.h"
@@ -10,32 +9,40 @@
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-// Be very careful before changing the calculations inside
-// ACE_High_Res_Timer. The precision matters and we are using integer
-// calculations not floating point. Also look closely 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.
-
+/// Be very careful before changing the calculations inside
+/// ACE_High_Res_Timer. The precision matters and we are using integer
+/// calculations not floating point.
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 /
+#if !defined (ACE_WIN32)
+ // 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 ((time_t) (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 ());
- tv.usec ((long) ((hrt - tmp) / global_scale_factor ()));
+ // 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 ());
+ tv.usec ((suseconds_t) ((hrt - tmp) / global_scale_factor ()));
+#else
+ // This a higher-precision version, specific for Windows systems
+ // 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 ((time_t) (hrt / global_scale_factor () ));
+
+ // Calculate usec, first calculate the seconds in hrtime
+ ACE_High_Res_Timer::global_scale_factor_type tmp = tv.sec ();
+ tmp *= global_scale_factor ();
+ tv.usec ((suseconds_t) ((hrt - tmp) * ACE_HR_SCALE_CONVERSION / global_scale_factor ()));
+#endif
}
@@ -57,13 +64,12 @@ ACE_High_Res_Timer::gettimeofday (const ACE_OS::ACE_HRTimer_Op 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.
+/// 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 be based 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)
{
@@ -139,13 +145,21 @@ ACE_High_Res_Timer::stop_incr (const ACE_OS::ACE_HRTimer_Op op)
ACE_INLINE void
ACE_High_Res_Timer::elapsed_microseconds (ACE_hrtime_t &usecs) const
{
+
+#if !defined (ACE_WIN32)
ACE_hrtime_t elapsed = ACE_High_Res_Timer::elapsed_hrtime (this->end_,
this->start_);
usecs = (ACE_hrtime_t) (elapsed / global_scale_factor ());
+#else
+ usecs = (ACE_High_Res_Timer::elapsed_hrtime (this->end_, this->start_) *
+ ACE_HR_SCALE_CONVERSION) /
+ global_scale_factor ();
+#endif
}
ACE_INLINE void
-ACE_High_Res_Timer::global_scale_factor (ACE_UINT32 gsf)
+ACE_High_Res_Timer::global_scale_factor (
+ ACE_High_Res_Timer::global_scale_factor_type gsf)
{
global_scale_factor_ = gsf;
}
diff --git a/dep/acelite/ace/ICMP_Socket.cpp b/dep/acelite/ace/ICMP_Socket.cpp
index 5247dc4b83a..04ac2611d75 100644
--- a/dep/acelite/ace/ICMP_Socket.cpp
+++ b/dep/acelite/ace/ICMP_Socket.cpp
@@ -1,4 +1,4 @@
-// $Id: ICMP_Socket.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: ICMP_Socket.cpp 93560 2011-03-16 13:54:49Z johnnyw $
#include "ace/ICMP_Socket.h"
@@ -85,9 +85,9 @@ ACE_ICMP_Socket::open (ACE_Addr const & local,
// Check if icmp protocol is supported on this host
int proto_number = -1;
- protoent *proto;
+ protoent *proto = 0;
- if (! (proto = getprotobyname ("icmp")))
+ if (! (proto = ACE_OS::getprotobyname ("icmp")))
{
ACE_ERROR_RETURN
((LM_ERROR,
diff --git a/dep/acelite/ace/INET_Addr.cpp b/dep/acelite/ace/INET_Addr.cpp
index 6dba7150f93..a41b0e4406f 100644
--- a/dep/acelite/ace/INET_Addr.cpp
+++ b/dep/acelite/ace/INET_Addr.cpp
@@ -1,4 +1,4 @@
-// $Id: INET_Addr.cpp 91683 2010-09-09 09:07:49Z johnnyw $
+// $Id: INET_Addr.cpp 95533 2012-02-14 22:59:17Z wotte $
// Defines the Internet domain address family address format.
@@ -334,48 +334,67 @@ ACE_INET_Addr::set (u_short port_number,
sizeof this->inet_addr_);
#if defined (ACE_HAS_IPV6)
- struct addrinfo hints;
- struct addrinfo *res = 0;
- int error = 0;
- ACE_OS::memset (&hints, 0, sizeof (hints));
-# if defined (ACE_USES_IPV4_IPV6_MIGRATION)
- if (address_family == AF_UNSPEC && !ACE::ipv6_enabled())
+ // Let the IPv4 case fall through to the non-IPv6-capable section.
+ // We don't need the additional getaddrinfo() capability and the Linux
+ // getaddrinfo() is substantially slower than gethostbyname() w/
+ // large vlans.
+# if defined (ACE_USES_IPV4_IPV6_MIGRATION)
+ if (address_family == AF_UNSPEC && !ACE::ipv6_enabled ())
address_family = AF_INET;
-# endif /* ACE_USES_IPV4_IPV6_MIGRATION */
- if (address_family == AF_UNSPEC || address_family == AF_INET6)
+# endif /* ACE_USES_IPV4_IPV6_MIGRATION */
+ if (address_family != AF_INET)
{
- hints.ai_family = AF_INET6;
- error = ::getaddrinfo (host_name, 0, &hints, &res);
- if (error)
+# if defined (ACE_HAS_GETHOSTBYNAME2)
+ hostent hentry;
+ hostent *hp;
+ ACE_HOSTENT_DATA buf;
+ int h_error = 0; // Not the same as errno!
+
+ if (0 == ::gethostbyname2_r (host_name, AF_INET6, &hentry,
+ buf, sizeof(buf), &hp, &h_error))
{
- if (address_family == AF_INET6)
+ if (hp != 0)
{
- if (res)
- ::freeaddrinfo(res);
- errno = error;
- return -1;
+ struct sockaddr_in6 v6;
+ ACE_OS::memset (&v6, 0, sizeof (v6));
+ v6.sin6_family = AF_INET6;
+ (void) ACE_OS::memcpy ((void *) &v6.sin6_addr,
+ hp->h_addr,
+ hp->h_length);
+ this->set_type (hp->h_addrtype);
+ this->set_addr (&v6, hp->h_length);
+ this->set_port_number (port_number, encode);
+ return 0;
}
- address_family = AF_INET;
}
- }
- if (address_family == AF_INET)
- {
- hints.ai_family = AF_INET;
- error = ::getaddrinfo (host_name, 0, &hints, &res);
- if (error)
+ errno = h_error;
+ if (address_family == AF_INET6)
+ return -1;
+# else
+ struct addrinfo hints;
+ struct addrinfo *res = 0;
+ int error = 0;
+ ACE_OS::memset (&hints, 0, sizeof (hints));
+ hints.ai_family = AF_INET6;
+ if ((error = ::getaddrinfo (host_name, 0, &hints, &res)) == 0)
+ {
+ this->set_type (res->ai_family);
+ this->set_addr (res->ai_addr, res->ai_addrlen);
+ this->set_port_number (port_number, encode);
+ ::freeaddrinfo (res);
+ return 0;
+ }
+ if (address_family == AF_INET6)
{
if (res)
::freeaddrinfo(res);
errno = error;
return -1;
}
+# endif /* ACE_HAS_GETHOSTBYNAME2 */
+ // Let AF_UNSPEC try again w/ IPv4.
}
- this->set_type (res->ai_family);
- this->set_addr (res->ai_addr, res->ai_addrlen);
- this->set_port_number (port_number, encode);
- ::freeaddrinfo (res);
- return 0;
-#else /* ACE_HAS_IPV6 */
+#endif /* ACE_HAS_IPV6 */
// IPv6 not supported... insure the family is set to IPv4
address_family = AF_INET;
@@ -392,9 +411,6 @@ ACE_INET_Addr::set (u_short port_number,
encode);
else
{
-# if defined (ACE_VXWORKS) && defined (ACE_LACKS_GETHOSTBYNAME)
- hostent *hp = ACE_OS::gethostbyname (host_name);
-# else
hostent hentry;
ACE_HOSTENT_DATA buf;
int h_error = 0; // Not the same as errno!
@@ -403,7 +419,6 @@ ACE_INET_Addr::set (u_short port_number,
buf, &h_error);
if (hp == 0)
errno = h_error;
-# endif /* ACE_VXWORKS */
if (hp == 0)
{
@@ -419,7 +434,6 @@ ACE_INET_Addr::set (u_short port_number,
encode);
}
}
-#endif /* ACE_HAS_IPV6 */
}
// Helper function to get a port number from a port name.
@@ -839,19 +853,6 @@ ACE_INET_Addr::get_host_name_i (char hostname[], size_t len) const
}
else
{
-#if defined (ACE_VXWORKS) && defined (ACE_LACKS_GETHOSTBYADDR)
- 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
void* addr = this->ip_addr_pointer ();
int size = this->ip_addr_size ();
int type = this->get_type ();
@@ -901,7 +902,6 @@ ACE_INET_Addr::get_host_name_i (char hostname[], size_t len) const
ACE_OS::strcpy (hostname, hp->h_name);
return 0;
-#endif /* ACE_VXWORKS */
}
}
@@ -1008,7 +1008,7 @@ int ACE_INET_Addr::set_address (const char *ip_addr,
}
-#if (defined (__linux__) || defined (ACE_WIN32)) && defined (ACE_HAS_IPV6)
+#if (defined (ACE_LINUX) || defined (ACE_WIN32)) && defined (ACE_HAS_IPV6)
int
ACE_INET_Addr::set_interface (const char *intf_name)
{
@@ -1016,7 +1016,7 @@ ACE_INET_Addr::set_interface (const char *intf_name)
(IN6_IS_ADDR_LINKLOCAL (&this->inet_addr_.in6_.sin6_addr) ||
IN6_IS_ADDR_MC_LINKLOCAL (&this->inet_addr_.in6_.sin6_addr)))
{
-#if defined (__linux__)
+#if defined (ACE_LINUX)
this->inet_addr_.in6_.sin6_scope_id =
ACE_OS::if_nametoindex (intf_name);
#else
@@ -1033,7 +1033,7 @@ ACE_INET_Addr::set_interface (const char *intf_name)
return 0;
}
-#endif /* __linux && ACE_HAS_IPV6 */
+#endif /* ACE_LINUX && ACE_HAS_IPV6 */
const char *
ACE_INET_Addr::get_host_addr (char *dst, int size) const
@@ -1070,7 +1070,7 @@ ACE_INET_Addr::get_host_addr (char *dst, int size) const
&this->inet_addr_.in6_.sin6_addr,
dst,
size);
-#if defined (__linux__)
+#if defined (ACE_LINUX)
if ((IN6_IS_ADDR_LINKLOCAL (&this->inet_addr_.in6_.sin6_addr) ||
IN6_IS_ADDR_MC_LINKLOCAL (&this->inet_addr_.in6_.sin6_addr)) &&
this->inet_addr_.in6_.sin6_scope_id != 0)
diff --git a/dep/acelite/ace/INET_Addr.h b/dep/acelite/ace/INET_Addr.h
index fcd26d0de2f..3272a96a566 100644
--- a/dep/acelite/ace/INET_Addr.h
+++ b/dep/acelite/ace/INET_Addr.h
@@ -4,7 +4,7 @@
/**
* @file INET_Addr.h
*
- * $Id: INET_Addr.h 91626 2010-09-07 10:59:20Z johnnyw $
+ * $Id: INET_Addr.h 95533 2012-02-14 22:59:17Z wotte $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
*/
@@ -250,13 +250,13 @@ public:
int encode = 1,
int map = 0);
-#if (defined (__linux__) || defined (ACE_WIN32)) && defined (ACE_HAS_IPV6)
+#if (defined (ACE_LINUX) || defined (ACE_WIN32)) && defined (ACE_HAS_IPV6)
/**
* Sets the interface that should be used for this address. This only has
* an effect when the address is link local, otherwise it does nothing.
*/
int set_interface (const char *intf_name);
-#endif /* (__linux__ || ACE_WIN32) && ACE_HAS_IPV6 */
+#endif /* (ACE_LINUX || ACE_WIN32) && ACE_HAS_IPV6 */
/// Return the port number, converting it into host byte-order.
u_short get_port_number (void) const;
diff --git a/dep/acelite/ace/INET_Addr.inl b/dep/acelite/ace/INET_Addr.inl
index 06460cb7857..eb3923185a2 100644
--- a/dep/acelite/ace/INET_Addr.inl
+++ b/dep/acelite/ace/INET_Addr.inl
@@ -1,6 +1,6 @@
// -*- C++ -*-
//
-// $Id: INET_Addr.inl 91685 2010-09-09 09:35:14Z johnnyw $
+// $Id: INET_Addr.inl 96017 2012-08-08 22:18:09Z mitza $
#include "ace/OS_NS_string.h"
@@ -87,7 +87,11 @@ ACE_INET_Addr::get_port_number (void) const
else
return ACE_NTOHS (this->inet_addr_.in6_.sin6_port);
#else
+# if defined (ACE_VXWORKS) && ACE_VXWORKS >= 0x690
+ return static_cast<u_short> (ACE_NTOHS (this->inet_addr_.in4_.sin_port));
+# else
return ACE_NTOHS (this->inet_addr_.in4_.sin_port);
+# endif
#endif /* ACE_HAS_IPV6 */
}
diff --git a/dep/acelite/ace/IOStream.cpp b/dep/acelite/ace/IOStream.cpp
index 99065091a4c..59d0191f49f 100644
--- a/dep/acelite/ace/IOStream.cpp
+++ b/dep/acelite/ace/IOStream.cpp
@@ -1,12 +1,10 @@
-// $Id: IOStream.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: IOStream.cpp 93359 2011-02-11 11:33:12Z mcorino $
#ifndef ACE_IOSTREAM_CPP
#define ACE_IOSTREAM_CPP
#include "ace/IOStream.h"
-
-
#if !defined (ACE_LACKS_ACE_IOSTREAM)
# include "ace/OS_NS_errno.h"
diff --git a/dep/acelite/ace/IOStream.h b/dep/acelite/ace/IOStream.h
index de154cd1b10..97bbc23b712 100644
--- a/dep/acelite/ace/IOStream.h
+++ b/dep/acelite/ace/IOStream.h
@@ -4,7 +4,7 @@
/**
* @file IOStream.h
*
- * $Id: IOStream.h 92102 2010-09-30 08:14:15Z johnnyw $
+ * $Id: IOStream.h 93359 2011-02-11 11:33:12Z mcorino $
*
* @author James CE Johnson <jcej@lads.com>
* @author Jim Crossley <jim@lads.com>
@@ -156,7 +156,7 @@ class ACE_Export ACE_Streambuf : public streambuf
public:
/**
- * If the default allocation strategey were used the common buffer
+ * If the default allocation strategy 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.
@@ -274,11 +274,11 @@ protected:
*/
int syncin (void);
- /// syncout is called when the output needs to be flushed. This is
+ /// 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
+ /// flushbuf() is the worker of syncout. It is a separate function
/// because it gets used sometimes in different context.
int flushbuf (void);
diff --git a/dep/acelite/ace/IOStream_T.h b/dep/acelite/ace/IOStream_T.h
index 286f1a714d5..6a6cda5703e 100644
--- a/dep/acelite/ace/IOStream_T.h
+++ b/dep/acelite/ace/IOStream_T.h
@@ -4,7 +4,7 @@
/**
* @file IOStream_T.h
*
- * $Id: IOStream_T.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: IOStream_T.h 93359 2011-02-11 11:33:12Z mcorino $
*
* @author James CE Johnson <jcej@lads.com>
* @author Jim Crossley <jim@lads.com>
@@ -116,7 +116,7 @@ public:
u_int streambuf_size = ACE_STREAMBUF_SIZE);
/**
- * The default constructor. This will initiailze your STREAM and
+ * The default constructor. This will initialize your STREAM and
* then setup the iostream baseclass to use a custom streambuf based
* on STREAM.
*/
@@ -126,7 +126,7 @@ public:
/// to the <iostream> base class;
virtual ~ACE_IOStream (void);
- /// The only ambituity in the multiple inheritance is the <close>
+ /// The only ambiguity in the multiple inheritance is the <close>
/// function.
virtual int close (void);
diff --git a/dep/acelite/ace/IO_SAP.cpp b/dep/acelite/ace/IO_SAP.cpp
index 139eb50b3c5..d4bca8c88a1 100644
--- a/dep/acelite/ace/IO_SAP.cpp
+++ b/dep/acelite/ace/IO_SAP.cpp
@@ -1,4 +1,4 @@
-// $Id: IO_SAP.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: IO_SAP.cpp 93736 2011-04-05 12:38:35Z johnnyw $
#include "ace/IO_SAP.h"
@@ -12,8 +12,6 @@
#include "ace/IO_SAP.inl"
#endif /* __ACE_INLINE__ */
-
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_IO_SAP)
diff --git a/dep/acelite/ace/IO_SAP.inl b/dep/acelite/ace/IO_SAP.inl
index 78b2ee31fc0..4c3182fa609 100644
--- a/dep/acelite/ace/IO_SAP.inl
+++ b/dep/acelite/ace/IO_SAP.inl
@@ -1,6 +1,5 @@
// -*- C++ -*-
-//
-// $Id: IO_SAP.inl 80826 2008-03-04 14:51:23Z wotte $
+// $Id: IO_SAP.inl 93736 2011-04-05 12:38:35Z johnnyw $
#include "ace/OS_NS_stropts.h"
diff --git a/dep/acelite/ace/Lib_Find.cpp b/dep/acelite/ace/Lib_Find.cpp
index c5a0610f065..6c63df21b55 100644
--- a/dep/acelite/ace/Lib_Find.cpp
+++ b/dep/acelite/ace/Lib_Find.cpp
@@ -1,4 +1,4 @@
-// $Id: Lib_Find.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: Lib_Find.cpp 95630 2012-03-22 13:04:47Z johnnyw $
#include "ace/Lib_Find.h"
#include "ace/Log_Msg.h"
@@ -608,7 +608,13 @@ ACE::get_temp_dir (ACE_TCHAR *buffer, size_t buffer_len)
const char *tmpdir = ACE_OS::getenv ("TMPDIR");
if (tmpdir == 0)
- tmpdir = "/tmp";
+ {
+#if defined (ACE_DEFAULT_TEMP_DIR)
+ tmpdir = ACE_DEFAULT_TEMP_DIR;
+#else
+ tmpdir = "/tmp";
+#endif
+ }
size_t len = ACE_OS::strlen (tmpdir);
@@ -653,7 +659,10 @@ ACE::open_temp_file (const ACE_TCHAR *name, int mode, int perm)
// Unlink it so that the file will be removed automatically when the
// process goes away.
if (ACE_OS::unlink (name) == -1)
- return ACE_INVALID_HANDLE;
+ {
+ ACE_OS::close (handle);
+ return ACE_INVALID_HANDLE;
+ }
else
// Return the handle.
return handle;
diff --git a/dep/acelite/ace/Lib_Find.h b/dep/acelite/ace/Lib_Find.h
index 133b83ffb7b..1ed2d8e72bc 100644
--- a/dep/acelite/ace/Lib_Find.h
+++ b/dep/acelite/ace/Lib_Find.h
@@ -7,7 +7,7 @@
* All the static function calls needed to search and open shared
* libraries.
*
- * $Id: Lib_Find.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: Lib_Find.h 93359 2011-02-11 11:33:12Z mcorino $
*/
//=============================================================================
@@ -101,10 +101,10 @@ namespace ACE
extern ACE_Export 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
+ * Splits string @a s into pieces separated by the string @a token.
+ * @a 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
+ * This operates very similar to Perl's @c split function except that
* it returns pieces one at a time instead of into an array.
*/
extern ACE_Export char *strsplit_r (char *s,
diff --git a/dep/acelite/ace/Local_Name_Space_T.h b/dep/acelite/ace/Local_Name_Space_T.h
index 56b445b4de8..33f9acc7602 100644
--- a/dep/acelite/ace/Local_Name_Space_T.h
+++ b/dep/acelite/ace/Local_Name_Space_T.h
@@ -4,7 +4,7 @@
/**
* @file Local_Name_Space_T.h
*
- * $Id: Local_Name_Space_T.h 91688 2010-09-09 11:21:50Z johnnyw $
+ * $Id: Local_Name_Space_T.h 93359 2011-02-11 11:33:12Z mcorino $
*
* @author Prashant Jain <pjain@cs.wustl.edu>
* @author Irfan Pyarali <irfan@wuerl.wustl.edu> and
@@ -135,13 +135,13 @@ public:
/**
* 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).
+ * didn't exist yet. (Wide character 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
+ /// Delete a name from a ACE_Local_Name_Space (Wide character strings
/// Interface).
virtual int unbind (const ACE_NS_WString &name);
virtual int unbind_i (const ACE_NS_WString &name);
diff --git a/dep/acelite/ace/Local_Tokens.h b/dep/acelite/ace/Local_Tokens.h
index a555370364a..72e528bfd79 100644
--- a/dep/acelite/ace/Local_Tokens.h
+++ b/dep/acelite/ace/Local_Tokens.h
@@ -4,7 +4,7 @@
/**
* @file Local_Tokens.h
*
- * $Id: Local_Tokens.h 91626 2010-09-07 10:59:20Z johnnyw $
+ * $Id: Local_Tokens.h 93792 2011-04-07 11:48:50Z mcorino $
*
* @author Karl-Heinz Dorn <kdorn@erlh.siemens.de>
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
@@ -408,13 +408,13 @@ public:
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.
+ /// success. If @a 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.
+ /// Returns 1 if @a 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.
+ /// Returns 1 if @a id is an owner of this token. 0 otherwise.
virtual int is_owner (const ACE_TCHAR *id) = 0;
/// Return the queue of waiters.
@@ -562,13 +562,13 @@ public:
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.
+ /// success. If @a 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.
+ /// Returns 1 if @a 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.
+ /// Returns 1 if @a id is an owner of this token. 0 otherwise.
virtual int is_owner (const ACE_TCHAR *id);
private:
@@ -660,13 +660,13 @@ public:
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.
+ /// success. If @a 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.
+ /// Returns 1 if @a 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.
+ /// Returns 1 if @a id is an owner of this token. 0 otherwise.
virtual int is_owner (const ACE_TCHAR *id);
protected:
diff --git a/dep/acelite/ace/Lock.h b/dep/acelite/ace/Lock.h
index 36f99939b56..cbf41306df3 100644
--- a/dep/acelite/ace/Lock.h
+++ b/dep/acelite/ace/Lock.h
@@ -4,7 +4,7 @@
/**
* @file Lock.h
*
- * $Id: Lock.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: Lock.h 93792 2011-04-07 11:48:50Z mcorino $
*
* Moved from Synch.h.
*
@@ -43,7 +43,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
class ACE_Export ACE_Lock
{
public:
- /// CE needs a default ctor here.
+ /// CE needs a default constructor here.
ACE_Lock (void);
/// Noop virtual destructor
@@ -73,20 +73,20 @@ public:
/**
* 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.
+ * 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.
+ * 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>.
+ * doesn't support read locks then this just calls acquire().
* Returns -1 on failure. If we "failed" because someone else
* already had the lock, @c errno is set to @c EBUSY.
*/
@@ -94,7 +94,7 @@ public:
/**
* Conditionally acquire a write lock. If the locking mechanism
- * doesn't support read locks then this just calls <acquire>.
+ * doesn't support read locks then this just calls acquire().
* Returns -1 on failure. If we "failed" because someone else
* already had the lock, @c errno is set to @c EBUSY.
*/
@@ -103,7 +103,7 @@ public:
/**
* 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.
+ * calls acquire(). Returns 0 on success, -1 on failure.
*/
virtual int tryacquire_write_upgrade (void) = 0;
};
@@ -118,13 +118,13 @@ public:
* 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_>.
+ * initialize @c 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_>.
+ /// you construct the underneath @c lock_.
virtual ~ACE_Adaptive_Lock (void);
// = Lock/unlock operations.
@@ -142,8 +142,8 @@ public:
protected:
/**
- * Create and initialize create the actual lcok used in the class.
- * The default constructor simply set the <lock_> to 0 (null). You
+ * Create and initialize create the actual lock used in the class.
+ * The default constructor simply set the @c lock_ to 0 (null). You
* must overwrite this method for this class to work.
*/
ACE_Adaptive_Lock (void);
diff --git a/dep/acelite/ace/Lock_Adapter_T.cpp b/dep/acelite/ace/Lock_Adapter_T.cpp
index fbe43afd217..abe6190866d 100644
--- a/dep/acelite/ace/Lock_Adapter_T.cpp
+++ b/dep/acelite/ace/Lock_Adapter_T.cpp
@@ -1,4 +1,4 @@
-// $Id: Lock_Adapter_T.cpp 80826 2008-03-04 14:51:23Z wotte $
+// $Id: Lock_Adapter_T.cpp 93359 2011-02-11 11:33:12Z mcorino $
#ifndef ACE_LOCK_ADAPTER_T_CPP
#define ACE_LOCK_ADAPTER_T_CPP
@@ -16,17 +16,6 @@
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-// 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_ (true)
-{
- ACE_NEW (this->lock_,
- ACE_LOCKING_MECHANISM);
-}
-
template <class ACE_LOCKING_MECHANISM>
ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::~ACE_Lock_Adapter (void)
{
diff --git a/dep/acelite/ace/Lock_Adapter_T.h b/dep/acelite/ace/Lock_Adapter_T.h
index 2fe38302ed4..3785d7a2d39 100644
--- a/dep/acelite/ace/Lock_Adapter_T.h
+++ b/dep/acelite/ace/Lock_Adapter_T.h
@@ -4,7 +4,7 @@
/**
* @file Lock_Adapter_T.h
*
- * $Id: Lock_Adapter_T.h 84481 2009-02-17 10:58:31Z johnnyw $
+ * $Id: Lock_Adapter_T.h 93359 2011-02-11 11:33:12Z mcorino $
*
* Moved from Synch.h.
*
@@ -28,7 +28,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* @class ACE_Lock_Adapter
*
* @brief This is an adapter that allows applications to transparently
- * combine the <ACE_Lock> abstract base class (which contains
+ * 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.).
@@ -50,7 +50,7 @@ public:
/// created internally.
ACE_Lock_Adapter (void);
- /// Destructor. If <lock_> was not passed in by the user, it will be
+ /// Destructor. If @c lock_ was not passed in by the user, it will be
/// deleted.
virtual ~ACE_Lock_Adapter (void);
@@ -67,29 +67,29 @@ public:
/**
* Block until the thread acquires a read lock. If the locking
* mechanism doesn't support read locks then this just calls
- * <acquire>.
+ * 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>.
+ * 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>.
+ /// 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>.
+ /// 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.
+ * calls acquire(). Returns 0 on success, -1 on failure.
*/
virtual int tryacquire_write_upgrade (void);
diff --git a/dep/acelite/ace/Lock_Adapter_T.inl b/dep/acelite/ace/Lock_Adapter_T.inl
index ff102b59d4a..4ffaf6cb69b 100644
--- a/dep/acelite/ace/Lock_Adapter_T.inl
+++ b/dep/acelite/ace/Lock_Adapter_T.inl
@@ -1,6 +1,8 @@
// -*- C++ -*-
//
-// $Id: Lock_Adapter_T.inl 80826 2008-03-04 14:51:23Z wotte $
+// $Id: Lock_Adapter_T.inl 93385 2011-02-14 20:21:20Z mitza $
+
+#include "ace/OS_Memory.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -13,4 +15,14 @@ ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::ACE_Lock_Adapter (
{
}
+template <class ACE_LOCKING_MECHANISM>
+ACE_INLINE
+ACE_Lock_Adapter<ACE_LOCKING_MECHANISM>::ACE_Lock_Adapter (void)
+ : lock_ (0),
+ delete_lock_ (true)
+{
+ ACE_NEW (this->lock_,
+ ACE_LOCKING_MECHANISM);
+}
+
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/Log_Msg.cpp b/dep/acelite/ace/Log_Msg.cpp
index 3df89332aea..676236b72ca 100644
--- a/dep/acelite/ace/Log_Msg.cpp
+++ b/dep/acelite/ace/Log_Msg.cpp
@@ -1,4 +1,4 @@
-// $Id: Log_Msg.cpp 92052 2010-09-27 14:20:22Z vzykov $
+// $Id: Log_Msg.cpp 95761 2012-05-15 18:23:04Z johnnyw $
// We need this to get the status of ACE_NTRACE...
#include "ace/config-all.h"
@@ -57,16 +57,7 @@ ACE_ALLOC_HOOK_DEFINE(ACE_Log_Msg)
# if defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || \
defined (ACE_HAS_TSS_EMULATION)
-#if defined (ACE_MVS)
- static ACE_thread_key_t the_log_msg_tss_key =
- #if !defined(_LP64)
- { '\0','\0','\0','\0' };
- #else
- { '\0','\0','\0','\0','\0','\0','\0','\0' };
- #endif
-#else
- static ACE_thread_key_t the_log_msg_tss_key = 0;
-#endif /* defined (ACE_MVS) */
+static ACE_thread_key_t the_log_msg_tss_key = 0;
ACE_thread_key_t *log_msg_tss_key (void)
{
@@ -1051,27 +1042,30 @@ ACE_Log_Msg::log (const ACE_TCHAR *format_str,
}
if (timestamp_ > 0)
- {
- ACE_TCHAR day_and_time[35];
- const ACE_TCHAR *s = 0;
- if (timestamp_ == 1)
- {
- // Print just the time
- s = ACE::timestamp (day_and_time, sizeof day_and_time / sizeof (ACE_TCHAR), 1);
- }
- else
- {
- // Print time and date
- ACE::timestamp (day_and_time, sizeof day_and_time / sizeof (ACE_TCHAR));
- s = day_and_time;
- }
-
- for (; bspace > 1 && (*bp = *s) != '\0'; ++s, --bspace)
- ++bp;
-
- *bp++ = '|';
- --bspace;
- }
+ {
+ ACE_TCHAR day_and_time[27];
+ const ACE_TCHAR *s = 0;
+ if (timestamp_ == 1)
+ {
+ // Print just the time
+ s = ACE::timestamp (day_and_time,
+ sizeof (day_and_time) / sizeof (ACE_TCHAR),
+ true);
+ }
+ else
+ {
+ // Print time and date
+ ACE::timestamp (day_and_time,
+ sizeof (day_and_time) / sizeof (ACE_TCHAR));
+ s = day_and_time;
+ }
+
+ for (; bspace > 1 && (*bp = *s) != '\0'; ++s, --bspace)
+ ++bp;
+
+ *bp++ = '|';
+ --bspace;
+ }
while (*format_str != '\0' && bspace > 0)
{
@@ -1106,7 +1100,8 @@ ACE_Log_Msg::log (const ACE_TCHAR *format_str,
const ACE_TCHAR *abort_str = ACE_TEXT ("Aborting...");
const ACE_TCHAR *start_format = format_str;
ACE_TCHAR format[128]; // Converted format string
- ACE_TCHAR *fp; // Current format pointer
+ ACE_OS::memset (format, '\0', 128); // Set this string to known values.
+ ACE_TCHAR *fp = 0; // Current format pointer
int wp = 0; // Width/precision extracted from args
bool done = false;
bool skip_nul_locate = false;
@@ -1647,21 +1642,23 @@ ACE_Log_Msg::log (const ACE_TCHAR *format_str,
}
case 'D': // Format the timestamp in format:
- // Weekday Month day year hour:minute:sec.usec
+ // yyyy-mm-dd hour:minute:sec.usec
+ // This is a maximum of 27 characters
+ // including terminator.
{
- ACE_TCHAR day_and_time[35];
+ ACE_TCHAR day_and_time[27];
// Did we find the flag indicating a time value argument
if (format[1] == ACE_TEXT('#'))
{
ACE_Time_Value* time_value = va_arg (argp, ACE_Time_Value*);
ACE::timestamp (*time_value,
day_and_time,
- sizeof day_and_time / sizeof (ACE_TCHAR));
+ sizeof (day_and_time) / sizeof (ACE_TCHAR));
}
else
{
ACE::timestamp (day_and_time,
- sizeof day_and_time / sizeof (ACE_TCHAR));
+ sizeof (day_and_time) / sizeof (ACE_TCHAR));
}
#if !defined (ACE_WIN32) && defined (ACE_USES_WCHAR)
ACE_OS::strcpy (fp, ACE_TEXT ("ls"));
@@ -1678,9 +1675,9 @@ ACE_Log_Msg::log (const ACE_TCHAR *format_str,
}
case 'T': // Format the timestamp in
- // hour:minute:sec:usec format.
+ // hour:minute:sec.usec format.
{
- ACE_TCHAR day_and_time[35];
+ ACE_TCHAR day_and_time[27];
#if !defined (ACE_WIN32) && defined (ACE_USES_WCHAR)
ACE_OS::strcpy (fp, ACE_TEXT ("ls"));
#else
@@ -1733,15 +1730,6 @@ ACE_Log_Msg::log (const ACE_TCHAR *format_str,
ACE_hthread_t t_id;
ACE_OS::thr_self (t_id);
-# if defined (ACE_MVS) || defined (ACE_TANDEM_T1248_PTHREADS)
- // MVS's pthread_t is a struct... yuck. So use the ACE 5.0
- // code for it.
- ACE_OS::strcpy (fp, ACE_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
@@ -1754,7 +1742,6 @@ ACE_Log_Msg::log (const ACE_TCHAR *format_str,
else
this_len = ACE_OS::sprintf
(bp, format, (unsigned long)t_id);
-# endif /* ACE_MWS || ACE_TANDEM_T1248_PTHREADS */
#endif /* ACE_WIN32 */
ACE_UPDATE_COUNT (bspace, this_len);
@@ -1981,21 +1968,6 @@ ACE_Log_Msg::log (const ACE_TCHAR *format_str,
break;
case 'Q':
-#if defined (ACE_LACKS_LONGLONG_T) || defined (ACE_LACKS_UNSIGNEDLONGLONG_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 %
@@ -2008,15 +1980,10 @@ ACE_Log_Msg::log (const ACE_TCHAR *format_str,
format,
va_arg (argp, ACE_UINT64));
}
-#endif /* ! ACE_LACKS_LONGLONG_T || ACE_LACKS_UNSIGNEDLONGLONG_T */
ACE_UPDATE_COUNT (bspace, this_len);
break;
case 'q':
- #if defined (ACE_LACKS_LONGLONG_T)
- // No implementation available yet, no ACE_INT64 emulation
- // available yet
- #else /* ! ACE_LACKS_LONGLONG_T */
{
const ACE_TCHAR *fmt = ACE_INT64_FORMAT_SPECIFIER;
ACE_OS::strcpy (fp, &fmt[1]); // Skip leading %
@@ -2029,7 +1996,6 @@ ACE_Log_Msg::log (const ACE_TCHAR *format_str,
format,
va_arg (argp, ACE_INT64));
}
- #endif /* ! ACE_LACKS_LONGLONG_T */
ACE_UPDATE_COUNT (bspace, this_len);
break;
diff --git a/dep/acelite/ace/Log_Msg.h b/dep/acelite/ace/Log_Msg.h
index 28b00325dc7..28d5944937f 100644
--- a/dep/acelite/ace/Log_Msg.h
+++ b/dep/acelite/ace/Log_Msg.h
@@ -4,7 +4,7 @@
/**
* @file Log_Msg.h
*
- * $Id: Log_Msg.h 92298 2010-10-21 11:15:17Z johnnyw $
+ * $Id: Log_Msg.h 95128 2011-11-27 21:22:15Z johnnyw $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
*/
@@ -556,16 +556,16 @@ public:
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
*/
+ 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 */
);
/**
@@ -633,7 +633,7 @@ private:
/**
* 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
+ * thread descriptor of the thread. This can be used to rapidly
* access all thread data kept in ACE_Thread_Descriptor.
*/
ACE_Thread_Descriptor *thr_desc_;
diff --git a/dep/acelite/ace/Log_Msg_UNIX_Syslog.cpp b/dep/acelite/ace/Log_Msg_UNIX_Syslog.cpp
index 50e78754653..ae4e307ec0e 100644
--- a/dep/acelite/ace/Log_Msg_UNIX_Syslog.cpp
+++ b/dep/acelite/ace/Log_Msg_UNIX_Syslog.cpp
@@ -1,4 +1,4 @@
-// $Id: Log_Msg_UNIX_Syslog.cpp 80826 2008-03-04 14:51:23Z wotte $
+// $Id: Log_Msg_UNIX_Syslog.cpp 92791 2010-12-04 16:25:22Z shuston $
#include "ace/config-all.h"
@@ -110,7 +110,7 @@ ACE_Log_Msg_UNIX_Syslog::log (ACE_Log_Record &log_record)
if (ACE_BIT_ENABLED (flags, ACE_Log_Msg::VERBOSE)
|| ACE_BIT_ENABLED (flags, ACE_Log_Msg::VERBOSE_LITE))
{
- ACE_TCHAR date_and_time[35];
+ ACE_TCHAR date_and_time[27];
if (0 == ACE::timestamp (date_and_time, sizeof (date_and_time), 1))
ACE_OS::strcpy (date_and_time, ACE_TEXT ("<time error>"));
const ACE_TCHAR *prio_name =
diff --git a/dep/acelite/ace/Log_Record.cpp b/dep/acelite/ace/Log_Record.cpp
index cea333a5c1e..b626533b517 100644
--- a/dep/acelite/ace/Log_Record.cpp
+++ b/dep/acelite/ace/Log_Record.cpp
@@ -1,11 +1,10 @@
-// $Id: Log_Record.cpp 91764 2010-09-14 13:04:37Z johnnyw $
+// $Id: Log_Record.cpp 92791 2010-12-04 16:25:22Z shuston $
#include "ace/Log_Record.h"
#include "ace/Log_Msg.h"
#include "ace/ACE.h"
#include "ace/OS_NS_stdio.h"
-#include "ace/OS_NS_time.h"
#include "ace/CDR_Stream.h"
#include "ace/Auto_Ptr.h"
#include "ace/Truncate.h"
@@ -214,18 +213,16 @@ 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.
+ /* 012345678901234567890123456 */
+ /* yyyy-mm-dd hh:mm:ss.mmmmmm<nul> */
+ ACE_TCHAR timestamp[27]; // Only used by VERBOSE and VERBOSE_LITE.
// The sprintf format needs to be different for Windows and POSIX
// in the wide-char case.
#if defined (ACE_WIN32) || !defined (ACE_USES_WCHAR)
- const ACE_TCHAR *time_fmt = ACE_TEXT ("%s.%03ld %s");
const ACE_TCHAR *verbose_fmt = ACE_TEXT ("%s@%s@%u@%s@%s");
const ACE_TCHAR *verbose_lite_fmt = ACE_TEXT ("%s@%s@%s");
#else
- const ACE_TCHAR *time_fmt = ACE_TEXT ("%ls.%03ld %ls");
const ACE_TCHAR *verbose_fmt = ACE_TEXT ("%ls@%ls@%u@%ls@%ls");
const ACE_TCHAR *verbose_lite_fmt = ACE_TEXT ("%ls@%ls@%ls");
#endif
@@ -235,23 +232,16 @@ ACE_Log_Record::format_msg (const ACE_TCHAR host_name[],
|| ACE_BIT_ENABLED (verbose_flag,
ACE_Log_Msg::VERBOSE_LITE))
{
- time_t const now = this->secs_;
- ACE_TCHAR ctp[26]; // 26 is a magic number...
-
- if (ACE_OS::ctime_r (&now, ctp, sizeof ctp / sizeof (ACE_TCHAR)) == 0)
+ ACE_Time_Value reftime (this->secs_, this->usecs_);
+ if (0 == ACE::timestamp (reftime,
+ timestamp,
+ sizeof (timestamp) / sizeof (ACE_TCHAR)))
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,
- time_fmt,
- ctp + 4,
- ((long) this->usecs_) / 1000,
- ctp + 20);
+ // Historical timestamp in VERBOSE[_LITE] used 3 places for partial sec.
+ // 012345678901234567890123456
+ // 1989-10-18 14:25:36.123<nul>
+ timestamp[23] = '\0';
}
if (ACE_BIT_ENABLED (verbose_flag,
diff --git a/dep/acelite/ace/MEM_Stream.h b/dep/acelite/ace/MEM_Stream.h
index 63ad2736a4d..6f0d3616070 100644
--- a/dep/acelite/ace/MEM_Stream.h
+++ b/dep/acelite/ace/MEM_Stream.h
@@ -4,7 +4,7 @@
/**
* @file MEM_Stream.h
*
- * $Id: MEM_Stream.h 92069 2010-09-28 11:38:59Z johnnyw $
+ * $Id: MEM_Stream.h 94448 2011-09-08 08:20:29Z johnnyw $
*
* @author Nanbor Wang <nanbor@cs.wustl.edu>
*/
@@ -13,8 +13,11 @@
#ifndef ACE_MEM_STREAM_H
#define ACE_MEM_STREAM_H
+
#include /**/ "ace/pre.h"
+#include /**/ "ace/ACE_export.h"
+
#include "ace/MEM_IO.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
diff --git a/dep/acelite/ace/MMAP_Memory_Pool.cpp b/dep/acelite/ace/MMAP_Memory_Pool.cpp
index 82556a8327a..f1a65100700 100644
--- a/dep/acelite/ace/MMAP_Memory_Pool.cpp
+++ b/dep/acelite/ace/MMAP_Memory_Pool.cpp
@@ -1,4 +1,4 @@
-// $Id: MMAP_Memory_Pool.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: MMAP_Memory_Pool.cpp 93974 2011-04-22 07:26:59Z msmit $
// MMAP_Memory_Pool.cpp
#include "ace/MMAP_Memory_Pool.h"
@@ -372,7 +372,7 @@ ACE_MMAP_Memory_Pool::init_acquire (size_t nbytes,
void *result = this->acquire (nbytes, rounded_bytes);
// After the first time, reset the flag so that subsequent calls
// will use MAP_FIXED
- if (use_fixed_addr_ == ACE_MMAP_Memory_Pool_Options::FIRSTCALL_FIXED)
+ if (this->use_fixed_addr_ == ACE_MMAP_Memory_Pool_Options::FIRSTCALL_FIXED)
{
ACE_SET_BITS (flags_, MAP_FIXED);
}
diff --git a/dep/acelite/ace/Malloc_T.cpp b/dep/acelite/ace/Malloc_T.cpp
index 88b456d66e2..be56870f342 100644
--- a/dep/acelite/ace/Malloc_T.cpp
+++ b/dep/acelite/ace/Malloc_T.cpp
@@ -1,4 +1,4 @@
-// $Id: Malloc_T.cpp 91809 2010-09-17 07:20:41Z johnnyw $
+// $Id: Malloc_T.cpp 94341 2011-07-22 12:33:43Z schmidt $
#ifndef ACE_MALLOC_T_CPP
#define ACE_MALLOC_T_CPP
@@ -105,16 +105,17 @@ 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_ (chunk_size)
{
+ ACE_ASSERT (chunk_size > 0);
chunk_size = ACE_MALLOC_ROUNDUP (chunk_size, ACE_MALLOC_ALIGN);
- ACE_NEW (this->pool_, char[n_chunks * chunk_size_]);
+ 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_;
+ void *placement = this->pool_ + c * chunk_size;
this->free_list_.add (new (placement) ACE_Cached_Mem_Pool_Node<char>);
}
diff --git a/dep/acelite/ace/Map_T.h b/dep/acelite/ace/Map_T.h
index bb5965a76d3..5eeecc007bf 100644
--- a/dep/acelite/ace/Map_T.h
+++ b/dep/acelite/ace/Map_T.h
@@ -4,7 +4,7 @@
/**
* @file Map_T.h
*
- * $Id: Map_T.h 92097 2010-09-30 05:41:49Z msmit $
+ * $Id: Map_T.h 93792 2011-04-07 11:48:50Z mcorino $
*
* @author Irfan Pyarali <irfan@cs.wustl.edu>
*/
@@ -851,11 +851,11 @@ public:
/// Close down and release dynamically allocated resources.
virtual ~ACE_Active_Map_Manager_Adapter (void);
- /// Initialize a <Map> with size @a length.
+ /// Initialize a Map with size @a length.
virtual int open (size_t length = ACE_DEFAULT_MAP_SIZE,
ACE_Allocator *alloc = 0);
- /// Close down a <Map> and release dynamically allocated resources.
+ /// Close down a Map and release dynamically allocated resources.
virtual int close (void);
/**
@@ -870,11 +870,10 @@ public:
/**
* Add @a key / @a value pair to the map. @a key is an "inout" parameter
* and maybe modified/extended by the map to add additional
- * information. To recover original key, call the <recover_key>
+ * information. To recover original key, call the recover_key()
* method.
*/
- virtual int bind_modify_key (const VALUE &value,
- KEY &key);
+ virtual int bind_modify_key (const VALUE &value, KEY &key);
/**
* Produce a key and return it through @a key which is an "out"
@@ -910,7 +909,7 @@ public:
virtual int bind_create_key (const VALUE &value);
/// Recovers the original key potentially modified by the map during
- /// <bind_modify_key>.
+ /// bind_modify_key().
virtual int recover_key (const KEY &modified_key,
KEY &original_key);
diff --git a/dep/acelite/ace/Mem_Map.cpp b/dep/acelite/ace/Mem_Map.cpp
index baf9ce36189..c4e689ec842 100644
--- a/dep/acelite/ace/Mem_Map.cpp
+++ b/dep/acelite/ace/Mem_Map.cpp
@@ -1,8 +1,9 @@
-// $Id: Mem_Map.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: Mem_Map.cpp 95716 2012-05-01 07:49:04Z johnnyw $
// Defines the member functions for the memory mapping facility.
#include "ace/Mem_Map.h"
+
#if !defined (__ACE_INLINE__)
#include "ace/Mem_Map.inl"
#endif /* __ACE_INLINE__ */
@@ -13,13 +14,10 @@
#include "ace/Log_Msg.h"
#include "ace/Truncate.h"
-
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_Mem_Map)
-
void
ACE_Mem_Map::dump (void) const
{
@@ -79,68 +77,95 @@ ACE_Mem_Map::map_it (ACE_HANDLE handle,
this->base_addr_ = addr;
this->handle_ = handle;
- // Get the current filesize
- ACE_OFF_T const current_file_length = ACE_OS::filesize (this->handle_);
-
- // Flag to indicate if we need to extend the back store
- bool extend_backing_store = false;
-
- // File length requested by user
- ACE_OFF_T requested_file_length = 0;
+ // mmap through character device doens't care about it's size
+ // So map with /dev/* is done with a special case.
+ ACE_stat current_file_type;
+ int result = ACE_OS::fstat (this->handle_, &current_file_type);
- // Check <length_request>
- if (length_request == static_cast<size_t> (-1))
+ if (result == -1)
{
- // Set length to file_request or size_t max.
- this->length_ = ACE_Utils::truncate_cast<size_t> (current_file_length - offset);
+ // Something wrong found, bail out.
+ return -1;
}
- else
+ else if ((current_file_type.st_mode & S_IFMT) == S_IFCHR)
{
- // Make sure that we have not been asked to do the impossible.
- if (static_cast<ACE_UINT64> (length_request)
- + static_cast<ACE_UINT64> (offset)
- > static_cast<ACE_UINT64> (ACE_Numeric_Limits<ACE_OFF_T>::max ()))
- return -1;
-
- // File length implicitly requested by user
- requested_file_length = static_cast<ACE_OFF_T> (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 = true;
- }
-
// Set length to length_request
this->length_ = length_request;
}
-
- // Check if we need to extend the backing store.
- if (extend_backing_store)
+ else if ((current_file_type.st_mode & S_IFMT) == S_IFREG)
{
- // Remember than write increases the size by one.
- ACE_OFF_T null_byte_position = 0;
- if (requested_file_length > 0)
+ // Get the current filesize
+ ACE_OFF_T const current_file_length = ACE_OS::filesize (this->handle_);
+
+ // Flag to indicate if we need to extend the back store
+ bool extend_backing_store = false;
+
+ // File length requested by user
+ ACE_OFF_T requested_file_length = 0;
+
+ // Check <length_request>
+ if (length_request == static_cast<size_t> (-1))
{
- // This will make the file size <requested_file_length>
- null_byte_position = requested_file_length - 1;
+ // Set length to file_request or size_t max.
+ this->length_ = ACE_Utils::truncate_cast<size_t> (current_file_length - offset);
+#if defined (ACE_MMAP_NO_ZERO)
+ if (this->length_ == 0)
+ {
+ this->length_ = ACE_OS::getpagesize ();
+ }
+#endif /* ACE_MMAP_NO_ZERO */
+ }
+ else
+ {
+ // Make sure that we have not been asked to do the impossible.
+ if (static_cast<ACE_UINT64> (length_request)
+ + static_cast<ACE_UINT64> (offset)
+ > static_cast<ACE_UINT64> (ACE_Numeric_Limits<ACE_OFF_T>::max ()))
+ return -1;
+
+ // File length implicitly requested by user
+ requested_file_length = static_cast<ACE_OFF_T> (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 = true;
+ }
+
+ // Set length to length_request
+ this->length_ = length_request;
}
- if (ACE_OS::pwrite (this->handle_,
- "",
- 1,
- null_byte_position) == -1)
- return -1;
- }
+ // Check if we need to extend the backing store.
+ if (extend_backing_store)
+ {
+ // Remember than write increases the size by one.
+ ACE_OFF_T null_byte_position = 0;
+ if (requested_file_length > 0)
+ {
+ // This will make the file size <requested_file_length>
+ null_byte_position = requested_file_length - 1;
+ }
+
+ if (ACE_OS::pwrite (this->handle_,
+ "",
+ 1,
+ null_byte_position) == -1)
+ return -1;
+ }
+ }
+ else
+ // Unmappable file type.
+ return -1;
- this->base_addr_ = ACE_OS::mmap (this->base_addr_,
+ this->base_addr_ = ACE_OS::mmap (this->base_addr_,
this->length_,
prot,
share,
diff --git a/dep/acelite/ace/Message_Block.cpp b/dep/acelite/ace/Message_Block.cpp
index 0265fa11f1c..3ce71d6c5ca 100644
--- a/dep/acelite/ace/Message_Block.cpp
+++ b/dep/acelite/ace/Message_Block.cpp
@@ -1,4 +1,4 @@
-// $Id: Message_Block.cpp 91368 2010-08-16 13:03:34Z mhengstmengel $
+// $Id: Message_Block.cpp 94516 2011-09-21 14:51:23Z johnnyw $
#include "ace/Message_Block.h"
#if !defined (__ACE_INLINE__)
@@ -1173,80 +1173,88 @@ 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);
+ const ACE_Message_Block *old_message_block = this;
+ ACE_Message_Block *new_message_block = 0;
+ ACE_Message_Block *new_previous_message_block = 0;
+ ACE_Message_Block *new_root_message_block = 0;
- if (db == 0)
- return 0;
-
- ACE_Message_Block *nb = 0;
-
- 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
+ do
{
- // 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 = 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_);
- }
+ // Get a pointer to a "cloned"<ACE_Data_Block> (will copy the
+ // values rather than increment the reference count).
+ ACE_Data_Block *db = old_message_block->data_block ()->clone (mask);
- if (nb == 0)
- {
- db->release ();
- return 0;
- }
+ if (db == 0)
+ 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_);
+ if(old_message_block->message_block_allocator_ == 0)
+ {
+ ACE_NEW_RETURN (new_message_block,
+ ACE_Message_Block (0, // size
+ ACE_Message_Type (0), // type
+ 0, // cont
+ 0, // data
+ 0, // allocator
+ 0, // locking strategy
+ 0, // flags
+ old_message_block->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 (),
+ old_message_block->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.
+ new_message_block = static_cast<ACE_Message_Block*> (message_block_allocator_->malloc (sizeof (ACE_Message_Block)));
+ if (new_message_block != 0)
+ new (new_message_block) ACE_Message_Block (0, // size
+ ACE_Message_Type (0), // type
+ 0, // cont
+ 0, // data
+ 0, // allocator
+ 0, // locking strategy
+ 0, // flags
+ old_message_block->priority_, // priority
+ ACE_EXECUTION_TIME, // execution time
+ ACE_DEADLINE_TIME, // absolute time to deadline
+ db,
+ db->data_block_allocator (),
+ old_message_block->message_block_allocator_);
+ }
- // Clone all the continuation messages if necessary.
- if (this->cont () != 0
- && (nb->cont_ = this->cont ()->clone (mask)) == 0)
- {
- nb->release ();
- return 0;
+ if (new_message_block == 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>.
+ new_message_block->rd_ptr (old_message_block->rd_ptr_);
+ new_message_block->wr_ptr (old_message_block->wr_ptr_);
+ // save the root message block to return
+ if (new_root_message_block == 0)
+ new_root_message_block = new_message_block;
+ if (new_previous_message_block != 0)
+ // we're a continuation of the previous block, add ourself to its chain
+ new_previous_message_block->cont_ = new_message_block;
+ new_previous_message_block = new_message_block;
+ old_message_block = old_message_block->cont ();
}
- return nb;
+ while (old_message_block != 0);
+
+ return new_root_message_block;
}
// This is private.
diff --git a/dep/acelite/ace/Message_Block.h b/dep/acelite/ace/Message_Block.h
index 0e8c4bfd643..516f6fd42d1 100644
--- a/dep/acelite/ace/Message_Block.h
+++ b/dep/acelite/ace/Message_Block.h
@@ -4,7 +4,7 @@
/**
* @file Message_Block.h
*
- * $Id: Message_Block.h 91066 2010-07-12 11:05:04Z johnnyw $
+ * $Id: Message_Block.h 95798 2012-05-31 07:58:55Z johnnyw $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
*/
@@ -204,7 +204,7 @@ public:
/**
* Create a Message Block that assumes it has ownership of @a data,
- * but in reality it doesnt (i.e., cannot delete it since it didn't
+ * but in reality it doesn't (i.e., cannot delete it since it didn't
* malloc it!). Note that the @c size of the Message_Block will
* be @a size, but the @a length will be 0 until <wr_ptr> is set.
*/
@@ -276,8 +276,8 @@ public:
// = Data Block flag accessors and mutators.
/// Bitwise-or the @a 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
+ /** @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 don't
* mess up memory management of the Message_Block. Somebody correct
* me if I am totally totally wrong..
*/
@@ -319,9 +319,9 @@ public:
/**
* Return a "shallow" copy that increments our reference count by 1.
- * This is similar to CORBA's <_duplicate> method, which is useful
+ * This is similar to CORBA's _duplicate() method, which is useful
* if you want to eliminate lots of checks for NULL @a mb pointers
- * before calling <_duplicate> on them.
+ * before calling _duplicate() on them.
*/
static ACE_Message_Block *duplicate (const ACE_Message_Block *mb);
@@ -355,10 +355,10 @@ public:
virtual ACE_Message_Block *release (void);
/**
- * This behaves like the non-static method <release>, except that it
- * checks if @a mb is 0. This is similar to <CORBA::release>, which
+ * This behaves like the non-static method release(), except that it
+ * checks if @a 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 @a mb.
+ * pointers before calling release() on them. Returns @a mb.
*/
static ACE_Message_Block *release (ACE_Message_Block *mb);
@@ -717,7 +717,7 @@ public:
*/
char *mark (void) const;
- // = Message size is the total amount of space alloted.
+ // = Message size is the total amount of space allotred.
/// Get the total amount of allotted space in the message. The amount of
/// allotted space may be less than allocated space.
@@ -762,11 +762,11 @@ public:
ACE_Data_Block *release (ACE_Lock *lock = 0);
// = Message flag accessors and mutators.
- /// Bitwise-or the <more_flags> into the existing message flags and
+ /// Bitwise-or the @a 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
+ /// Clear the message flag bits specified in @a less_flags and return
/// the new value.
ACE_Message_Block::Message_Flags clr_flags (ACE_Message_Block::Message_Flags less_flags);
@@ -803,7 +803,7 @@ protected:
* Decrease the reference count, but don't delete the object.
* Returns 0 if the object should be removed.
* If @a lock is equal to the locking strategy then we assume that
- * the lock is beign held by the current thread; this is used to
+ * the lock is being held by the current thread; this is used to
* release all the data blocks in a chain while holding a single
* lock.
*/
@@ -843,7 +843,7 @@ protected:
/**
* Reference count for this ACE_Data_Block, which is used to avoid
- * deep copies (i.e., <clone>). Note that this pointer value is
+ * 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_Blocks.
*/
diff --git a/dep/acelite/ace/Message_Queue.h b/dep/acelite/ace/Message_Queue.h
index eca4a37606c..2a70a1046a9 100644
--- a/dep/acelite/ace/Message_Queue.h
+++ b/dep/acelite/ace/Message_Queue.h
@@ -4,7 +4,7 @@
/**
* @file Message_Queue.h
*
- * $Id: Message_Queue.h 91688 2010-09-09 11:21:50Z johnnyw $
+ * $Id: Message_Queue.h 96061 2012-08-16 09:36:07Z mcorino $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
*/
@@ -26,14 +26,14 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// 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;
+template <ACE_SYNCH_DECL, class TIME_POLICY> class ACE_Message_Queue_Iterator;
+template <ACE_SYNCH_DECL, class TIME_POLICY> 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.
+ * queuing facility for messages in the ACE framework.
*
* For all the ACE_Time_Value pointer parameters the caller will
* block until action is possible if @a timeout == 0. Otherwise, it
@@ -90,7 +90,7 @@ public:
* that @a timeout uses <{absolute}> time rather than <{relative}>
* time. If the @a timeout elapses without receiving a message -1 is
* returned and @c errno is set to @c EWOULDBLOCK. If the queue is
- * deactivated -1 is returned and @c errno is set to <ESHUTDOWN>.
+ * deactivated -1 is returned and @c errno is set to @c ESHUTDOWN.
* Otherwise, returns -1 on failure, else the number of items still
* on the queue.
*/
@@ -101,8 +101,8 @@ public:
* 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 @c errno == <ESHUTDOWN>), when a signal
- * occurs (in which case @c errno == <EINTR>, or if the time
+ * deactivated (in which case @c errno == @c ESHUTDOWN), when a signal
+ * occurs (in which case @c errno == @c EINTR, or if the time
* specified in timeout elapses (in which case @c errno ==
* @c EWOULDBLOCK).
*/
@@ -115,8 +115,8 @@ public:
* 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 @c errno == <ESHUTDOWN>), when a signal
- * occurs (in which case @c errno == <EINTR>, or if the time
+ * deactivated (in which case @c errno == @c ESHUTDOWN), when a signal
+ * occurs (in which case @c errno == @c EINTR, or if the time
* specified in timeout elapses (in which case @c errno ==
* @c EWOULDBLOCK).
*/
diff --git a/dep/acelite/ace/Message_Queue_NT.cpp b/dep/acelite/ace/Message_Queue_NT.cpp
index 085282e2039..385af2c1b9b 100644
--- a/dep/acelite/ace/Message_Queue_NT.cpp
+++ b/dep/acelite/ace/Message_Queue_NT.cpp
@@ -1,4 +1,4 @@
-// $Id: Message_Queue_NT.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: Message_Queue_NT.cpp 92900 2010-12-17 14:45:11Z mcorino $
#include "ace/Message_Queue.h"
#include "ace/Message_Queue_NT.h"
@@ -29,10 +29,13 @@ ACE_Message_Queue_NT::open (DWORD max_threads)
{
ACE_TRACE ("ACE_Message_Queue_NT::open");
this->max_cthrs_ = max_threads;
+ this->state_ = ACE_Message_Queue_Base::ACTIVATED;
this->completion_port_ = ::CreateIoCompletionPort (ACE_INVALID_HANDLE,
0,
ACE_Message_Queue_Base::ACTIVATED,
max_threads);
+ if (this->completion_port_ == 0)
+ this->state_ = ACE_Message_Queue_Base::DEACTIVATED;
return (this->completion_port_ == 0 ? -1 : 0);
}
diff --git a/dep/acelite/ace/Message_Queue_T.cpp b/dep/acelite/ace/Message_Queue_T.cpp
index 922c5ab83d6..710df2c43da 100644
--- a/dep/acelite/ace/Message_Queue_T.cpp
+++ b/dep/acelite/ace/Message_Queue_T.cpp
@@ -1,4 +1,4 @@
-// $Id: Message_Queue_T.cpp 91633 2010-09-07 14:27:13Z johnnyw $
+// $Id: Message_Queue_T.cpp 96070 2012-08-17 09:07:16Z mcorino $
#ifndef ACE_MESSAGE_QUEUE_T_CPP
#define ACE_MESSAGE_QUEUE_T_CPP
@@ -6,6 +6,7 @@
// #include Message_Queue.h instead of Message_Queue_T.h to avoid
// circular include problems.
#include "ace/Message_Queue.h"
+#include "ace/Message_Queue_Vx.h"
#include "ace/Log_Msg.h"
#include "ace/OS_NS_sys_time.h"
@@ -19,6 +20,7 @@
#include "ace/Notification_Strategy.h"
#include "ace/Truncate.h"
+#include "ace/Condition_Attributes.h"
#if defined (ACE_HAS_MONITOR_POINTS) && (ACE_HAS_MONITOR_POINTS == 1)
#include "ace/OS_NS_stdio.h"
@@ -33,93 +35,93 @@ ACE_ALLOC_HOOK_DEFINE(ACE_Dynamic_Message_Queue)
ACE_ALLOC_HOOK_DEFINE(ACE_Message_Queue_Ex)
ACE_ALLOC_HOOK_DEFINE(ACE_Message_Queue_Ex_N)
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> void
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::dump (void) const
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> void
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::dump (void) const
{
#if defined (ACE_HAS_DUMP)
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::dump");
+ ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::dump");
this->queue_.dump ();
#endif /* ACE_HAS_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)
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> void
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::message_bytes (size_t new_value)
{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::message_bytes");
+ ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::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)
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> void
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::message_length (size_t new_value)
{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::message_length");
+ ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::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 high_water_mark,
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::ACE_Message_Queue_Ex (size_t high_water_mark,
size_t low_water_mark,
ACE_Notification_Strategy *ns)
{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::ACE_Message_Queue_Ex");
+ ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::ACE_Message_Queue_Ex");
if (this->queue_.open (high_water_mark, low_water_mark, ns) == -1)
ACE_ERROR ((LM_ERROR,
ACE_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)
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::~ACE_Message_Queue_Ex (void)
{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::~ACE_Message_Queue_Ex");
+ ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::~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,
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::open (size_t hwm,
size_t lwm,
ACE_Notification_Strategy *ns)
{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::open");
+ ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::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)
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::close (void)
{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::close");
+ ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::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)
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::flush (void)
{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::flush");
+ ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::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)
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::flush_i (void)
{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::flush_i");
+ ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::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,
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::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_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::peek_dequeue_head");
ACE_Message_Block *mb = 0;
@@ -131,18 +133,18 @@ ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::peek_dequeue_head (ACE_ME
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,
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::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_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::enqueue_head");
ACE_Message_Block *mb = 0;
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),
+ ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::DEFAULT_PRIORITY),
-1);
int const result = this->queue_.enqueue_head (mb, timeout);
@@ -156,21 +158,21 @@ ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::enqueue_head (ACE_MESSAGE
// 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,
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::enqueue (ACE_MESSAGE_TYPE *new_item,
ACE_Time_Value *timeout)
{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::enqueue");
+ ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::enqueue");
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,
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::enqueue_prio (ACE_MESSAGE_TYPE *new_item,
ACE_Time_Value *timeout,
unsigned long priority)
{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::enqueue_prio");
+ ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::enqueue_prio");
ACE_Message_Block *mb = 0;
@@ -188,18 +190,18 @@ ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::enqueue_prio (ACE_MESSAGE
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,
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::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_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::enqueue_deadline");
ACE_Message_Block *mb = 0;
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 ),
+ ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::DEFAULT_PRIORITY ),
-1);
int const result = this->queue_.enqueue_deadline (mb, timeout);
@@ -213,18 +215,18 @@ ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::enqueue_deadline (ACE_MES
// 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,
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::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_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::enqueue_tail");
ACE_Message_Block *mb = 0;
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),
+ ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::DEFAULT_PRIORITY),
-1);
int const result = this->queue_.enqueue_tail (mb, timeout);
@@ -238,11 +240,11 @@ ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::enqueue_tail (ACE_MESSAGE
// 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,
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::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_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::dequeue_head");
ACE_Message_Block *mb = 0;
@@ -263,11 +265,11 @@ ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::dequeue_head (ACE_MESSAGE
// 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,
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::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_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::dequeue_prio");
ACE_Message_Block *mb = 0;
@@ -288,11 +290,11 @@ ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::dequeue_prio (ACE_MESSAGE
// 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,
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::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_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::dequeue_tail");
ACE_Message_Block *mb = 0;
@@ -313,11 +315,11 @@ ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::dequeue_tail (ACE_MESSAGE
// 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,
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::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_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::dequeue_deadline");
ACE_Message_Block *mb = 0;
@@ -334,24 +336,24 @@ ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::dequeue_deadline (ACE_MES
return cur_count;
}
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> int
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::notify (void)
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::notify (void)
{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::notify");
+ ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::notify");
return this->queue_.notify ();
}
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL>
-ACE_Message_Queue_Ex_Iterator<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::
-ACE_Message_Queue_Ex_Iterator (ACE_Message_Queue_Ex <ACE_MESSAGE_TYPE, ACE_SYNCH_USE> & queue)
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Message_Queue_Ex_Iterator<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::
+ACE_Message_Queue_Ex_Iterator (ACE_Message_Queue_Ex <ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY> & queue)
: iter_ (queue.queue_)
{
}
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> int
-ACE_Message_Queue_Ex_Iterator<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Ex_Iterator<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::
next (ACE_MESSAGE_TYPE *&entry)
{
ACE_Message_Block * mb = 0;
@@ -363,36 +365,36 @@ next (ACE_MESSAGE_TYPE *&entry)
return retval;
}
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> int
-ACE_Message_Queue_Ex_Iterator<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::done (void) const
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Ex_Iterator<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::done (void) const
{
return this->iter_.done ();
}
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> int
-ACE_Message_Queue_Ex_Iterator<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::advance (void)
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Ex_Iterator<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::advance (void)
{
return this->iter_.advance ();
}
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> void
-ACE_Message_Queue_Ex_Iterator<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::dump (void) const
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> void
+ACE_Message_Queue_Ex_Iterator<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::dump (void) const
{
this->iter_.dump ();
}
ACE_ALLOC_HOOK_DEFINE(ACE_Message_Queue_Ex_Iterator)
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL>
-ACE_Message_Queue_Ex_Reverse_Iterator<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::
-ACE_Message_Queue_Ex_Reverse_Iterator (ACE_Message_Queue_Ex <ACE_MESSAGE_TYPE, ACE_SYNCH_USE> & queue)
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Message_Queue_Ex_Reverse_Iterator<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::
+ACE_Message_Queue_Ex_Reverse_Iterator (ACE_Message_Queue_Ex <ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY> & queue)
: iter_ (queue.queue_)
{
}
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> int
-ACE_Message_Queue_Ex_Reverse_Iterator<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Ex_Reverse_Iterator<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::
next (ACE_MESSAGE_TYPE *&entry)
{
ACE_Message_Block * mb = 0;
@@ -404,50 +406,50 @@ next (ACE_MESSAGE_TYPE *&entry)
return retval;
}
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> int
-ACE_Message_Queue_Ex_Reverse_Iterator<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::done (void) const
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Ex_Reverse_Iterator<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::done (void) const
{
return this->iter_.done ();
}
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> int
-ACE_Message_Queue_Ex_Reverse_Iterator<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::advance (void)
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Ex_Reverse_Iterator<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::advance (void)
{
return this->iter_.advance ();
}
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> void
-ACE_Message_Queue_Ex_Reverse_Iterator<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::dump (void) const
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> void
+ACE_Message_Queue_Ex_Reverse_Iterator<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::dump (void) const
{
this->iter_.dump ();
}
ACE_ALLOC_HOOK_DEFINE(ACE_Message_Queue_Ex_Reverse_Iterator)
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL>
-ACE_Message_Queue_Ex_N<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::ACE_Message_Queue_Ex_N
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Message_Queue_Ex_N<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::ACE_Message_Queue_Ex_N
(size_t high_water_mark,
size_t low_water_mark,
ACE_Notification_Strategy *ns):
- ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE> (high_water_mark,
+ ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY> (high_water_mark,
low_water_mark,
ns)
{
- ACE_TRACE ("ACE_Message_Queue_Ex_N<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::ACE_Message_Queue_Ex_N");
+ ACE_TRACE ("ACE_Message_Queue_Ex_N<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::ACE_Message_Queue_Ex_N");
}
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL>
-ACE_Message_Queue_Ex_N<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::~ACE_Message_Queue_Ex_N (void)
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Message_Queue_Ex_N<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::~ACE_Message_Queue_Ex_N (void)
{
- ACE_TRACE ("ACE_Message_Queue_Ex_N<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::~ACE_Message_Queue_Ex_N");
+ ACE_TRACE ("ACE_Message_Queue_Ex_N<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::~ACE_Message_Queue_Ex_N");
}
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> int
-ACE_Message_Queue_Ex_N<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::enqueue_head
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Ex_N<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::enqueue_head
(ACE_MESSAGE_TYPE *new_item,
ACE_Time_Value *timeout)
{
- ACE_TRACE ("ACE_Message_Queue_Ex_N<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::enqueue_head");
+ ACE_TRACE ("ACE_Message_Queue_Ex_N<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::enqueue_head");
// Create a chained ACE_Message_Blocks wrappers around the 'chained'
// ACE_MESSAGE_TYPES.
@@ -466,12 +468,12 @@ ACE_Message_Queue_Ex_N<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::enqueue_head
return result;
}
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> int
-ACE_Message_Queue_Ex_N<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::enqueue_tail
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Ex_N<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::enqueue_tail
(ACE_MESSAGE_TYPE *new_item,
ACE_Time_Value *timeout)
{
- ACE_TRACE ("ACE_Message_Queue_Ex_N<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::enqueue_tail");
+ ACE_TRACE ("ACE_Message_Queue_Ex_N<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::enqueue_tail");
// Create a chained ACE_Message_Blocks wrappers around the 'chained'
// ACE_MESSAGE_TYPES.
@@ -490,11 +492,11 @@ ACE_Message_Queue_Ex_N<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::enqueue_tail
return result;
}
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> ACE_Message_Block *
-ACE_Message_Queue_Ex_N<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::wrap_with_mbs_i
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> ACE_Message_Block *
+ACE_Message_Queue_Ex_N<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::wrap_with_mbs_i
(ACE_MESSAGE_TYPE *new_item)
{
- ACE_TRACE ("ACE_Message_Queue_Ex_N<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::wrap_with_mbs_i");
+ ACE_TRACE ("ACE_Message_Queue_Ex_N<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::wrap_with_mbs_i");
// We need to keep a reference to the head of the chain
ACE_Message_Block *mb_head = 0;
@@ -502,7 +504,7 @@ ACE_Message_Queue_Ex_N<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::wrap_with_mbs_i
ACE_NEW_RETURN (mb_head,
ACE_Message_Block ((char *) new_item,
sizeof (*new_item),
- ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::DEFAULT_PRIORITY),
+ ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::DEFAULT_PRIORITY),
0);
// mb_tail will point to the last ACE_Message_Block
@@ -515,7 +517,7 @@ ACE_Message_Queue_Ex_N<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::wrap_with_mbs_i
ACE_NEW_NORETURN (mb_temp,
ACE_Message_Block ((char *) pobj,
sizeof (*pobj),
- ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::DEFAULT_PRIORITY));
+ ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::DEFAULT_PRIORITY));
if (mb_temp == 0)
{
mb_head->release ();
@@ -532,162 +534,176 @@ ACE_Message_Queue_Ex_N<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::wrap_with_mbs_i
ACE_ALLOC_HOOK_DEFINE(ACE_Message_Queue_Reverse_Iterator)
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> int
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::dequeue (ACE_MESSAGE_TYPE *&first_item,
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::dequeue (ACE_MESSAGE_TYPE *&first_item,
ACE_Time_Value *timeout)
{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::dequeue");
+ ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::dequeue");
return this->dequeue_head (first_item, timeout);
}
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> ACE_Notification_Strategy *
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::notification_strategy (void)
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> ACE_Notification_Strategy *
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::notification_strategy (void)
{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::notification_strategy");
+ ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::notification_strategy");
return this->queue_.notification_strategy ();
}
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> void
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::notification_strategy (ACE_Notification_Strategy *s)
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> void
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::notification_strategy (ACE_Notification_Strategy *s)
{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::notification_strategy");
+ ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::notification_strategy");
this->queue_.notification_strategy (s);
}
// Check if queue is empty (holds locks).
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> bool
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::is_empty (void)
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> bool
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::is_empty (void)
{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::is_empty");
+ ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::is_empty");
return this->queue_.is_empty ();
}
// Check if queue is full (holds locks).
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> bool
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::is_full (void)
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> bool
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::is_full (void)
{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::is_full");
+ ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::is_full");
return this->queue_.is_full ();
}
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> size_t
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::high_water_mark (void)
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> size_t
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::high_water_mark (void)
{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::high_water_mark");
+ ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::high_water_mark");
return this->queue_.high_water_mark ();
}
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> void
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::high_water_mark (size_t hwm)
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> void
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::high_water_mark (size_t hwm)
{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::high_water_mark");
+ ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::high_water_mark");
this->queue_.high_water_mark (hwm);
}
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> size_t
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::low_water_mark (void)
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> size_t
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::low_water_mark (void)
{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::low_water_mark");
+ ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::low_water_mark");
return this->queue_.low_water_mark ();
}
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> void
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::low_water_mark (size_t lwm)
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> void
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::low_water_mark (size_t lwm)
{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::low_water_mark");
+ ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::low_water_mark");
this->queue_.low_water_mark (lwm);
}
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> size_t
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::message_bytes (void)
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> size_t
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::message_bytes (void)
{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::message_bytes");
+ ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::message_bytes");
return this->queue_.message_bytes ();
}
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> size_t
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::message_length (void)
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> size_t
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::message_length (void)
{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::message_length");
+ ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::message_length");
return this->queue_.message_length ();
}
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> size_t
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::message_count (void)
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> size_t
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::message_count (void)
{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::message_count");
+ ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::message_count");
return this->queue_.message_count ();
}
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> int
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::deactivate (void)
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::deactivate (void)
{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::deactivate");
+ ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::deactivate");
return this->queue_.deactivate ();
}
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> int
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::activate (void)
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::activate (void)
{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::activate");
+ ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::activate");
return this->queue_.activate ();
}
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> int
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::pulse (void)
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::pulse (void)
{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::pulse");
+ ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::pulse");
return this->queue_.pulse ();
}
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> int
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::deactivated (void)
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::deactivated (void)
{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::deactivated");
+ ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::deactivated");
return this->queue_.deactivated ();
}
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> int
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::state (void)
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::state (void)
{
- ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::state");
+ ACE_TRACE ("ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::state");
return this->queue_.state ();
}
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> ACE_SYNCH_MUTEX_T &
-ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::lock (void)
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> ACE_SYNCH_MUTEX_T &
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::lock (void)
{
return this->queue_.lock ();
}
-template <ACE_SYNCH_DECL>
-ACE_Message_Queue_Iterator<ACE_SYNCH_USE>::ACE_Message_Queue_Iterator (ACE_Message_Queue <ACE_SYNCH_USE> &q)
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Time_Value_T<TIME_POLICY>
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::gettimeofday ()
+{
+ return this->queue_.gettimeofday ();
+}
+
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY>
+void
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::set_time_policy (TIME_POLICY const & rhs)
+{
+ this->queue_.set_time_policy (rhs);
+}
+
+template <ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Message_Queue_Iterator<ACE_SYNCH_USE, TIME_POLICY>::ACE_Message_Queue_Iterator (ACE_Message_Queue <ACE_SYNCH_USE, TIME_POLICY> &q)
: queue_ (q),
curr_ (q.head_)
{
}
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue_Iterator<ACE_SYNCH_USE>::next (ACE_Message_Block *&entry)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Iterator<ACE_SYNCH_USE, TIME_POLICY>::next (ACE_Message_Block *&entry)
{
ACE_READ_GUARD_RETURN (ACE_SYNCH_MUTEX_T, m, this->queue_.lock_, -1)
@@ -700,16 +716,16 @@ ACE_Message_Queue_Iterator<ACE_SYNCH_USE>::next (ACE_Message_Block *&entry)
return 0;
}
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue_Iterator<ACE_SYNCH_USE>::done (void) const
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Iterator<ACE_SYNCH_USE, TIME_POLICY>::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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Iterator<ACE_SYNCH_USE, TIME_POLICY>::advance (void)
{
ACE_READ_GUARD_RETURN (ACE_SYNCH_MUTEX_T, m, this->queue_.lock_, -1)
@@ -718,8 +734,8 @@ ACE_Message_Queue_Iterator<ACE_SYNCH_USE>::advance (void)
return this->curr_ != 0;
}
-template <ACE_SYNCH_DECL> void
-ACE_Message_Queue_Iterator<ACE_SYNCH_USE>::dump (void) const
+template <ACE_SYNCH_DECL, class TIME_POLICY> void
+ACE_Message_Queue_Iterator<ACE_SYNCH_USE, TIME_POLICY>::dump (void) const
{
#if defined (ACE_HAS_DUMP)
#endif /* ACE_HAS_DUMP */
@@ -727,15 +743,15 @@ 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)
+template <ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Message_Queue_Reverse_Iterator<ACE_SYNCH_USE, TIME_POLICY>::ACE_Message_Queue_Reverse_Iterator (ACE_Message_Queue <ACE_SYNCH_USE, TIME_POLICY> &q)
: queue_ (q),
curr_ (queue_.tail_)
{
}
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue_Reverse_Iterator<ACE_SYNCH_USE>::next (ACE_Message_Block *&entry)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Reverse_Iterator<ACE_SYNCH_USE, TIME_POLICY>::next (ACE_Message_Block *&entry)
{
ACE_READ_GUARD_RETURN (ACE_SYNCH_MUTEX_T, m, this->queue_.lock_, -1)
@@ -748,16 +764,16 @@ ACE_Message_Queue_Reverse_Iterator<ACE_SYNCH_USE>::next (ACE_Message_Block *&ent
return 0;
}
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue_Reverse_Iterator<ACE_SYNCH_USE>::done (void) const
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Reverse_Iterator<ACE_SYNCH_USE, TIME_POLICY>::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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue_Reverse_Iterator<ACE_SYNCH_USE, TIME_POLICY>::advance (void)
{
ACE_READ_GUARD_RETURN (ACE_SYNCH_MUTEX_T, m, this->queue_.lock_, -1)
@@ -766,61 +782,61 @@ ACE_Message_Queue_Reverse_Iterator<ACE_SYNCH_USE>::advance (void)
return this->curr_ != 0;
}
-template <ACE_SYNCH_DECL> void
-ACE_Message_Queue_Reverse_Iterator<ACE_SYNCH_USE>::dump (void) const
+template <ACE_SYNCH_DECL, class TIME_POLICY> void
+ACE_Message_Queue_Reverse_Iterator<ACE_SYNCH_USE, TIME_POLICY>::dump (void) const
{
#if defined (ACE_HAS_DUMP)
#endif /* ACE_HAS_DUMP */
}
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::dequeue (ACE_Message_Block *&first_item,
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::dequeue (ACE_Message_Block *&first_item,
ACE_Time_Value *timeout)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::dequeue");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::dequeue");
return this->dequeue_head (first_item, timeout);
}
-template <ACE_SYNCH_DECL> ACE_Notification_Strategy *
-ACE_Message_Queue<ACE_SYNCH_USE>::notification_strategy (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_Notification_Strategy *
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::notification_strategy (void)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::notification_strategy");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::notification_strategy");
return this->notification_strategy_;
}
-template <ACE_SYNCH_DECL> void
-ACE_Message_Queue<ACE_SYNCH_USE>::notification_strategy (ACE_Notification_Strategy *s)
+template <ACE_SYNCH_DECL, class TIME_POLICY> void
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::notification_strategy (ACE_Notification_Strategy *s)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::notification_strategy");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::notification_strategy");
this->notification_strategy_ = s;
}
// Check if queue is empty (does not hold locks).
-template <ACE_SYNCH_DECL> bool
-ACE_Message_Queue<ACE_SYNCH_USE>::is_empty_i (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> bool
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::is_empty_i (void)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::is_empty_i");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::is_empty_i");
return this->tail_ == 0;
}
// Check if queue is full (does not hold locks).
-template <ACE_SYNCH_DECL> bool
-ACE_Message_Queue<ACE_SYNCH_USE>::is_full_i (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> bool
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::is_full_i (void)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::is_full_i");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::is_full_i");
return this->cur_bytes_ >= this->high_water_mark_;
}
// Check if queue is empty (holds locks).
-template <ACE_SYNCH_DECL> bool
-ACE_Message_Queue<ACE_SYNCH_USE>::is_empty (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> bool
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::is_empty (void)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::is_empty");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::is_empty");
ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, false);
return this->is_empty_i ();
@@ -828,132 +844,146 @@ ACE_Message_Queue<ACE_SYNCH_USE>::is_empty (void)
// Check if queue is full (holds locks).
-template <ACE_SYNCH_DECL> bool
-ACE_Message_Queue<ACE_SYNCH_USE>::is_full (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> bool
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::is_full (void)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::is_full");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::is_full");
ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, false);
return this->is_full_i ();
}
-template <ACE_SYNCH_DECL> size_t
-ACE_Message_Queue<ACE_SYNCH_USE>::high_water_mark (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> size_t
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::high_water_mark (void)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::high_water_mark");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::high_water_mark");
ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, 0);
return this->high_water_mark_;
}
-template <ACE_SYNCH_DECL> void
-ACE_Message_Queue<ACE_SYNCH_USE>::high_water_mark (size_t hwm)
+template <ACE_SYNCH_DECL, class TIME_POLICY> void
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::high_water_mark (size_t hwm)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::high_water_mark");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::high_water_mark");
ACE_GUARD (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_);
this->high_water_mark_ = hwm;
}
-template <ACE_SYNCH_DECL> size_t
-ACE_Message_Queue<ACE_SYNCH_USE>::low_water_mark (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> size_t
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::low_water_mark (void)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::low_water_mark");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::low_water_mark");
ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, 0);
return this->low_water_mark_;
}
-template <ACE_SYNCH_DECL> void
-ACE_Message_Queue<ACE_SYNCH_USE>::low_water_mark (size_t lwm)
+template <ACE_SYNCH_DECL, class TIME_POLICY> void
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::low_water_mark (size_t lwm)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::low_water_mark");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::low_water_mark");
ACE_GUARD (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_);
this->low_water_mark_ = lwm;
}
-template <ACE_SYNCH_DECL> size_t
-ACE_Message_Queue<ACE_SYNCH_USE>::message_bytes (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> size_t
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::message_bytes (void)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::message_bytes");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::message_bytes");
ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, 0);
return this->cur_bytes_;
}
-template <ACE_SYNCH_DECL> size_t
-ACE_Message_Queue<ACE_SYNCH_USE>::message_length (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> size_t
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::message_length (void)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::message_length");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::message_length");
ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, 0);
return this->cur_length_;
}
-template <ACE_SYNCH_DECL> size_t
-ACE_Message_Queue<ACE_SYNCH_USE>::message_count (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> size_t
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::message_count (void)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::message_count");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::message_count");
ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, 0);
return this->cur_count_;
}
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::deactivate ()
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::deactivate ()
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::deactivate");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::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> int
-ACE_Message_Queue<ACE_SYNCH_USE>::activate (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::activate (void)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::activate");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::activate");
ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
return this->activate_i ();
}
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::pulse ()
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::pulse ()
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::pulse");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::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> int
-ACE_Message_Queue<ACE_SYNCH_USE>::deactivated (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::deactivated (void)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::deactivated");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::deactivated");
return this->state_ == ACE_Message_Queue_Base::DEACTIVATED;
}
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::state (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::state (void)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::state");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::state");
return this->state_;
}
-template <ACE_SYNCH_DECL> ACE_SYNCH_MUTEX_T &
-ACE_Message_Queue<ACE_SYNCH_USE>::lock (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_SYNCH_MUTEX_T &
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::lock (void)
{
return this->lock_;
}
-template <ACE_SYNCH_DECL> void
-ACE_Message_Queue<ACE_SYNCH_USE>::dump (void) const
+template <ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Time_Value_T<TIME_POLICY>
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::gettimeofday (void) const
+{
+ return this->time_policy_ ();
+}
+
+template <ACE_SYNCH_DECL, class TIME_POLICY>
+void
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::set_time_policy (TIME_POLICY const & rhs)
+{
+ this->time_policy_ = rhs;
+}
+
+template <ACE_SYNCH_DECL, class TIME_POLICY> void
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::dump (void) const
{
#if defined (ACE_HAS_DUMP)
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::dump");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::dump");
ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
switch (this->state_)
{
@@ -993,32 +1023,37 @@ ACE_Message_Queue<ACE_SYNCH_USE>::dump (void) const
#endif /* ACE_HAS_DUMP */
}
-template <ACE_SYNCH_DECL> void
-ACE_Message_Queue<ACE_SYNCH_USE>::message_bytes (size_t new_value)
+template <ACE_SYNCH_DECL, class TIME_POLICY> void
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::message_bytes (size_t new_value)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::message_bytes");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> void
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::message_length (size_t new_value)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::message_length");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::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,
+template <ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::ACE_Message_Queue (size_t hwm,
size_t lwm,
ACE_Notification_Strategy *ns)
+#if defined (ACE_HAS_THREADS)
+ : not_empty_cond_ (lock_, cond_attr_)
+ , not_full_cond_ (lock_, cond_attr_)
+#else
: not_empty_cond_ (lock_)
, not_full_cond_ (lock_)
+#endif
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::ACE_Message_Queue");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::ACE_Message_Queue");
if (this->open (hwm, lwm, ns) == -1)
ACE_ERROR ((LM_ERROR,
@@ -1047,10 +1082,10 @@ ACE_Message_Queue<ACE_SYNCH_USE>::ACE_Message_Queue (size_t hwm,
#endif /* ACE_HAS_MONITOR_POINTS==1 */
}
-template <ACE_SYNCH_DECL>
-ACE_Message_Queue<ACE_SYNCH_USE>::~ACE_Message_Queue (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::~ACE_Message_Queue (void)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::~ACE_Message_Queue");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::~ACE_Message_Queue");
if (this->head_ != 0 && this->close () == -1)
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("close")));
@@ -1061,8 +1096,8 @@ ACE_Message_Queue<ACE_SYNCH_USE>::~ACE_Message_Queue (void)
#endif /* ACE_HAS_MONITOR_POINTS==1 */
}
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::flush_i (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::flush_i (void)
{
int number_flushed = 0;
@@ -1104,12 +1139,12 @@ ACE_Message_Queue<ACE_SYNCH_USE>::flush_i (void)
// 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,
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::open (size_t hwm,
size_t lwm,
ACE_Notification_Strategy *ns)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::open");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::open");
this->high_water_mark_ = hwm;
this->low_water_mark_ = lwm;
this->state_ = ACE_Message_Queue_Base::ACTIVATED;
@@ -1125,10 +1160,10 @@ ACE_Message_Queue<ACE_SYNCH_USE>::open (size_t hwm,
// 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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::deactivate_i (int pulse)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::deactivate_i");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::deactivate_i");
int const previous_state = this->state_;
if (previous_state != ACE_Message_Queue_Base::DEACTIVATED)
@@ -1146,19 +1181,19 @@ ACE_Message_Queue<ACE_SYNCH_USE>::deactivate_i (int pulse)
return previous_state;
}
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::activate_i (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::activate_i (void)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::activate_i");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::activate_i");
int const 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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::flush (void)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::flush");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::flush");
ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
// Free up the remaining messages on the queue.
@@ -1167,10 +1202,10 @@ ACE_Message_Queue<ACE_SYNCH_USE>::flush (void)
// Clean up the queue if we have not already done so!
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::close (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::close (void)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::close");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::close");
ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
// There's no need to check the return value of deactivate_i() since
@@ -1181,16 +1216,16 @@ ACE_Message_Queue<ACE_SYNCH_USE>::close (void)
return this->flush_i ();
}
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::signal_enqueue_waiters (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::signal_dequeue_waiters (void)
{
// Tell any blocked threads that the queue has a new item!
if (this->not_empty_cond_.signal () != 0)
@@ -1201,10 +1236,10 @@ ACE_Message_Queue<ACE_SYNCH_USE>::signal_dequeue_waiters (void)
// 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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::enqueue_tail_i (ACE_Message_Block *new_item)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_tail_i");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::enqueue_tail_i");
if (new_item == 0)
return -1;
@@ -1252,10 +1287,10 @@ ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_tail_i (ACE_Message_Block *new_item)
// Actually put the node(s) at the head (no locking)
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_head_i (ACE_Message_Block *new_item)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::enqueue_head_i (ACE_Message_Block *new_item)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_head_i");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::enqueue_head_i");
if (new_item == 0)
return -1;
@@ -1297,10 +1332,10 @@ ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_head_i (ACE_Message_Block *new_item)
// 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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::enqueue_i (ACE_Message_Block *new_item)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_i");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::enqueue_i");
if (new_item == 0)
return -1;
@@ -1368,11 +1403,11 @@ ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_i (ACE_Message_Block *new_item)
// 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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::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");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::enqueue_deadline_i");
if (new_item == 0)
return -1;
@@ -1439,14 +1474,14 @@ ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_deadline_i (ACE_Message_Block *new_ite
// 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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::dequeue_head_i (ACE_Message_Block *&first_item)
{
if (this->head_ ==0)
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("Attempting to dequeue from empty queue")),
-1);
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_head_i");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::dequeue_head_i");
first_item = this->head_;
this->head_ = this->head_->next ();
@@ -1490,10 +1525,10 @@ ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_head_i (ACE_Message_Block *&first_item
// 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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::dequeue_prio_i (ACE_Message_Block *&dequeued)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_prio_i");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::dequeue_prio_i");
if (this->head_ == 0)
return -1;
@@ -1565,14 +1600,14 @@ ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_prio_i (ACE_Message_Block *&dequeued)
// 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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::dequeue_tail_i (ACE_Message_Block *&dequeued)
{
if (this->head_ == 0)
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("Attempting to dequeue from empty queue")),
-1);
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_tail_i");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::dequeue_tail_i");
dequeued = this->tail_;
if (this->tail_->prev () == 0)
{
@@ -1614,15 +1649,15 @@ ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_tail_i (ACE_Message_Block *&dequeued)
// (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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::dequeue_deadline_i (ACE_Message_Block *&dequeued)
{
#if defined (ACE_HAS_TIMED_MESSAGE_BLOCKS)
if (this->head_ == 0)
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("Attempting to dequeue from empty queue")),
-1);
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_deadline_i");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::dequeue_deadline_i");
// Find the last message enqueued with the lowest deadline time
ACE_Message_Block* chosen = 0;
@@ -1684,11 +1719,11 @@ ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_deadline_i (ACE_Message_Block *&dequeu
// 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,
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::peek_dequeue_head (ACE_Message_Block *&first_item,
ACE_Time_Value *timeout)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::peek_dequeue_head");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::peek_dequeue_head");
ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
if (this->state_ == ACE_Message_Queue_Base::DEACTIVATED)
@@ -1698,7 +1733,6 @@ ACE_Message_Queue<ACE_SYNCH_USE>::peek_dequeue_head (ACE_Message_Block *&first_i
}
// Wait for at least one item to become available.
-
if (this->wait_not_empty_cond (timeout) == -1)
return -1;
@@ -1706,8 +1740,8 @@ ACE_Message_Queue<ACE_SYNCH_USE>::peek_dequeue_head (ACE_Message_Block *&first_i
return ACE_Utils::truncate_cast<int> (this->cur_count_);
}
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::wait_not_full_cond (ACE_Time_Value *timeout)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::wait_not_full_cond (ACE_Time_Value *timeout)
{
int result = 0;
@@ -1732,8 +1766,8 @@ ACE_Message_Queue<ACE_SYNCH_USE>::wait_not_full_cond (ACE_Time_Value *timeout)
return result;
}
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::wait_not_empty_cond (ACE_Time_Value *timeout)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::wait_not_empty_cond (ACE_Time_Value *timeout)
{
int result = 0;
@@ -1761,11 +1795,11 @@ ACE_Message_Queue<ACE_SYNCH_USE>::wait_not_empty_cond (ACE_Time_Value *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_head (ACE_Message_Block *new_item,
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::enqueue_head (ACE_Message_Block *new_item,
ACE_Time_Value *timeout)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_head");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::enqueue_head");
int queue_count = 0;
ACE_Notification_Strategy *notifier = 0;
{
@@ -1799,11 +1833,11 @@ ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_head (ACE_Message_Block *new_item,
// 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,
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::enqueue_prio (ACE_Message_Block *new_item,
ACE_Time_Value *timeout)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_prio");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::enqueue_prio");
int queue_count = 0;
ACE_Notification_Strategy *notifier = 0;
{
@@ -1837,11 +1871,11 @@ ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_prio (ACE_Message_Block *new_item,
// 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,
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::enqueue_deadline (ACE_Message_Block *new_item,
ACE_Time_Value *timeout)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_deadline");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::enqueue_deadline");
int queue_count = 0;
ACE_Notification_Strategy *notifier = 0;
{
@@ -1871,22 +1905,22 @@ ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_deadline (ACE_Message_Block *new_item,
return queue_count;
}
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::enqueue (ACE_Message_Block *new_item,
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::enqueue (ACE_Message_Block *new_item,
ACE_Time_Value *timeout)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::enqueue");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::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,
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::enqueue_tail (ACE_Message_Block *new_item,
ACE_Time_Value *timeout)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_tail");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::enqueue_tail");
int queue_count = 0;
ACE_Notification_Strategy *notifier = 0;
{
@@ -1920,11 +1954,11 @@ ACE_Message_Queue<ACE_SYNCH_USE>::enqueue_tail (ACE_Message_Block *new_item,
// 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,
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::dequeue_head (ACE_Message_Block *&first_item,
ACE_Time_Value *timeout)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_head");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::dequeue_head");
ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
if (this->state_ == ACE_Message_Queue_Base::DEACTIVATED)
@@ -1943,11 +1977,11 @@ ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_head (ACE_Message_Block *&first_item,
// 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,
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::dequeue_prio (ACE_Message_Block *&dequeued,
ACE_Time_Value *timeout)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_prio");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::dequeue_prio");
ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
if (this->state_ == ACE_Message_Queue_Base::DEACTIVATED)
@@ -1966,11 +2000,11 @@ ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_prio (ACE_Message_Block *&dequeued,
// 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,
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::dequeue_tail (ACE_Message_Block *&dequeued,
ACE_Time_Value *timeout)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_tail");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::dequeue_tail");
ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
if (this->state_ == ACE_Message_Queue_Base::DEACTIVATED)
@@ -1989,11 +2023,11 @@ ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_tail (ACE_Message_Block *&dequeued,
// 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,
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::dequeue_deadline (ACE_Message_Block *&dequeued,
ACE_Time_Value *timeout)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_deadline");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::dequeue_deadline");
ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
if (this->state_ == ACE_Message_Queue_Base::DEACTIVATED)
@@ -2008,10 +2042,10 @@ ACE_Message_Queue<ACE_SYNCH_USE>::dequeue_deadline (ACE_Message_Block *&dequeued
return this->dequeue_deadline_i (dequeued);
}
-template <ACE_SYNCH_DECL> int
-ACE_Message_Queue<ACE_SYNCH_USE>::notify (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::notify (void)
{
- ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE>::notify");
+ ACE_TRACE ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::notify");
// By default, don't do anything.
if (this->notification_strategy_ == 0)
@@ -2021,12 +2055,12 @@ ACE_Message_Queue<ACE_SYNCH_USE>::notify (void)
}
// = 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,
+template <ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Dynamic_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::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),
+ : ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY> (hwm, lwm, ns),
pending_head_ (0),
pending_tail_ (0),
late_head_ (0),
@@ -2042,14 +2076,14 @@ ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::ACE_Dynamic_Message_Queue (ACE_Dynamic
// 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)
+template <ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Dynamic_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::~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,
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Dynamic_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::remove_messages (ACE_Message_Block *&list_head,
ACE_Message_Block *&list_tail,
u_int status_flags)
{
@@ -2188,11 +2222,11 @@ ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::remove_messages (ACE_Message_Block *&l
// 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,
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Dynamic_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::dequeue_head (ACE_Message_Block *&first_item,
ACE_Time_Value *timeout)
{
- ACE_TRACE ("ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::dequeue_head");
+ ACE_TRACE ("ACE_Dynamic_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::dequeue_head");
ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
@@ -2228,15 +2262,15 @@ ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::dequeue_head (ACE_Message_Block *&firs
// 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
+template <ACE_SYNCH_DECL, class TIME_POLICY> void
+ACE_Dynamic_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::dump (void) const
{
#if defined (ACE_HAS_DUMP)
- ACE_TRACE ("ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::dump");
+ ACE_TRACE ("ACE_Dynamic_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::dump");
ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ACE_Message_Queue<ACE_SYNCH_USE> (base class):\n")));
- this->ACE_Message_Queue<ACE_SYNCH_USE>::dump ();
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY> (base class):\n")));
+ this->ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::dump ();
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("pending_head_ = %u\n")
@@ -2260,10 +2294,10 @@ ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::dump (void) const
}
// 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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Dynamic_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::enqueue_i (ACE_Message_Block *new_item)
{
- ACE_TRACE ("ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::enqueue_i");
+ ACE_TRACE ("ACE_Dynamic_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::enqueue_i");
if (new_item == 0)
{
@@ -2415,8 +2449,8 @@ ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::enqueue_i (ACE_Message_Block *new_item
// 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,
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Dynamic_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::sublist_enqueue_i (ACE_Message_Block *new_item,
const ACE_Time_Value &current_time,
ACE_Message_Block *&sublist_head,
ACE_Message_Block *&sublist_tail,
@@ -2484,10 +2518,10 @@ ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::sublist_enqueue_i (ACE_Message_Block *
// 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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Dynamic_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::dequeue_head_i (ACE_Message_Block *&first_item)
{
- ACE_TRACE ("ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::dequeue_head_i");
+ ACE_TRACE ("ACE_Dynamic_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::dequeue_head_i");
int result = 0;
int last_in_subqueue = 0;
@@ -2615,8 +2649,8 @@ ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::dequeue_head_i (ACE_Message_Block *&fi
// 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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Dynamic_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::refresh_queue (const ACE_Time_Value &current_time)
{
int result;
@@ -2631,8 +2665,8 @@ ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::refresh_queue (const ACE_Time_Value &c
// 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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Dynamic_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::refresh_pending_queue (const ACE_Time_Value &current_time)
{
ACE_Dynamic_Message_Strategy::Priority_Status current_status;
@@ -2754,8 +2788,8 @@ ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::refresh_pending_queue (const ACE_Time_
// 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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Dynamic_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::refresh_late_queue (const ACE_Time_Value &current_time)
{
ACE_Dynamic_Message_Strategy::Priority_Status current_status;
@@ -2839,22 +2873,22 @@ ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::refresh_late_queue (const ACE_Time_Val
// 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,
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Dynamic_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::peek_dequeue_head (ACE_Message_Block *&first_item,
ACE_Time_Value *timeout)
{
- return ACE_Message_Queue<ACE_SYNCH_USE>::peek_dequeue_head (first_item,
+ return ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::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,
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Dynamic_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::enqueue_tail (ACE_Message_Block *new_item,
ACE_Time_Value *timeout)
{
- ACE_TRACE ("ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::enqueue_tail");
+ ACE_TRACE ("ACE_Dynamic_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::enqueue_tail");
return this->enqueue_prio (new_item, timeout);
}
@@ -2863,11 +2897,11 @@ ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::enqueue_tail (ACE_Message_Block *new_i
// 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,
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Dynamic_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::enqueue_head (ACE_Message_Block *new_item,
ACE_Time_Value *timeout)
{
- ACE_TRACE ("ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::enqueue_head");
+ ACE_TRACE ("ACE_Dynamic_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>::enqueue_head");
return this->enqueue_prio (new_item, timeout);
}
@@ -2876,25 +2910,26 @@ ACE_Dynamic_Message_Queue<ACE_SYNCH_USE>::enqueue_head (ACE_Message_Block *new_i
// 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,
+template <ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY> *
+ACE_Message_Queue_Factory<ACE_SYNCH_USE, TIME_POLICY>::create_static_message_queue (size_t hwm,
size_t lwm,
ACE_Notification_Strategy *ns)
{
- ACE_Message_Queue<ACE_SYNCH_USE> *tmp = 0;
+ typedef ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY> QUEUE_TYPE;
+ QUEUE_TYPE *tmp = 0;
ACE_NEW_RETURN (tmp,
- ACE_Message_Queue<ACE_SYNCH_USE> (hwm, lwm, ns),
+ QUEUE_TYPE (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,
+template <ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Dynamic_Message_Queue<ACE_SYNCH_USE, TIME_POLICY> *
+ACE_Message_Queue_Factory<ACE_SYNCH_USE, TIME_POLICY>::create_deadline_message_queue (size_t hwm,
size_t lwm,
ACE_Notification_Strategy *ns,
u_long static_bit_field_mask,
@@ -2911,9 +2946,10 @@ ACE_Message_Queue_Factory<ACE_SYNCH_USE>::create_deadline_message_queue (size_t
dynamic_priority_offset),
0);
- ACE_Dynamic_Message_Queue<ACE_SYNCH_USE> *tmp = 0;
+ typedef ACE_Dynamic_Message_Queue<ACE_SYNCH_USE, TIME_POLICY> QUEUE_TYPE;
+ QUEUE_TYPE *tmp = 0;
ACE_NEW_RETURN (tmp,
- ACE_Dynamic_Message_Queue<ACE_SYNCH_USE> (*adms, hwm, lwm, ns),
+ QUEUE_TYPE (*adms, hwm, lwm, ns),
0);
return tmp;
}
@@ -2921,9 +2957,9 @@ ACE_Message_Queue_Factory<ACE_SYNCH_USE>::create_deadline_message_queue (size_t
// 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,
+template <ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Dynamic_Message_Queue<ACE_SYNCH_USE, TIME_POLICY> *
+ACE_Message_Queue_Factory<ACE_SYNCH_USE, TIME_POLICY>::create_laxity_message_queue (size_t hwm,
size_t lwm,
ACE_Notification_Strategy *ns,
u_long static_bit_field_mask,
@@ -2940,9 +2976,10 @@ ACE_Message_Queue_Factory<ACE_SYNCH_USE>::create_laxity_message_queue (size_t hw
dynamic_priority_offset),
0);
- ACE_Dynamic_Message_Queue<ACE_SYNCH_USE> *tmp = 0;
+ typedef ACE_Dynamic_Message_Queue<ACE_SYNCH_USE, TIME_POLICY> QUEUE_TYPE;
+ QUEUE_TYPE *tmp = 0;
ACE_NEW_RETURN (tmp,
- ACE_Dynamic_Message_Queue<ACE_SYNCH_USE> (*alms, hwm, lwm, ns),
+ QUEUE_TYPE (*alms, hwm, lwm, ns),
0);
return tmp;
}
@@ -2953,9 +2990,9 @@ ACE_Message_Queue_Factory<ACE_SYNCH_USE>::create_laxity_message_queue (size_t hw
#if defined (ACE_VXWORKS)
// factory method for a wrapped VxWorks message queue
-template <ACE_SYNCH_DECL>
+template <ACE_SYNCH_DECL, class TIME_POLICY>
ACE_Message_Queue_Vx *
-ACE_Message_Queue_Factory<ACE_SYNCH_USE>::create_Vx_message_queue (size_t max_messages,
+ACE_Message_Queue_Factory<ACE_SYNCH_USE, TIME_POLICY>::create_Vx_message_queue (size_t max_messages,
size_t max_message_length,
ACE_Notification_Strategy *ns)
{
@@ -2970,9 +3007,9 @@ ACE_Message_Queue_Factory<ACE_SYNCH_USE>::create_Vx_message_queue (size_t max_me
#if defined (ACE_HAS_WIN32_OVERLAPPED_IO)
-template <ACE_SYNCH_DECL>
+template <ACE_SYNCH_DECL, class TIME_POLICY>
ACE_Message_Queue_NT *
-ACE_Message_Queue_Factory<ACE_SYNCH_USE>::create_NT_message_queue (size_t max_threads)
+ACE_Message_Queue_Factory<ACE_SYNCH_USE, TIME_POLICY>::create_NT_message_queue (size_t max_threads)
{
ACE_Message_Queue_NT *tmp = 0;
diff --git a/dep/acelite/ace/Message_Queue_T.h b/dep/acelite/ace/Message_Queue_T.h
index 73e4626766c..52024907a15 100644
--- a/dep/acelite/ace/Message_Queue_T.h
+++ b/dep/acelite/ace/Message_Queue_T.h
@@ -4,7 +4,7 @@
/**
* @file Message_Queue_T.h
*
- * $Id: Message_Queue_T.h 91626 2010-09-07 10:59:20Z johnnyw $
+ * $Id: Message_Queue_T.h 96070 2012-08-17 09:07:16Z mcorino $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
*/
@@ -19,6 +19,11 @@
#include "ace/Dynamic_Message_Strategy.h"
#include "ace/Synch_Traits.h"
#include "ace/Guard_T.h"
+#include "ace/Time_Policy.h"
+#include "ace/Time_Value_T.h"
+#if defined (ACE_HAS_THREADS)
+# include "ace/Condition_Attributes.h"
+#endif
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
@@ -47,11 +52,11 @@ namespace ACE
/**
* @class ACE_Message_Queue
*
- * @brief A message queueing facility with parameterized synchronization
+ * @brief A message queuing facility with parameterized synchronization
* capability. ACE_Message_Queue is modeled after the queueing facilities
* in System V STREAMs.
*
- * ACE_Message_Queue is the primary queueing facility for
+ * ACE_Message_Queue is the primary queuing facility for
* messages in the ACE framework. It's one template argument parameterizes
* the queue's synchronization. The argument specifies a synchronization
* strategy. The two main strategies available for ACE_SYNCH_DECL are:
@@ -61,17 +66,17 @@ namespace ACE
* All data passing through ACE_Message_Queue is in the form of
* ACE_Message_Block objects. @sa ACE_Message_Block.
*/
-template <ACE_SYNCH_DECL>
+template <ACE_SYNCH_DECL, class TIME_POLICY = ACE_System_Time_Policy>
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>;
+ friend class ACE_Message_Queue_Iterator<ACE_SYNCH_USE, TIME_POLICY>;
+ friend class ACE_Message_Queue_Reverse_Iterator<ACE_SYNCH_USE, TIME_POLICY>;
// = Traits
- typedef ACE_Message_Queue_Iterator<ACE_SYNCH_USE>
+ typedef ACE_Message_Queue_Iterator<ACE_SYNCH_USE, TIME_POLICY>
ITERATOR;
- typedef ACE_Message_Queue_Reverse_Iterator<ACE_SYNCH_USE>
+ typedef ACE_Message_Queue_Reverse_Iterator<ACE_SYNCH_USE, TIME_POLICY>
REVERSE_ITERATOR;
/**
@@ -482,6 +487,14 @@ public:
/// Returns a reference to the lock used by the ACE_Message_Queue.
virtual ACE_SYNCH_MUTEX_T &lock (void);
+ /// Get the current time of day according to the queue's TIME_POLICY.
+ /// Allows users to initialize timeout values using correct time policy.
+ ACE_Time_Value_T<TIME_POLICY> gettimeofday (void) const;
+
+ /// Allows applications to control how the timer queue gets the time
+ /// of day.
+ void set_time_policy (TIME_POLICY const & time_policy);
+
/// Dump the state of an object.
virtual void dump (void) const;
@@ -596,12 +609,23 @@ protected:
/// Protect queue from concurrent access.
ACE_SYNCH_MUTEX_T lock_;
+#if defined (ACE_HAS_THREADS)
+ /// Attributes to initialize conditions with.
+ /* We only need this because some crappy compilers can't
+ properly handle initializing the conditions with
+ temporary objects. */
+ ACE_Condition_Attributes_T<TIME_POLICY> cond_attr_;
+#endif
+
/// 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_;
+ /// The policy to return the current time of day
+ TIME_POLICY time_policy_;
+
/// Sends the size of the queue whenever it changes.
#if defined (ACE_HAS_MONITOR_POINTS) && (ACE_HAS_MONITOR_POINTS == 1)
ACE::Monitor_Control::Size_Monitor *monitor_;
@@ -623,12 +647,12 @@ typedef ACE_Message_Queue<ACE_SYNCH> ACE_DEFAULT_MESSAGE_QUEUE_TYPE;
*
* @brief Iterator for the ACE_Message_Queue.
*/
-template <ACE_SYNCH_DECL>
+template <ACE_SYNCH_DECL, class TIME_POLICY = ACE_System_Time_Policy>
class ACE_Message_Queue_Iterator
{
public:
// = Initialization method.
- ACE_Message_Queue_Iterator (ACE_Message_Queue <ACE_SYNCH_USE> &queue);
+ ACE_Message_Queue_Iterator (ACE_Message_Queue <ACE_SYNCH_USE, TIME_POLICY> &queue);
// = Iteration methods.
/// Pass back the @a entry that hasn't been seen in the queue.
@@ -650,7 +674,7 @@ public:
private:
/// Message_Queue we are iterating over.
- ACE_Message_Queue <ACE_SYNCH_USE> &queue_;
+ ACE_Message_Queue <ACE_SYNCH_USE, TIME_POLICY> &queue_;
/// Keeps track of how far we've advanced...
ACE_Message_Block *curr_;
@@ -661,12 +685,12 @@ private:
*
* @brief Reverse Iterator for the ACE_Message_Queue.
*/
-template <ACE_SYNCH_DECL>
+template <ACE_SYNCH_DECL, class TIME_POLICY = ACE_System_Time_Policy>
class ACE_Message_Queue_Reverse_Iterator
{
public:
// = Initialization method.
- ACE_Message_Queue_Reverse_Iterator (ACE_Message_Queue <ACE_SYNCH_USE> &queue);
+ ACE_Message_Queue_Reverse_Iterator (ACE_Message_Queue <ACE_SYNCH_USE, TIME_POLICY> &queue);
// = Iteration methods.
/// Pass back the @a entry that hasn't been seen in the queue.
@@ -688,7 +712,7 @@ public:
private:
/// Message_Queue we are iterating over.
- ACE_Message_Queue <ACE_SYNCH_USE> &queue_;
+ ACE_Message_Queue <ACE_SYNCH_USE, TIME_POLICY> &queue_;
/// Keeps track of how far we've advanced...
ACE_Message_Block *curr_;
@@ -761,8 +785,8 @@ private:
* 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>
+template <ACE_SYNCH_DECL, class TIME_POLICY = ACE_System_Time_Policy>
+class ACE_Dynamic_Message_Queue : public ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY>
{
public:
// = Initialization and termination methods.
@@ -883,8 +907,8 @@ protected:
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> &))
+ ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Dynamic_Message_Queue<ACE_SYNCH_USE, TIME_POLICY> &))
+ ACE_UNIMPLEMENTED_FUNC (ACE_Dynamic_Message_Queue (const ACE_Dynamic_Message_Queue<ACE_SYNCH_USE, TIME_POLICY> &))
// provide definitions for these (just call base class method),
// but make them private so they're not accessible outside the class
@@ -909,18 +933,18 @@ private:
* any of these factory methods is only responsible for
* ensuring destruction of the message queue itself.
*/
-template <ACE_SYNCH_DECL>
+template <ACE_SYNCH_DECL, class TIME_POLICY = ACE_System_Time_Policy>
class ACE_Message_Queue_Factory
{
public:
/// Factory method for a statically prioritized ACE_Message_Queue
- static ACE_Message_Queue<ACE_SYNCH_USE> *
+ static ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY> *
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> *
+ static ACE_Dynamic_Message_Queue<ACE_SYNCH_USE, TIME_POLICY> *
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,
@@ -930,7 +954,7 @@ public:
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> *
+ static ACE_Dynamic_Message_Queue<ACE_SYNCH_USE, TIME_POLICY> *
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,
@@ -959,8 +983,8 @@ public:
};
// Forward decls.
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> class ACE_Message_Queue_Ex_Iterator;
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> class ACE_Message_Queue_Ex_Reverse_Iterator;
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> class ACE_Message_Queue_Ex_Iterator;
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY> class ACE_Message_Queue_Ex_Reverse_Iterator;
/**
* @class ACE_Message_Queue_Ex
@@ -979,7 +1003,7 @@ template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL> class ACE_Message_Queue_Ex_Rev
* -# ACE_MT_SYNCH: all operations are thread-safe
* -# ACE_NULL_SYNCH: no synchronization and no locking overhead
*/
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL>
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY = ACE_System_Time_Policy>
class ACE_Message_Queue_Ex
{
public:
@@ -990,13 +1014,13 @@ public:
DEFAULT_PRIORITY = 0
};
- friend class ACE_Message_Queue_Ex_Iterator <ACE_MESSAGE_TYPE, ACE_SYNCH_USE>;
- friend class ACE_Message_Queue_Ex_Reverse_Iterator<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>;
+ friend class ACE_Message_Queue_Ex_Iterator <ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>;
+ friend class ACE_Message_Queue_Ex_Reverse_Iterator<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>;
// = Traits
- typedef ACE_Message_Queue_Ex_Iterator<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>
+ typedef ACE_Message_Queue_Ex_Iterator<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>
ITERATOR;
- typedef ACE_Message_Queue_Ex_Reverse_Iterator<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>
+ typedef ACE_Message_Queue_Ex_Reverse_Iterator<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>
REVERSE_ITERATOR;
/**
@@ -1365,6 +1389,14 @@ public:
/// Returns a reference to the lock used by the ACE_Message_Queue_Ex.
virtual ACE_SYNCH_MUTEX_T &lock (void);
+ /// Get the current time of day according to the queue's TIME_POLICY.
+ /// Allows users to initialize timeout
+ ACE_Time_Value_T<TIME_POLICY> gettimeofday ();
+
+ /// Allows applications to control how the timer queue gets the time
+ /// of day.
+ void set_time_policy (TIME_POLICY const & time_policy);
+
/// Dump the state of an object.
virtual void dump (void) const;
@@ -1373,7 +1405,7 @@ public:
protected:
/// Implement this via an ACE_Message_Queue.
- ACE_Message_Queue<ACE_SYNCH_USE> queue_;
+ ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY> queue_;
};
/**
@@ -1381,12 +1413,12 @@ protected:
*
* @brief Iterator for the ACE_Message_Queue_Ex.
*/
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL>
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY = ACE_System_Time_Policy>
class ACE_Message_Queue_Ex_Iterator
{
public:
// = Initialization method.
- ACE_Message_Queue_Ex_Iterator (ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE> & queue);
+ ACE_Message_Queue_Ex_Iterator (ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY> & queue);
// = Iteration methods.
/// Pass back the @a entry that hasn't been seen in the queue.
@@ -1408,7 +1440,7 @@ public:
private:
/// Implement this via the ACE_Message_Queue_Iterator
- ACE_Message_Queue_Iterator<ACE_SYNCH_USE> iter_;
+ ACE_Message_Queue_Iterator<ACE_SYNCH_USE, TIME_POLICY> iter_;
};
/**
@@ -1416,12 +1448,12 @@ private:
*
* @brief Reverse iterator for the ACE_Message_Queue_Ex.
*/
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL>
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY = ACE_System_Time_Policy>
class ACE_Message_Queue_Ex_Reverse_Iterator
{
public:
// = Initialization method.
- ACE_Message_Queue_Ex_Reverse_Iterator (ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE> & queue);
+ ACE_Message_Queue_Ex_Reverse_Iterator (ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY> & queue);
// = Iteration methods.
/// Pass back the @a entry that hasn't been seen in the queue.
@@ -1443,7 +1475,7 @@ public:
private:
/// Implement this via the ACE_Message_Queue_Reverse_Iterator
- ACE_Message_Queue_Reverse_Iterator<ACE_SYNCH_USE> iter_;
+ ACE_Message_Queue_Reverse_Iterator<ACE_SYNCH_USE, TIME_POLICY> iter_;
};
/**
@@ -1464,8 +1496,8 @@ private:
* ACE_Message_Queue_Ex_N uses this method to run through
* all the incoming messages and enqueue them in one call.
*/
-template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL>
-class ACE_Message_Queue_Ex_N : public ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY = ACE_System_Time_Policy>
+class ACE_Message_Queue_Ex_N : public ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>
{
public:
// = Initialization and termination methods.
diff --git a/dep/acelite/ace/Message_Queue_Vx.cpp b/dep/acelite/ace/Message_Queue_Vx.cpp
index 0c680b0353e..a42b1fe6599 100644
--- a/dep/acelite/ace/Message_Queue_Vx.cpp
+++ b/dep/acelite/ace/Message_Queue_Vx.cpp
@@ -1,5 +1,6 @@
-// $Id: Message_Queue_Vx.cpp 91626 2010-09-07 10:59:20Z johnnyw $
+// $Id: Message_Queue_Vx.cpp 95534 2012-02-17 23:19:33Z mitza $
+#include "ace/Message_Queue.h"
#include "ace/Message_Queue_Vx.h"
#include "ace/Log_Msg.h"
diff --git a/dep/acelite/ace/Message_Queue_Vx.inl b/dep/acelite/ace/Message_Queue_Vx.inl
index b295e958c92..03bcc36ee5b 100644
--- a/dep/acelite/ace/Message_Queue_Vx.inl
+++ b/dep/acelite/ace/Message_Queue_Vx.inl
@@ -1,6 +1,6 @@
// -*- C++ -*-
//
-// $Id: Message_Queue_Vx.inl 80826 2008-03-04 14:51:23Z wotte $
+// $Id: Message_Queue_Vx.inl 96017 2012-08-08 22:18:09Z mitza $
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -11,7 +11,7 @@ ACE_INLINE MSG_Q_ID
ACE_Message_Queue_Vx::msgq (void)
{
// Hijack the tail_ field to store the MSG_Q_ID.
- return reinterpret_cast<MSG_Q_ID> (tail_);
+ return static_cast<MSG_Q_ID> (reinterpret_cast<long> (tail_));
}
#endif /* ACE_VXWORKS */
diff --git a/dep/acelite/ace/Metrics_Cache_T.h b/dep/acelite/ace/Metrics_Cache_T.h
index 5cf438a13a0..05aac1a86cf 100644
--- a/dep/acelite/ace/Metrics_Cache_T.h
+++ b/dep/acelite/ace/Metrics_Cache_T.h
@@ -4,7 +4,7 @@
/**
* @file Metrics_Cache_T.h
*
- * $Id: Metrics_Cache_T.h 92090 2010-09-29 14:10:45Z johnnyw $
+ * $Id: Metrics_Cache_T.h 95839 2012-06-07 10:13:33Z johnnyw $
*
* @author Chris Gill <cdgill@cse.wustl.edu>
*/
@@ -55,7 +55,7 @@ public:
typedef ACE_METRICS_TIMEPROBE_TYPE* ACE_METRICS_TIMEPROBE_BASED_PTR_TYPE;
typedef char* ACE_METRICS_NAME_BASED_PTR_TYPE;
- // Enumerated timeprobe event types.
+ /// Enumerated timeprobe event types.
enum event_id
{
WORK_START = 0,
diff --git a/dep/acelite/ace/Module.cpp b/dep/acelite/ace/Module.cpp
index 286270a9b55..376ed83670d 100644
--- a/dep/acelite/ace/Module.cpp
+++ b/dep/acelite/ace/Module.cpp
@@ -1,4 +1,4 @@
-// $Id: Module.cpp 84068 2008-12-24 18:32:05Z shuston $
+// $Id: Module.cpp 96080 2012-08-20 09:04:14Z johnnyw $
#ifndef ACE_MODULE_CPP
#define ACE_MODULE_CPP
@@ -19,19 +19,19 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_Module)
-template <ACE_SYNCH_DECL> void
-ACE_Module<ACE_SYNCH_USE>::dump (void) const
+template <ACE_SYNCH_DECL, class TIME_POLICY> void
+ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::dump (void) const
{
#if defined (ACE_HAS_DUMP)
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::dump");
+ ACE_TRACE ("ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::dump");
#endif /* ACE_HAS_DUMP */
}
-template <ACE_SYNCH_DECL> void
-ACE_Module<ACE_SYNCH_USE>::writer (ACE_Task<ACE_SYNCH_USE> *q,
+template <ACE_SYNCH_DECL, class TIME_POLICY> void
+ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::writer (ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *q,
int flags /* = M_DELETE_WRITER */)
{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::writer");
+ ACE_TRACE ("ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::writer");
// Close and maybe delete old writer
this->close_i (1, flags);
@@ -49,11 +49,11 @@ ACE_Module<ACE_SYNCH_USE>::writer (ACE_Task<ACE_SYNCH_USE> *q,
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,
+template <ACE_SYNCH_DECL, class TIME_POLICY> void
+ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::reader (ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *q,
int flags /* = M_DELETE_READER */)
{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::reader");
+ ACE_TRACE ("ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::reader");
// Close and maybe delete old writer
this->close_i (0, flags);
@@ -73,23 +73,23 @@ ACE_Module<ACE_SYNCH_USE>::reader (ACE_Task<ACE_SYNCH_USE> *q,
// 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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> void
+ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::link (ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *m)
{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::link");
+ ACE_TRACE ("ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::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 *module_name,
- ACE_Task<ACE_SYNCH_USE> *writer_q,
- ACE_Task<ACE_SYNCH_USE> *reader_q,
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::open (const ACE_TCHAR *module_name,
+ ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *writer_q,
+ ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *reader_q,
void *arg,
int flags /* = M_DELETE */)
{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::open");
+ ACE_TRACE ("ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::open");
this->name (module_name);
this->arg_ = arg;
@@ -102,27 +102,21 @@ ACE_Module<ACE_SYNCH_USE>::open (const ACE_TCHAR *module_name,
if (writer_q == 0)
{
- ACE_NEW_RETURN (writer_q,
- ACE_Thru_Task<ACE_SYNCH_USE>,
- -1);
+ typedef ACE_Thru_Task<ACE_SYNCH_USE, TIME_POLICY> TASK_TYPE;
+ ACE_NEW_NORETURN (writer_q,
+ TASK_TYPE);
ACE_SET_BITS (flags, M_DELETE_WRITER);
}
if (reader_q == 0)
{
- ACE_NEW_RETURN (reader_q,
- ACE_Thru_Task<ACE_SYNCH_USE>,
- -1);
+ typedef ACE_Thru_Task<ACE_SYNCH_USE, TIME_POLICY> TASK_TYPE;
+ ACE_NEW_NORETURN (reader_q,
+ TASK_TYPE);
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.
+ // Make sure that the memory is allocated before proceeding.
if (writer_q == 0 || reader_q == 0)
{
// These calls will delete writer_q and/or reader_q, if
@@ -134,6 +128,12 @@ ACE_Module<ACE_SYNCH_USE>::open (const ACE_TCHAR *module_name,
return -1;
}
+ this->reader (reader_q);
+ this->writer (writer_q);
+
+ // Save the flags
+ this->flags_ = flags;
+
// Setup back pointers (this must come last, after we've made sure
// there's memory allocated here.
reader_q->mod_ = this;
@@ -144,10 +144,10 @@ ACE_Module<ACE_SYNCH_USE>::open (const ACE_TCHAR *module_name,
// 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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *
+ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::sibling (ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *orig)
{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::sibling");
+ ACE_TRACE ("ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::sibling");
if (this->q_pair_[0] == orig)
return this->q_pair_[1];
else if (this->q_pair_[1] == orig)
@@ -156,36 +156,38 @@ ACE_Module<ACE_SYNCH_USE>::sibling (ACE_Task<ACE_SYNCH_USE> *orig)
return 0;
}
-template <ACE_SYNCH_DECL>
-ACE_Module<ACE_SYNCH_USE>::ACE_Module (void)
- : flags_ (M_FLAGS_NOT_SET)
+template <ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::ACE_Module (void)
+ : next_ (0)
+ , arg_ (0)
+ , flags_ (M_FLAGS_NOT_SET)
{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::ACE_Module");
+ ACE_TRACE ("ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::ACE_Module");
this->name (ACE_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)
+template <ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::~ACE_Module (void)
{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::~ACE_Module");
+ ACE_TRACE ("ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::~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 *module_name,
- ACE_Task<ACE_SYNCH_USE> *writer_q,
- ACE_Task<ACE_SYNCH_USE> *reader_q,
+template <ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::ACE_Module (const ACE_TCHAR *module_name,
+ ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *writer_q,
+ ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *reader_q,
void *args,
int flags /* = M_DELETE */)
: flags_ (M_FLAGS_NOT_SET)
{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::ACE_Module");
+ ACE_TRACE ("ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::ACE_Module");
this->q_pair_[0] = 0;
this->q_pair_[1] = 0;
@@ -196,10 +198,10 @@ ACE_Module<ACE_SYNCH_USE>::ACE_Module (const ACE_TCHAR *module_name,
ACE_TEXT ("ACE_Module")));
}
-template <ACE_SYNCH_DECL> int
-ACE_Module<ACE_SYNCH_USE>::close (int flags /* = M_DELETE_NONE */)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::close (int flags /* = M_DELETE_NONE */)
{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::close");
+ ACE_TRACE ("ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::close");
int result = 0;
@@ -217,18 +219,18 @@ ACE_Module<ACE_SYNCH_USE>::close (int flags /* = M_DELETE_NONE */)
return result;
}
-template <ACE_SYNCH_DECL> int
-ACE_Module<ACE_SYNCH_USE>::close_i (int which,
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::close_i (int which,
int flags)
{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::close_i");
+ ACE_TRACE ("ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::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];
+ ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *task = this->q_pair_[which];
// Change so that close doesn't get called again from the task base.
diff --git a/dep/acelite/ace/Module.h b/dep/acelite/ace/Module.h
index a7e4575e5f3..b015ec3e4c6 100644
--- a/dep/acelite/ace/Module.h
+++ b/dep/acelite/ace/Module.h
@@ -4,7 +4,7 @@
/**
* @file Module.h
*
- * $Id: Module.h 91626 2010-09-07 10:59:20Z johnnyw $
+ * $Id: Module.h 96061 2012-08-16 09:36:07Z mcorino $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
*/
@@ -74,7 +74,7 @@ public:
* general, you shouldn't subclass from this class, but instead
* subclass from the ACE_Task.
*/
-template <ACE_SYNCH_DECL>
+template <ACE_SYNCH_DECL, class TIME_POLICY = ACE_System_Time_Policy>
class ACE_Module : public ACE_Module_Base
{
public:
@@ -88,8 +88,8 @@ public:
/// 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,
+ ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *writer = 0,
+ ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *reader = 0,
void *args = 0,
int flags = M_DELETE);
@@ -101,8 +101,8 @@ public:
* <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,
+ ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *writer = 0,
+ ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *reader = 0,
void *a = 0,
int flags = M_DELETE);
@@ -117,7 +117,7 @@ public:
// = ACE_Task manipulation routines
/// Get the writer task.
- ACE_Task<ACE_SYNCH_USE> *writer (void);
+ ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *writer (void);
/**
* Set the writer task. @a flags can be used to indicate that the
@@ -126,10 +126,10 @@ public:
* 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);
+ void writer (ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *q, int flags = M_DELETE_WRITER);
/// Get the reader task.
- ACE_Task<ACE_SYNCH_USE> *reader (void);
+ ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *reader (void);
/**
* Set the reader task. @a flags can be used to indicate that the
@@ -138,10 +138,10 @@ public:
* 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);
+ void reader (ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *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);
+ ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *sibling (ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *orig);
// = Identify the module
/// Get the module name.
@@ -158,13 +158,13 @@ public:
void arg (void *);
/// Link to other modules in the ustream stack
- void link (ACE_Module<ACE_SYNCH_USE> *m);
+ void link (ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *m);
/// Get the next pointer to the module above in the stream.
- ACE_Module<ACE_SYNCH_USE> *next (void);
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *next (void);
/// Set the next pointer to the module above in the stream.
- void next (ACE_Module<ACE_SYNCH_USE> *m);
+ void next (ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *m);
/// Dump the state of an object.
void dump (void) const;
@@ -179,13 +179,13 @@ private:
/// Pair of Tasks that form the "read-side" and "write-side" of the
/// ACE_Module partitioning.
- ACE_Task<ACE_SYNCH_USE> *q_pair_[2];
+ ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *q_pair_[2];
/// Name of the ACE_Module.
ACE_TCHAR name_[MAXPATHLEN + 1];
/// Next ACE_Module in the stack.
- ACE_Module<ACE_SYNCH_USE> *next_;
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *next_;
/// Argument passed through to the reader and writer task when they
/// are opened.
diff --git a/dep/acelite/ace/Module.inl b/dep/acelite/ace/Module.inl
index 62e4929a24b..3081bed3925 100644
--- a/dep/acelite/ace/Module.inl
+++ b/dep/acelite/ace/Module.inl
@@ -1,64 +1,64 @@
// -*- C++ -*-
//
-// $Id: Module.inl 80826 2008-03-04 14:51:23Z wotte $
+// $Id: Module.inl 96061 2012-08-16 09:36:07Z mcorino $
#include "ace/OS_NS_string.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-template <ACE_SYNCH_DECL> ACE_INLINE void *
-ACE_Module<ACE_SYNCH_USE>::arg (void) const
+template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE void *
+ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::arg (void) const
{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::arg");
+ ACE_TRACE ("ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::arg");
return this->arg_;
}
-template <ACE_SYNCH_DECL> ACE_INLINE void
-ACE_Module<ACE_SYNCH_USE>::arg (void *a)
+template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE void
+ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::arg (void *a)
{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::arg");
+ ACE_TRACE ("ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::arg");
this->arg_ = a;
}
-template <ACE_SYNCH_DECL> ACE_INLINE const ACE_TCHAR *
-ACE_Module<ACE_SYNCH_USE>::name (void) const
+template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE const ACE_TCHAR *
+ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::name (void) const
{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::name");
+ ACE_TRACE ("ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::name");
return this->name_;
}
-template <ACE_SYNCH_DECL> ACE_INLINE void
-ACE_Module<ACE_SYNCH_USE>::name (const ACE_TCHAR *n)
+template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE void
+ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::name (const ACE_TCHAR *n)
{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::name");
+ ACE_TRACE ("ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::name");
ACE_OS::strsncpy (this->name_, n, MAXPATHLEN);
}
-template <ACE_SYNCH_DECL> ACE_INLINE ACE_Task<ACE_SYNCH_USE> *
-ACE_Module<ACE_SYNCH_USE>::writer (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *
+ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::writer (void)
{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::writer");
+ ACE_TRACE ("ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::writer");
return this->q_pair_[1];
}
-template <ACE_SYNCH_DECL> ACE_INLINE ACE_Task<ACE_SYNCH_USE> *
-ACE_Module<ACE_SYNCH_USE>::reader (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *
+ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::reader (void)
{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::reader");
+ ACE_TRACE ("ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::reader");
return this->q_pair_[0];
}
-template <ACE_SYNCH_DECL> ACE_INLINE ACE_Module<ACE_SYNCH_USE> *
-ACE_Module<ACE_SYNCH_USE>::next (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *
+ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::next (void)
{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::next");
+ ACE_TRACE ("ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::next");
return this->next_;
}
-template <ACE_SYNCH_DECL> ACE_INLINE void
-ACE_Module<ACE_SYNCH_USE>::next (ACE_Module<ACE_SYNCH_USE> *m)
+template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE void
+ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::next (ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *m)
{
- ACE_TRACE ("ACE_Module<ACE_SYNCH_USE>::next");
+ ACE_TRACE ("ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::next");
this->next_ = m;
}
diff --git a/dep/acelite/ace/Monitor_Control/Auto_Update_Starter.cpp b/dep/acelite/ace/Monitor_Control/Auto_Update_Starter.cpp
new file mode 100644
index 00000000000..5c4b02d794b
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Auto_Update_Starter.cpp
@@ -0,0 +1,35 @@
+// $Id: Auto_Update_Starter.cpp 86518 2009-08-18 12:30:56Z olli $
+
+#include "ace/Monitor_Control/Auto_Update_Starter.h"
+
+#if defined (ACE_HAS_MONITOR_FRAMEWORK) && (ACE_HAS_MONITOR_FRAMEWORK == 1)
+
+#include "ace/Reactor.h"
+#include "ace/Dynamic_Service.h"
+#include "ace/Monitor_Admin_Manager.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ int
+ Auto_Update_Starter::svc (void)
+ {
+ MC_ADMINMANAGER* mgr =
+ ACE_Dynamic_Service<MC_ADMINMANAGER>::instance ("MC_ADMINMANAGER");
+
+ /// We want the thread in which the event loop is started to
+ /// own the reactor, otherwise the handle_timeout() calls
+ /// aren't triggerd.
+ mgr->admin ().reactor ()->owner (ACE_Thread::self ());
+
+ return mgr->admin ().reactor ()->run_reactor_event_loop ();
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
diff --git a/dep/acelite/ace/Monitor_Control/Auto_Update_Starter.h b/dep/acelite/ace/Monitor_Control/Auto_Update_Starter.h
new file mode 100644
index 00000000000..7201410161a
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Auto_Update_Starter.h
@@ -0,0 +1,61 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Auto_Update_Starter.h
+ *
+ * $Id: Auto_Update_Starter.h 85297 2009-05-07 01:40:41Z parsons $
+ *
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef AUTO_UPDATE_STARTER_H
+#define AUTO_UPDATE_STARTER_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/Task.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#if defined (ACE_HAS_MONITOR_FRAMEWORK) && (ACE_HAS_MONITOR_FRAMEWORK == 1)
+
+#include "ace/Monitor_Control/Monitor_Control_export.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ /**
+ * @class Auto_Update_Starter
+ *
+ * @brief Starts reactor event loop that handles registered timers.
+ *
+ * For all the monitors that are periodically updated, the reactor
+ * event loop that calls their associated registered timers must
+ * be started in a separate thread so the rest of the application
+ * isn't blocked. A very simple class inheriting from ACE_Task_Base
+ * and overriding the svc() method suffices.
+ */
+ class MONITOR_CONTROL_Export Auto_Update_Starter : public ACE_Task_Base
+ {
+ public:
+ int svc (void);
+ };
+ }
+}
+
+typedef ACE::Monitor_Control::Auto_Update_Starter STARTER;
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
+
+#include /**/ "ace/post.h"
+
+#endif // AUTO_UPDATE_STARTER_H
diff --git a/dep/acelite/ace/Monitor_Control/BSD_Network_Interface_Monitor.cpp b/dep/acelite/ace/Monitor_Control/BSD_Network_Interface_Monitor.cpp
new file mode 100644
index 00000000000..97467dfd90d
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/BSD_Network_Interface_Monitor.cpp
@@ -0,0 +1,136 @@
+// $Id: BSD_Network_Interface_Monitor.cpp 91813 2010-09-17 07:52:52Z johnnyw $
+
+#include "ace/Monitor_Control/BSD_Network_Interface_Monitor.h"
+
+#if defined (__NetBSD__) || defined (__OpenBSD__)
+
+#include "ace/Log_Msg.h"
+#include "ace/OS_NS_stdio.h"
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/sockio.h>
+#include <sys/ioctl.h>
+#include <net/if.h>
+#include <ifaddrs.h>
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ BSD_Network_Interface_Monitor::BSD_Network_Interface_Monitor (
+ const ACE_TCHAR *lookup_str)
+ : value_ (0UL),
+ start_ (0UL),
+ lookup_str_ (lookup_str)
+ {
+ this->init();
+ }
+
+ void
+ BSD_Network_Interface_Monitor::update_i (void)
+ {
+ this->fetch(this->value_);
+ this->value_ -= this->start_;
+ }
+
+ void
+ BSD_Network_Interface_Monitor::clear_impl (void)
+ {
+ this->init();
+ }
+
+ void
+ BSD_Network_Interface_Monitor::init (void)
+ {
+ this->fetch(this->start_);
+ this->value_ = 0UL;
+ }
+
+ void
+ BSD_Network_Interface_Monitor::fetch (ACE_UINT64& value) const
+ {
+ ACE_UINT64 count = 0;
+ int fd = socket (AF_INET, SOCK_DGRAM, 0);
+
+ if (fd == -1)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("socket failed\n")));
+ return;
+ }
+
+ struct ifaddrs *ifa, *ifap;
+
+ if (getifaddrs (&ifap) < 0)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("getifaddrs failed\n")));
+ close (fd);
+ return;
+ }
+
+ char *p = 0;
+
+ for (ifa = ifap; ifa != 0; ifa = ifa->ifa_next)
+ {
+ if (p && strcmp (p, ifa->ifa_name) == 0)
+ {
+ continue;
+ }
+
+ p = ifa->ifa_name;
+
+#if defined (__OpenBSD__)
+ struct ifreq ifdr;
+#else
+ struct ifdatareq ifdr;
+#endif
+ memset (&ifdr, 0, sizeof (ifdr));
+
+#if defined (__OpenBSD__)
+ struct if_data if_data;
+ ifdr.ifr_data = reinterpret_cast<caddr_t> (&if_data);
+ strncpy (ifdr.ifr_name, ifa->ifa_name, IFNAMSIZ-1);
+#else
+ strncpy (ifdr.ifdr_name, ifa->ifa_name, sizeof (ifdr));
+#endif
+ if (ioctl (fd, SIOCGIFDATA, &ifdr) == -1)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("SIOCGIFDATA failed\n")));
+ }
+
+#if defined (__OpenBSD__)
+ struct if_data * const ifi = &if_data;
+#else
+ struct if_data * const ifi = &ifdr.ifdr_data;
+#endif
+
+ if (this->lookup_str_ == "ibytes")
+ {
+ count += ifi->ifi_ibytes;
+ }
+ else if (this->lookup_str_ == "ipackets")
+ {
+ count += ifi->ifi_ipackets;
+ }
+ else if (this->lookup_str_ == "obytes")
+ {
+ count += ifi->ifi_obytes;
+ }
+ else if (this->lookup_str_ == "opackets")
+ {
+ count += ifi->ifi_opackets;
+ }
+ }
+
+ freeifaddrs (ifap);
+ close (fd);
+
+ value = count;
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* defined (__NetBSD__) || defined (__OpenBSD__) */
diff --git a/dep/acelite/ace/Monitor_Control/BSD_Network_Interface_Monitor.h b/dep/acelite/ace/Monitor_Control/BSD_Network_Interface_Monitor.h
new file mode 100644
index 00000000000..df4ab5d7102
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/BSD_Network_Interface_Monitor.h
@@ -0,0 +1,70 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file BSD_Network_Interface_Monitor.h
+ *
+ * $Id: BSD_Network_Interface_Monitor.h 91743 2010-09-13 18:24:51Z johnnyw $
+ *
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef BSD_NETWORK_INTERFACE_MONITOR_H
+#define BSD_NETWORK_INTERFACE_MONITOR_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/SString.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Monitor_Control/Monitor_Control_export.h"
+
+#if defined (__NetBSD__) || defined (__OpenBSD__)
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ /**
+ * @class BSD_Network_Interface_Monitor
+ *
+ * @brief Mixin class for network interface monitors compiled on
+ * xxxBSD machines.
+ */
+ class MONITOR_CONTROL_Export BSD_Network_Interface_Monitor
+ {
+ protected:
+ BSD_Network_Interface_Monitor (const ACE_TCHAR *lookup_str);
+
+ /// Platform-specific implementation.
+ void update_i (void);
+
+ /// Platform-specific reset.
+ void clear_impl (void);
+
+ protected:
+ ACE_UINT64 value_;
+
+ private:
+ void init (void);
+ void fetch (ACE_UINT64& value) const;
+
+ ACE_UINT64 start_;
+ ACE_CString lookup_str_;
+ };
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* defined (__NetBSD__) || defined (__OpenBSD__) */
+
+#include /**/ "ace/post.h"
+
+#endif // BSD_NETWORK_INTERFACE_MONITOR_H
diff --git a/dep/acelite/ace/Monitor_Control/Bytes_Received_Monitor.cpp b/dep/acelite/ace/Monitor_Control/Bytes_Received_Monitor.cpp
new file mode 100644
index 00000000000..a1ef6b6e3b3
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Bytes_Received_Monitor.cpp
@@ -0,0 +1,60 @@
+// $Id: Bytes_Received_Monitor.cpp 95533 2012-02-14 22:59:17Z wotte $
+
+#include "ace/Monitor_Control/Bytes_Received_Monitor.h"
+
+#if defined (ACE_HAS_MONITOR_FRAMEWORK) && (ACE_HAS_MONITOR_FRAMEWORK == 1)
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ const char* Bytes_Received_Monitor::default_name_ =
+ "OS/Network/BytesReceived";
+
+ Bytes_Received_Monitor::Bytes_Received_Monitor (const char* name)
+ : Monitor_Base (name, Monitor_Control_Types::MC_NUMBER)
+#if defined (ACE_HAS_WIN32_PDH)
+ , Windows_Multi_Instance_Monitor (
+ ACE_TEXT ("\\Network Interface(*)\\Bytes Received/sec"))
+#elif defined (ACE_LINUX) || defined (AIX)
+ , Linux_Network_Interface_Monitor (
+ " %*[^:]: %lu %*u %*u %*u %*u %*u %*u %*u %*u %*u")
+ /// Scan format for /proc/net/dev
+#elif defined (ACE_HAS_KSTAT)
+ , Solaris_Network_Interface_Monitor (ACE_TEXT ("rbytes"))
+#elif defined (__NetBSD__) || defined (__OpenBSD__)
+ , BSD_Network_Interface_Monitor (ACE_TEXT ("ibytes"))
+#elif defined (__FreeBSD__) || defined (__Lynx__)
+ , FreeBSD_Network_Interface_Monitor (ACE_TEXT ("ibytes"))
+#endif
+ {}
+
+ void
+ Bytes_Received_Monitor::update (void)
+ {
+ this->update_i ();
+
+ /// On some platforms, value_ is an ACE_UINT64.
+ this->receive (static_cast<double> (this->value_));
+ }
+
+ const char*
+ Bytes_Received_Monitor::default_name (void)
+ {
+ return Bytes_Received_Monitor::default_name_;
+ }
+
+ void
+ Bytes_Received_Monitor::clear_i (void)
+ {
+ this->clear_impl ();
+ this->Monitor_Base::clear_i ();
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
diff --git a/dep/acelite/ace/Monitor_Control/Bytes_Received_Monitor.h b/dep/acelite/ace/Monitor_Control/Bytes_Received_Monitor.h
new file mode 100644
index 00000000000..1490293c0cb
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Bytes_Received_Monitor.h
@@ -0,0 +1,94 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Bytes_Received_Monitor.h
+ *
+ * $Id: Bytes_Received_Monitor.h 95533 2012-02-14 22:59:17Z wotte $
+ *
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef BYTES_RECEIVED_MONITOR_H
+#define BYTES_RECEIVED_MONITOR_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/Monitor_Base.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#if defined (ACE_HAS_MONITOR_FRAMEWORK) && (ACE_HAS_MONITOR_FRAMEWORK == 1)
+
+#if defined (ACE_HAS_PDH_H) && !defined (ACE_LACKS_PDH_H)
+#include "ace/Monitor_Control/Windows_Multi_Instance_Monitor.h"
+#elif defined (ACE_LINUX) || defined (AIX)
+#include "ace/Monitor_Control/Linux_Network_Interface_Monitor.h"
+#elif defined (ACE_HAS_KSTAT)
+#include "ace/Monitor_Control/Solaris_Network_Interface_Monitor.h"
+#elif defined (__FreeBSD__) || defined (__Lynx__)
+#include "ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.h"
+#elif defined (__NetBSD__) || defined (__OpenBSD__)
+#include "ace/Monitor_Control/BSD_Network_Interface_Monitor.h"
+#else
+#include "ace/Monitor_Control/Null_Network_Interface_Monitor.h"
+#endif
+
+#include "ace/Monitor_Control/Monitor_Control_export.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ /**
+ * @class Bytes_Received_Monitor
+ *
+ * @brief Monitors total bytes received over all network interfaces.
+ */
+ class MONITOR_CONTROL_Export Bytes_Received_Monitor
+ : public Monitor_Base
+#if defined (ACE_HAS_WIN32_PDH)
+ , public Windows_Multi_Instance_Monitor
+#elif defined (ACE_LINUX) || defined (AIX)
+ , public Linux_Network_Interface_Monitor
+#elif defined (ACE_HAS_KSTAT)
+ , public Solaris_Network_Interface_Monitor
+#elif defined (__NetBSD__) || defined (__OpenBSD__)
+ , public BSD_Network_Interface_Monitor
+#elif defined (__FreeBSD__) || defined (__Lynx__)
+ , public FreeBSD_Network_Interface_Monitor
+#else
+ , public Null_Network_Interface_Monitor
+#endif
+ {
+ public:
+ Bytes_Received_Monitor (const char* name);
+
+ /// Implementation of the pure virtual method.
+ virtual void update (void);
+
+ /// Stores the default name, used if none is supplied by the user.
+ static const char* default_name (void);
+
+ private:
+ /// Overridden reset, calls platform-specific reset.
+ virtual void clear_i (void);
+
+ private:
+ static const char* default_name_;
+ };
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
+
+#include /**/ "ace/post.h"
+
+#endif // BYTES_RECEIVED_MONITOR_H
diff --git a/dep/acelite/ace/Monitor_Control/Bytes_Sent_Monitor.cpp b/dep/acelite/ace/Monitor_Control/Bytes_Sent_Monitor.cpp
new file mode 100644
index 00000000000..03e8f6f4ffc
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Bytes_Sent_Monitor.cpp
@@ -0,0 +1,60 @@
+// $Id: Bytes_Sent_Monitor.cpp 95533 2012-02-14 22:59:17Z wotte $
+
+#include "ace/Monitor_Control/Bytes_Sent_Monitor.h"
+
+#if defined (ACE_HAS_MONITOR_FRAMEWORK) && (ACE_HAS_MONITOR_FRAMEWORK == 1)
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ const char* Bytes_Sent_Monitor::default_name_ =
+ "OS/Network/BytesSent";
+
+ Bytes_Sent_Monitor::Bytes_Sent_Monitor (const char* name)
+ : Monitor_Base (name, Monitor_Control_Types::MC_NUMBER)
+#if defined (ACE_HAS_WIN32_PDH)
+ , Windows_Multi_Instance_Monitor (
+ ACE_TEXT ("\\Network Interface(*)\\Bytes Sent/sec"))
+#elif defined (ACE_LINUX) || defined (AIX)
+ , Linux_Network_Interface_Monitor (
+ " %*[^:]: %*u %*u %*u %*u %*u %*u %*u %*u %lu %*u")
+ /// Scan format for /proc/net/dev
+#elif defined (ACE_HAS_KSTAT)
+ , Solaris_Network_Interface_Monitor (ACE_TEXT ("obytes"))
+#elif defined (__FreeBSD__) || defined (__Lynx__)
+ , FreeBSD_Network_Interface_Monitor (ACE_TEXT ("obytes"))
+#elif defined (__NetBSD__) || defined (__OpenBSD__)
+ , BSD_Network_Interface_Monitor (ACE_TEXT ("obytes"))
+#endif
+ {}
+
+ void
+ Bytes_Sent_Monitor::update (void)
+ {
+ this->update_i ();
+
+ /// On some platforms, value_ is an ACE_UINT64.
+ this->receive (static_cast<double> (this->value_));
+ }
+
+ const char*
+ Bytes_Sent_Monitor::default_name (void)
+ {
+ return Bytes_Sent_Monitor::default_name_;
+ }
+
+ void
+ Bytes_Sent_Monitor::clear_i (void)
+ {
+ this->clear_impl ();
+ this->Monitor_Base::clear_i ();
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
diff --git a/dep/acelite/ace/Monitor_Control/Bytes_Sent_Monitor.h b/dep/acelite/ace/Monitor_Control/Bytes_Sent_Monitor.h
new file mode 100644
index 00000000000..8023195c355
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Bytes_Sent_Monitor.h
@@ -0,0 +1,94 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Bytes_Sent_Monitor.h
+ *
+ * $Id: Bytes_Sent_Monitor.h 95533 2012-02-14 22:59:17Z wotte $
+ *
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef BYTES_SENT_MONITOR_H
+#define BYTES_SENT_MONITOR_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/Monitor_Base.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#if defined (ACE_HAS_MONITOR_FRAMEWORK) && (ACE_HAS_MONITOR_FRAMEWORK == 1)
+
+#if defined (ACE_HAS_PDH_H) && !defined (ACE_LACKS_PDH_H)
+#include "ace/Monitor_Control/Windows_Multi_Instance_Monitor.h"
+#elif defined (ACE_LINUX) || defined (AIX)
+#include "ace/Monitor_Control/Linux_Network_Interface_Monitor.h"
+#elif defined (ACE_HAS_KSTAT)
+#include "ace/Monitor_Control/Solaris_Network_Interface_Monitor.h"
+#elif defined (__FreeBSD__) || defined (__Lynx__)
+#include "ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.h"
+#elif defined (__NetBSD__) || defined (__OpenBSD__)
+#include "ace/Monitor_Control/BSD_Network_Interface_Monitor.h"
+#else
+#include "ace/Monitor_Control/Null_Network_Interface_Monitor.h"
+#endif
+
+#include "ace/Monitor_Control/Monitor_Control_export.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ /**
+ * @class Bytes_Sent_Monitor
+ *
+ * @brief Monitors total bytes sent over all network interfaces.
+ */
+ class MONITOR_CONTROL_Export Bytes_Sent_Monitor
+ : public Monitor_Base
+#if defined (ACE_HAS_WIN32_PDH)
+ , public Windows_Multi_Instance_Monitor
+#elif defined (ACE_LINUX) || defined (AIX)
+ , public Linux_Network_Interface_Monitor
+#elif defined (ACE_HAS_KSTAT)
+ , public Solaris_Network_Interface_Monitor
+#elif defined (__NetBSD__) || defined (__OpenBSD__)
+ , public BSD_Network_Interface_Monitor
+#elif defined (__FreeBSD__) || defined (__Lynx__)
+ , public FreeBSD_Network_Interface_Monitor
+#else
+ , public Null_Network_Interface_Monitor
+#endif
+ {
+ public:
+ Bytes_Sent_Monitor (const char* name);
+
+ /// Implementation of the pure virtual method.
+ virtual void update (void);
+
+ /// Stores the default name, used if none is supplied by the user.
+ static const char* default_name (void);
+
+ private:
+ /// Overridden reset, calls platform-specific reset.
+ virtual void clear_i (void);
+
+ private:
+ static const char* default_name_;
+ };
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
+
+#include /**/ "ace/post.h"
+
+#endif // BYTESSENTMONITOR_H
diff --git a/dep/acelite/ace/Monitor_Control/CPU_Load_Monitor.cpp b/dep/acelite/ace/Monitor_Control/CPU_Load_Monitor.cpp
new file mode 100644
index 00000000000..5e016777c01
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/CPU_Load_Monitor.cpp
@@ -0,0 +1,254 @@
+// $Id: CPU_Load_Monitor.cpp 95533 2012-02-14 22:59:17Z wotte $
+
+#include "ace/Monitor_Control/CPU_Load_Monitor.h"
+
+#if defined (ACE_HAS_MONITOR_FRAMEWORK) && (ACE_HAS_MONITOR_FRAMEWORK == 1)
+
+#if defined (ACE_HAS_KSTAT)
+#include <sys/sysinfo.h>
+#endif
+
+#if defined (ACE_LINUX)
+#include "ace/OS_NS_stdio.h"
+#endif
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ const char* CPU_Load_Monitor::default_name_ =
+ "OS/Processor/CPULoad";
+
+ CPU_Load_Monitor::CPU_Load_Monitor (const char* name)
+ : Monitor_Base (name, Monitor_Control_Types::MC_NUMBER)
+#if defined (ACE_HAS_WIN32_PDH)
+ , Windows_Monitor (ACE_TEXT("\\Processor(_Total)\\% Processor Time"))
+#endif
+#if defined (ACE_LINUX) || defined (ACE_HAS_KSTAT)
+ , user_ (0)
+ , wait_ (0)
+ , kernel_ (0)
+ , idle_ (0)
+ , prev_idle_ (0)
+ , prev_total_ (0.0)
+#endif
+#if defined (ACE_LINUX)
+ , file_ptr_ (0)
+#elif defined (ACE_HAS_KSTAT)
+ , kstats_ (0)
+ , kstat_ (0)
+ , kstat_id_ (0)
+#endif
+ {
+ this->init ();
+ }
+
+ void
+ CPU_Load_Monitor::update (void)
+ {
+#if defined (ACE_HAS_WIN32_PDH)
+ this->update_i ();
+ this->receive (this->value_);
+#elif defined (ACE_LINUX)
+ this->access_proc_stat (&this->idle_);
+#elif defined (ACE_HAS_KSTAT)
+ this->access_kstats (&this->idle_);
+#endif
+
+#if defined (ACE_LINUX) || defined (ACE_HAS_KSTAT)
+ double delta_idle = this->idle_ - this->prev_idle_;
+ double total =
+ this->user_ + this->wait_ + this->kernel_ + this->idle_;
+ double delta_total = total - this->prev_total_;
+
+ if (ACE::is_equal (delta_total, 0.0))
+ {
+ /// The system hasn't updated /proc/stat since the last call
+ /// to update(), we must avoid dividing by 0.
+ return;
+ }
+
+ double percent_cpu_load = 100.0 - (delta_idle / delta_total * 100.0);
+
+ /// Stores value and timestamp with thread-safety.
+ this->receive (percent_cpu_load);
+
+ this->prev_idle_ = this->idle_;
+ this->prev_total_ = total;
+#endif
+ }
+
+ const char*
+ CPU_Load_Monitor::default_name (void)
+ {
+ return CPU_Load_Monitor::default_name_;
+ }
+
+ void
+ CPU_Load_Monitor::clear_i (void)
+ {
+#if defined (ACE_HAS_WIN32_PDH)
+ this->clear_impl ();
+#endif
+
+ this->init ();
+ this->Monitor_Base::clear_i ();
+ }
+
+ void
+ CPU_Load_Monitor::init (void)
+ {
+#if defined (ACE_LINUX)
+ /// All data in this file are stored as running 'jiffy' totals, so we
+ /// get values here in the constructor to subtract for the difference
+ /// in subsequent calls.
+ this->access_proc_stat (&this->prev_idle_);
+
+ this->prev_total_ =
+ this->user_ + this->wait_ + this->kernel_ + this->prev_idle_;
+#elif defined (ACE_HAS_KSTAT)
+ /// Stored similarly to Linux, in a system file.
+ this->access_kstats (&this->prev_idle_);
+
+ this->prev_total_ =
+ this->user_ + this->wait_ + this->kernel_ + this->prev_idle_;
+#endif
+ }
+
+#if defined (ACE_LINUX)
+ void
+ CPU_Load_Monitor::access_proc_stat (unsigned long *which_idle)
+ {
+ this->file_ptr_ = ACE_OS::fopen (ACE_TEXT ("/proc/stat"),
+ ACE_TEXT ("r"));
+
+ if (this->file_ptr_ == 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("CPU load - opening /proc/stat failed\n")));
+ return;
+ }
+
+ char *item = 0;
+ char *arg = 0;
+
+ while ((ACE_OS::fgets (buf_, sizeof (buf_), file_ptr_)) != 0)
+ {
+ item = ACE_OS::strtok (this->buf_, " \t\n");
+ arg = ACE_OS::strtok (0, "\n");
+
+ if (item == 0 || arg == 0)
+ {
+ continue;
+ }
+
+ if (ACE_OS::strcmp (item, "cpu") == 0)
+ {
+ sscanf (arg,
+ "%lu %lu %lu %lu",
+ &this->user_,
+ &this->wait_,
+ &this->kernel_,
+ which_idle);
+ break;
+ }
+ }
+
+ ACE_OS::fclose (this->file_ptr_);
+ }
+#endif
+
+#if defined (ACE_HAS_KSTAT)
+ void
+ CPU_Load_Monitor::access_kstats (unsigned long *which_idle)
+ {
+ this->kstats_ = kstat_open ();
+
+ if (this->kstats_ == 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("opening kstats file failed\n")));
+ return;
+ }
+
+ this->kstat_id_ = this->kstats_->kc_chain_id;
+
+ while (true)
+ {
+ this->kernel_ = 0UL;
+ this->wait_ = 0UL;
+ this->user_ = 0UL;
+ (*which_idle) = 0UL;
+
+ /// Unlike Linux's "/proc/stat", there is no entry for total CPU
+ /// stats, so we have to sum them manually.
+ for (this->kstat_ = this->kstats_->kc_chain;
+ this->kstat_ != 0;
+ this->kstat_ = this->kstat_->ks_next)
+ {
+ int result = ACE_OS::strncmp (this->kstat_->ks_name,
+ "cpu_stat",
+ ACE_OS::strlen ("cpu_stat"));
+
+ if (result == 0)
+ {
+ /// Because the kstat chain can change dynamically,
+ /// watch the chain ID and restart the walk if the ID
+ /// differs from what we saw during the walk. The restart
+ /// is done by breaking from the cycle with kstat_ not 0.
+
+ kid_t kstat_id = kstat_read (this->kstats_, this->kstat_, 0);
+
+ if (kstat_id != this->kstat_id_)
+ {
+ break;
+ }
+
+ cpu_stat_t &kstat_cpu =
+ *((cpu_stat_t *) this->kstat_->ks_data);
+
+ this->kernel_ += kstat_cpu.cpu_sysinfo.cpu[CPU_KERNEL];
+ this->wait_ += kstat_cpu.cpu_sysinfo.cpu[CPU_WAIT];
+ this->user_ += kstat_cpu.cpu_sysinfo.cpu[CPU_USER];
+ (*which_idle) += kstat_cpu.cpu_sysinfo.cpu[CPU_IDLE];
+ }
+ }
+
+ if (this->kstat_ != 0)
+ {
+ /// The ID changed underneath us, so get the new one and
+ /// start again.
+ this->kstat_id_ = kstat_chain_update (this->kstats_);
+
+ if (! this->kstat_id_ > 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("kstat chain update ")
+ ACE_TEXT ("returned null id\n")));
+ return;
+ }
+ }
+ else
+ {
+ /// Clean run, exit the WHILE loop.
+ break;
+ }
+ }
+
+ int status = kstat_close (this->kstats_);
+
+ if (status != 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("closing kstats file failed\n")));
+ }
+ }
+#endif
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
diff --git a/dep/acelite/ace/Monitor_Control/CPU_Load_Monitor.h b/dep/acelite/ace/Monitor_Control/CPU_Load_Monitor.h
new file mode 100644
index 00000000000..6481a1a66b4
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/CPU_Load_Monitor.h
@@ -0,0 +1,106 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file CPU_Load_Monitor.h
+ *
+ * $Id: CPU_Load_Monitor.h 95533 2012-02-14 22:59:17Z wotte $
+ *
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef CPU_LOAD_MONITOR_H
+#define CPU_LOAD_MONITOR_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/Monitor_Base.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#if defined (ACE_HAS_MONITOR_FRAMEWORK) && (ACE_HAS_MONITOR_FRAMEWORK == 1)
+
+#if defined (ACE_HAS_PDH_H) && !defined (ACE_LACKS_PDH_H)
+#include "ace/Monitor_Control/Windows_Monitor.h"
+#elif defined (ACE_HAS_KSTAT)
+#include "ace/os_include/os_kstat.h"
+#endif
+
+#include "ace/Monitor_Control/Monitor_Control_export.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ /**
+ * @class CPU_Load_Monitor
+ *
+ * @brief Monitors percentage CPU utilization.
+ */
+ class MONITOR_CONTROL_Export CPU_Load_Monitor
+ : public Monitor_Base
+#if defined (ACE_HAS_WIN32_PDH)
+ , public Windows_Monitor
+#endif
+ {
+ public:
+ CPU_Load_Monitor (const char* name);
+
+ /// Implementation of the pure virtual method.
+ virtual void update (void);
+
+ /// Stores the default name, used if none is supplied by the user.
+ static const char* default_name (void);
+
+ private:
+ /// Overridden reset, calls platform-specific reset.
+ virtual void clear_i (void);
+
+ /// Common code to the constructor and to clear_i().
+ void init (void);
+
+ private:
+#if defined (ACE_LINUX)
+ void access_proc_stat (unsigned long *which_idle);
+#endif
+
+#if defined (ACE_HAS_KSTAT)
+ void access_kstats (unsigned long *which_idle);
+#endif
+
+ private:
+ static const char* default_name_;
+
+ /// Common to Linux and Solaris implementations.
+#if defined (ACE_LINUX) || defined (ACE_HAS_KSTAT)
+ unsigned long user_;
+ unsigned long wait_;
+ unsigned long kernel_;
+ unsigned long idle_;
+ unsigned long prev_idle_;
+ double prev_total_;
+#endif
+#if defined (ACE_LINUX)
+ FILE *file_ptr_;
+ char buf_[1024];
+#elif defined (ACE_HAS_KSTAT)
+ kstat_ctl_t *kstats_;
+ kstat_t *kstat_;
+ kid_t kstat_id_;
+#endif
+ };
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
+
+#include /**/ "ace/post.h"
+
+#endif // CPU_LOAD_MONITOR_H
diff --git a/dep/acelite/ace/Monitor_Control/Constraint_Interpreter.cpp b/dep/acelite/ace/Monitor_Control/Constraint_Interpreter.cpp
new file mode 100644
index 00000000000..18916522538
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Constraint_Interpreter.cpp
@@ -0,0 +1,62 @@
+// $Id: Constraint_Interpreter.cpp 86518 2009-08-18 12:30:56Z olli $
+
+#include "ace/Monitor_Control/Constraint_Interpreter.h"
+
+#if defined (ACE_HAS_MONITOR_FRAMEWORK) && (ACE_HAS_MONITOR_FRAMEWORK == 1)
+
+#include "ace/Log_Msg.h"
+
+#include "ace/ETCL/ETCL_Constraint.h"
+
+#include "ace/Monitor_Control/Constraint_Visitor.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ Constraint_Interpreter::Constraint_Interpreter (void)
+ {
+ }
+
+ Constraint_Interpreter::~Constraint_Interpreter (void)
+ {
+ }
+
+ int
+ Constraint_Interpreter::build_tree (const char *constraints)
+ {
+ if (ETCL_Interpreter::is_empty_string (constraints))
+ {
+ /// Root is deleted in the interpreter's destructor.
+ ACE_NEW_RETURN (this->root_,
+ ETCL_Literal_Constraint (true),
+ -1);
+ }
+ else
+ {
+ /// root_ is set in this base class call.
+ if (ETCL_Interpreter::build_tree (constraints) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Constraint_Interpreter::build_tree() - "
+ "ETCL_Interpreter::build_tree() failed\n"),
+ -1);
+ }
+ }
+
+ return 0;
+ }
+
+ ACE_CDR::Boolean
+ Constraint_Interpreter::evaluate (Constraint_Visitor &evaluator)
+ {
+ return evaluator.evaluate_constraint (this->root_);
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
diff --git a/dep/acelite/ace/Monitor_Control/Constraint_Interpreter.h b/dep/acelite/ace/Monitor_Control/Constraint_Interpreter.h
new file mode 100644
index 00000000000..e75981980fe
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Constraint_Interpreter.h
@@ -0,0 +1,74 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Constraint_Interpreter.h
+ *
+ * $Id: Constraint_Interpreter.h 81753 2008-05-21 19:02:47Z parsons $
+ *
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef CONSTRAINT_INTERPRETER_H
+#define CONSTRAINT_INTERPRETER_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/CDR_Base.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#if defined (ACE_HAS_MONITOR_FRAMEWORK) && (ACE_HAS_MONITOR_FRAMEWORK == 1)
+
+#include "ace/ETCL/ETCL_Interpreter.h"
+
+#include "ace/Monitor_Control/Monitor_Control_export.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ class Constraint_Visitor;
+
+ /**
+ * @class Constraint_Interpreter
+ *
+ * @brief "ETCL" Interpreter for MonitorControl constraints,
+ specialized to encapsulate MonitorControl-specific
+ knowledge of types and visitors.
+ */
+ class MONITOR_CONTROL_Export Constraint_Interpreter
+ : public ETCL_Interpreter
+ {
+ public:
+ Constraint_Interpreter (void);
+
+ virtual ~Constraint_Interpreter (void);
+
+ /**
+ * This method builds an expression tree representing the
+ * constraint specified in <constraints>, and returns -1 with
+ * an error message if the constraint given has syntax errors or
+ * semantic errors, such as mismatched types.
+ */
+ int build_tree (const char* constraints);
+
+ /// Returns true if the constraint is evaluated successfully by
+ /// the evaluator.
+ ACE_CDR::Boolean evaluate (Constraint_Visitor &evaluator);
+ };
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
+
+#include /**/ "ace/post.h"
+
+#endif /* CONSTRAINT_INTERPRETER_H */
diff --git a/dep/acelite/ace/Monitor_Control/Constraint_Visitor.cpp b/dep/acelite/ace/Monitor_Control/Constraint_Visitor.cpp
new file mode 100644
index 00000000000..d37ad53cc49
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Constraint_Visitor.cpp
@@ -0,0 +1,304 @@
+// $Id: Constraint_Visitor.cpp 86518 2009-08-18 12:30:56Z olli $
+
+#include "ace/Monitor_Control/Constraint_Visitor.h"
+
+#if defined (ACE_HAS_MONITOR_FRAMEWORK) && (ACE_HAS_MONITOR_FRAMEWORK == 1)
+
+#include "ace/ETCL/ETCL_y.h"
+#include "ace/ETCL/ETCL_Constraint.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ Constraint_Visitor::Constraint_Visitor (
+ const Monitor_Control_Types::Data& data)
+ : data_ (data)
+ {}
+
+ Constraint_Visitor::~Constraint_Visitor (void)
+ {}
+
+ ACE_CDR::Boolean
+ Constraint_Visitor::evaluate_constraint (ETCL_Constraint *root)
+ {
+ ACE_CDR::Boolean result = false;
+ this->queue_.reset ();
+
+ // Evaluate the constraint in root_;
+ if (root != 0)
+ {
+ if (root->accept (this) == 0 && !this->queue_.is_empty ())
+ {
+ ETCL_Literal_Constraint top;
+ this->queue_.dequeue_head (top);
+ result = (ACE_CDR::Boolean) top;
+ }
+ }
+
+ // If a property couldn't be evaluated we must return FALSE.
+ return result;
+ }
+
+ int
+ Constraint_Visitor::visit_literal (ETCL_Literal_Constraint *constraint)
+ {
+ this->queue_.enqueue_head (*constraint);
+ return 0;
+ }
+
+ int
+ Constraint_Visitor::visit_identifier (ETCL_Identifier *ident)
+ {
+ /// TODO - check for strings related to other identifiers
+ /// relevant in MonitorControl, for example the data timestamp.
+ if (ACE_OS::strcmp (ident->value (), "value") == 0)
+ {
+ this->queue_.enqueue_head (
+ ETCL_Literal_Constraint (this->data_.value_));
+
+ return 0;
+ }
+
+ return -1;
+ }
+
+ int
+ Constraint_Visitor::visit_unary_expr (ETCL_Unary_Expr *unary_expr)
+ {
+ ETCL_Constraint *subexpression = unary_expr->subexpr ();
+
+ /// Call to accept() puts the subexpression's evaluation on our queue.
+ if (subexpression->accept (this) == 0)
+ {
+ ETCL_Literal_Constraint subexpr_result;
+ ACE_CDR::Boolean result = 0;
+ int op_type = unary_expr->type ();
+
+ switch (op_type)
+ {
+ case ETCL_NOT:
+ this->queue_.dequeue_head (subexpr_result);
+ result = ! (ACE_CDR::Boolean) subexpr_result;
+ this->queue_.enqueue_head (ETCL_Literal_Constraint (result));
+ return 0;
+ case ETCL_MINUS:
+ /// The leading '-' was parsed separately, so we have to pull
+ /// the literal constraint off the queue, apply the class' own
+ /// unary minus operator, and put it back.
+ this->queue_.dequeue_head (subexpr_result);
+ this->queue_.enqueue_head (-subexpr_result);
+ return 0;
+ case ETCL_PLUS:
+ /// Leave the literal constraint on the queue. The leading
+ /// '+' was just syntactic sugar - no action is necessary.
+ return 0;
+ default:
+ /// The parser should never construct a ETCL_Unary_Constraint
+ /// behind any operators except the above three.
+ return -1;
+ }
+ }
+
+ return -1;
+ }
+
+ int
+ Constraint_Visitor::visit_binary_expr (ETCL_Binary_Expr *binary_expr)
+ {
+ int bin_op_type = binary_expr->type ();
+
+ switch (bin_op_type)
+ {
+ case ETCL_OR:
+ return this->visit_or (binary_expr);
+ case ETCL_AND:
+ return this->visit_and (binary_expr);
+ case ETCL_LT:
+ case ETCL_LE:
+ case ETCL_GT:
+ case ETCL_GE:
+ case ETCL_EQ:
+ case ETCL_NE:
+ case ETCL_PLUS:
+ case ETCL_MINUS:
+ case ETCL_MULT:
+ case ETCL_DIV:
+ return this->visit_binary_op (binary_expr, bin_op_type);
+ /// These last two are not supported in non_CORBA ETCL.
+ case ETCL_TWIDDLE:
+ case ETCL_IN:
+ default:
+ return -1;
+ }
+ }
+
+ int
+ Constraint_Visitor::visit_or (ETCL_Binary_Expr *binary)
+ {
+ int return_value = -1;
+ ACE_CDR::Boolean result = false;
+ ETCL_Constraint *lhs = binary->lhs ();
+
+ /// Call to accept() puts the lhs (or its evaluation) on our queue.
+ if (lhs->accept (this) == 0)
+ {
+ ETCL_Literal_Constraint lhs_result;
+ this->queue_.dequeue_head (lhs_result);
+ result = (ACE_CDR::Boolean) lhs_result;
+
+ /// Short-circuiting OR.
+ if (!result)
+ {
+ ETCL_Constraint *rhs = binary->rhs ();
+
+ if (rhs->accept (this) == 0)
+ {
+ ETCL_Literal_Constraint rhs_result;
+ this->queue_.dequeue_head (rhs_result);
+ result = (ACE_CDR::Boolean) rhs_result;
+ return_value = 0;
+ }
+ }
+ else
+ {
+ return_value = 0;
+ }
+ }
+
+ if (return_value == 0)
+ {
+ this->queue_.enqueue_head (ETCL_Literal_Constraint (result));
+ }
+
+ return return_value;
+ }
+
+ int
+ Constraint_Visitor::visit_and (ETCL_Binary_Expr *binary)
+ {
+ int return_value = -1;
+ ACE_CDR::Boolean result = false;
+ ETCL_Constraint *lhs = binary->lhs ();
+
+ /// Call to accept() puts the lhs (or its evaluation) on our queue.
+ if (lhs->accept (this) == 0)
+ {
+ ETCL_Literal_Constraint lhs_result;
+ this->queue_.dequeue_head (lhs_result);
+ result = (ACE_CDR::Boolean) lhs_result;
+
+ /// Short-circuiting AND.
+ if (result == true)
+ {
+ ETCL_Constraint *rhs = binary->rhs ();
+
+ if (rhs->accept (this) == 0)
+ {
+ ETCL_Literal_Constraint rhs_result;
+ this->queue_.dequeue_head (rhs_result);
+ result = (ACE_CDR::Boolean) rhs_result;
+ return_value = 0;
+ }
+ }
+ else
+ {
+ return_value = 0;
+ }
+ }
+
+ if (return_value == 0)
+ {
+ this->queue_.enqueue_head (ETCL_Literal_Constraint (result));
+ }
+
+ return return_value;
+ }
+
+ int
+ Constraint_Visitor::visit_binary_op (ETCL_Binary_Expr *binary,
+ int op_type)
+ {
+ int return_value = -1;
+ ETCL_Constraint *lhs = binary->lhs ();
+ ACE_CDR::Boolean result = false;
+
+ /// Perform an operation on the results of evaluating the left and
+ /// right branches of this subtree. The evaluations go on our queue.
+ if (lhs->accept (this) == 0)
+ {
+ ETCL_Literal_Constraint left_operand;
+ this->queue_.dequeue_head (left_operand);
+ ETCL_Constraint *rhs = binary->rhs ();
+
+ if (rhs->accept (this) == 0)
+ {
+ ETCL_Literal_Constraint right_operand;
+ this->queue_.dequeue_head (right_operand);
+ return_value = 0;
+
+ switch (op_type)
+ {
+ case ETCL_LT:
+ result = left_operand < right_operand;
+ this->queue_.enqueue_head (
+ ETCL_Literal_Constraint (result));
+ break;
+ case ETCL_LE:
+ result = left_operand <= right_operand;
+ this->queue_.enqueue_head (
+ ETCL_Literal_Constraint (result));
+ break;
+ case ETCL_GT:
+ result = left_operand > right_operand;
+ this->queue_.enqueue_head (
+ ETCL_Literal_Constraint (result));
+ break;
+ case ETCL_GE:
+ result = left_operand >= right_operand;
+ this->queue_.enqueue_head (
+ ETCL_Literal_Constraint (result));
+ break;
+ case ETCL_EQ:
+ result = left_operand == right_operand;
+ this->queue_.enqueue_head (
+ ETCL_Literal_Constraint (result));
+ break;
+ case ETCL_NE:
+ result = left_operand != right_operand;
+ this->queue_.enqueue_head (
+ ETCL_Literal_Constraint (result));
+ break;
+ case ETCL_PLUS:
+ this->queue_.enqueue_head (
+ left_operand + right_operand);
+ break;
+ case ETCL_MINUS:
+ this->queue_.enqueue_head (
+ left_operand - right_operand);
+ break;
+ case ETCL_MULT:
+ this->queue_.enqueue_head (
+ left_operand * right_operand);
+ break;
+ case ETCL_DIV:
+ this->queue_.enqueue_head (
+ left_operand / right_operand);
+ break;
+ default:
+ return_value = -1;
+ break;
+ }
+ }
+ }
+
+ return return_value;
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
diff --git a/dep/acelite/ace/Monitor_Control/Constraint_Visitor.h b/dep/acelite/ace/Monitor_Control/Constraint_Visitor.h
new file mode 100644
index 00000000000..582ee1ab129
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Constraint_Visitor.h
@@ -0,0 +1,86 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Constraint_Visitor.h
+ *
+ * $Id: Constraint_Visitor.h 86518 2009-08-18 12:30:56Z olli $
+ *
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef CONSTRAINT_VISITOR_H
+#define CONSTRAINT_VISITOR_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/CDR_Base.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#if defined (ACE_HAS_MONITOR_FRAMEWORK) && (ACE_HAS_MONITOR_FRAMEWORK == 1)
+
+#include "ace/Monitor_Control_Types.h"
+
+#include "ace/ETCL/ETCL_Constraint.h"
+#include "ace/ETCL/ETCL_Constraint_Visitor.h"
+
+#include "ace/Monitor_Control/Monitor_Control_export.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+class ETCL_Literal_Constraint;
+class ETCL_Identifier;
+class ETCL_Unary_Expr;
+class ETCL_Binary_Expr;
+class ETCL_Constraint;
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ /**
+ * @class Constraint_Visitor
+ *
+ * @brief Backend for the non-CORBA ETCL frontend, specific to
+ * MonitorControl and supporting only basic types not
+ specific to CORBA.
+ */
+ class MONITOR_CONTROL_Export Constraint_Visitor
+ : public ETCL_Constraint_Visitor
+ {
+ public:
+ Constraint_Visitor (const Monitor_Control_Types::Data& data);
+ virtual ~Constraint_Visitor (void);
+
+ ACE_CDR::Boolean evaluate_constraint (ETCL_Constraint *root);
+
+ virtual int visit_literal (ETCL_Literal_Constraint *);
+ virtual int visit_identifier (ETCL_Identifier *);
+ virtual int visit_unary_expr (ETCL_Unary_Expr *);
+ virtual int visit_binary_expr (ETCL_Binary_Expr *);
+
+ private:
+ /// Sub-methods for visit_binary_expr().
+ int visit_or (ETCL_Binary_Expr *);
+ int visit_and (ETCL_Binary_Expr *);
+ int visit_binary_op (ETCL_Binary_Expr *binary_expr,
+ int op_type);
+
+ private:
+ const Monitor_Control_Types::Data& data_;
+ ACE_Unbounded_Queue<ETCL_Literal_Constraint> queue_;
+ };
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
+
+#include /**/ "ace/post.h"
+
+#endif // CONSTRAINT_VISITOR_H
diff --git a/dep/acelite/ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.cpp b/dep/acelite/ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.cpp
new file mode 100644
index 00000000000..87a3cffdd8a
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.cpp
@@ -0,0 +1,124 @@
+// $Id: FreeBSD_Network_Interface_Monitor.cpp 86518 2009-08-18 12:30:56Z olli $
+
+#include "ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.h"
+
+#if defined (__FreeBSD__) || defined (__Lynx__)
+
+#include "ace/Log_Msg.h"
+#include "ace/OS_NS_stdio.h"
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/sysctl.h>
+#include <sys/time.h>
+#include <net/if.h>
+#include <net/if_mib.h>
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ FreeBSD_Network_Interface_Monitor::FreeBSD_Network_Interface_Monitor (
+ const ACE_TCHAR *lookup_str)
+ : value_ (0UL),
+ start_ (0UL),
+ lookup_str_ (lookup_str)
+ {
+ this->init();
+ }
+
+ void
+ FreeBSD_Network_Interface_Monitor::update_i (void)
+ {
+ this->fetch(this->value_);
+ this->value_ -= this->start_;
+ }
+
+ void
+ FreeBSD_Network_Interface_Monitor::clear_impl (void)
+ {
+ this->init();
+ }
+
+ void
+ FreeBSD_Network_Interface_Monitor::init (void)
+ {
+ this->fetch(this->start_);
+ this->value_ = 0UL;
+ }
+
+ void
+ FreeBSD_Network_Interface_Monitor::fetch (ACE_UINT64& value) const
+ {
+ ACE_UINT64 count = 0;
+
+ int req_name[5];
+ int ifcount;
+ size_t ifcount_len = sizeof(ifcount);
+
+ req_name[0] = CTL_NET;
+ req_name[1] = PF_LINK;
+ req_name[2] = NETLINK_GENERIC;
+ req_name[3] = IFMIB_SYSTEM;
+ req_name[4] = IFMIB_IFCOUNT;
+
+ if (::sysctl(req_name, 5, &ifcount, &ifcount_len, (void *)0, 0) == -1)
+ {
+ ACE_ERROR((LM_ERROR, ACE_TEXT("(%P|%t) %p\n"),
+ ACE_TEXT("sysctl failed")));
+
+ return;
+ }
+
+ for (int i = 1; i <= ifcount; i++)
+ {
+ int name[6];
+ struct ifmibdata ifmd;
+ size_t len = sizeof(ifmd);
+
+ name[0] = CTL_NET;
+ name[1] = PF_LINK;
+ name[2] = NETLINK_GENERIC;
+ name[3] = IFMIB_IFDATA;
+ name[4] = i;
+ name[5] = IFDATA_GENERAL;
+
+ if(::sysctl(name, 6, &ifmd, &len, (void *)0, 0) == -1)
+ {
+ ACE_ERROR((LM_ERROR, ACE_TEXT("(%P|%t) %p\n"),
+ ACE_TEXT("sysctl failed")));
+
+ break;
+ }
+
+ struct if_data * const ifi = &ifmd.ifmd_data;
+
+ if(this->lookup_str_ == "ibytes")
+ {
+ count += ifi->ifi_ibytes;
+ }
+ else if(this->lookup_str_ == "ipackets")
+ {
+ count += ifi->ifi_ipackets;
+ }
+ else if(this->lookup_str_ == "obytes")
+ {
+ count += ifi->ifi_obytes;
+ }
+ else if(this->lookup_str_ == "opackets")
+ {
+ count += ifi->ifi_opackets;
+ }
+
+ } // for
+
+ value = count;
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* defined (__FreeBSD__) || defined (__Lynx__) */
diff --git a/dep/acelite/ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.h b/dep/acelite/ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.h
new file mode 100644
index 00000000000..b820b3b0e64
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.h
@@ -0,0 +1,70 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file FreeBSD_Network_Interface_Monitor.h
+ *
+ * $Id: FreeBSD_Network_Interface_Monitor.h 86518 2009-08-18 12:30:56Z olli $
+ *
+ * @author Boyan Kasarov
+ */
+//=============================================================================
+
+#ifndef FREEBSD_NETWORK_INTERFACE_MONITOR_H
+#define FREEBSD_NETWORK_INTERFACE_MONITOR_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/SString.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Monitor_Control/Monitor_Control_export.h"
+
+#if defined (__FreeBSD__) || defined (__Lynx__)
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ /**
+ * @class FreeBSD_Network_Interface_Monitor
+ *
+ * @brief Mixin class for network interface monitors compiled on
+ * FreeBSD machines.
+ */
+ class MONITOR_CONTROL_Export FreeBSD_Network_Interface_Monitor
+ {
+ protected:
+ FreeBSD_Network_Interface_Monitor (const ACE_TCHAR *lookup_str);
+
+ /// Platform-specific implementation.
+ void update_i (void);
+
+ /// Platform-specific reset.
+ void clear_impl (void);
+
+ protected:
+ ACE_UINT64 value_;
+
+ private:
+ void init (void);
+ void fetch (ACE_UINT64& value) const;
+
+ ACE_UINT64 start_;
+ ACE_CString lookup_str_;
+ };
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* defined (__FreeBSD__) || defined (__Lynx__) */
+
+#include /**/ "ace/post.h"
+
+#endif // FREEBSD_NETWORK_INTERFACE_MONITOR_H
diff --git a/dep/acelite/ace/Monitor_Control/Linux_Network_Interface_Monitor.cpp b/dep/acelite/ace/Monitor_Control/Linux_Network_Interface_Monitor.cpp
new file mode 100644
index 00000000000..ffcdc054d06
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Linux_Network_Interface_Monitor.cpp
@@ -0,0 +1,124 @@
+// $Id: Linux_Network_Interface_Monitor.cpp 95533 2012-02-14 22:59:17Z wotte $
+
+#include "ace/Monitor_Control/Linux_Network_Interface_Monitor.h"
+
+#if defined (ACE_LINUX) || defined (AIX)
+
+#include "ace/Log_Msg.h"
+#include "ace/OS_NS_stdio.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ Linux_Network_Interface_Monitor::Linux_Network_Interface_Monitor (
+ const char *scan_format)
+ : value_ (0UL),
+ start_ (0UL),
+ scan_format_ (scan_format)
+ {
+ this->init ();
+ }
+
+ void
+ Linux_Network_Interface_Monitor::update_i (void)
+ {
+ char buf[1024];
+ FILE* fp = ACE_OS::fopen (ACE_TEXT ("/proc/net/dev"),
+ ACE_TEXT ("r"));
+
+ if (fp == 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("bytes sent - opening ")
+ ACE_TEXT ("/proc/net/dev failed\n")));
+ return;
+ }
+
+ /// Ignore the first 2 lines of the file, which are file
+ /// and column headers.
+ void* dummy = ACE_OS::fgets (buf, sizeof (buf), fp);
+ ACE_UNUSED_ARG (dummy);
+ dummy = ACE_OS::fgets (buf, sizeof (buf), fp);
+ ACE_UNUSED_ARG (dummy);
+
+ unsigned long iface_value = 0UL;
+ ACE_UINT32 iface_index = 0UL;
+ ACE_UINT64 total_value = 0UL;
+
+ while (ACE_OS::fgets (buf, sizeof (buf), fp) != 0)
+ {
+ sscanf (buf, this->scan_format_.c_str (), &iface_value);
+
+ /// If the monitor runs long enough, the system counters will
+ /// wrap around, the statement below is an attempt to correct
+ /// for that.
+ this->value_array_[iface_index] +=
+ iface_value
+ - static_cast<unsigned long> (this->value_array_[iface_index]);
+ total_value += this->value_array_[iface_index];
+
+ ++iface_index;
+ }
+
+ this->value_ = total_value - this->start_;
+ (void) ACE_OS::fclose (fp);
+ }
+
+ void
+ Linux_Network_Interface_Monitor::clear_impl (void)
+ {
+ this->init ();
+ }
+
+ void
+ Linux_Network_Interface_Monitor::init (void)
+ {
+ for (unsigned long i = 0UL; i < MAX_INTERFACES; ++i)
+ {
+ this->value_array_[i] = 0UL;
+ }
+
+ /// Read the file once to get a base value that we can subtract
+ /// from subsequent readings to get bytes sent since we started
+ /// monitoring.
+ char buf[1024];
+ FILE* fp = ACE_OS::fopen (ACE_TEXT ("/proc/net/dev"),
+ ACE_TEXT ("r"));
+
+ if (fp == 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("bytes sent - opening ")
+ ACE_TEXT ("/proc/net/dev failed\n")));
+ return;
+ }
+
+ /// Ignore the first 2 lines of the file, which are file
+ /// and column headers.
+ void* dummy = ACE_OS::fgets (buf, sizeof (buf), fp);
+ ACE_UNUSED_ARG (dummy);
+ dummy = ACE_OS::fgets (buf, sizeof (buf), fp);
+ ACE_UNUSED_ARG (dummy);
+
+ unsigned long iface_value = 0UL;
+ ACE_UINT32 iface_index = 0UL;
+
+ while (ACE_OS::fgets (buf, sizeof (buf), fp) != 0)
+ {
+ sscanf (buf, this->scan_format_.c_str (), &iface_value);
+ this->start_ += iface_value;
+
+ ++iface_index;
+ }
+
+ (void) ACE_OS::fclose (fp);
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* defined (ACE_LINUX) || defined (AIX) */
diff --git a/dep/acelite/ace/Monitor_Control/Linux_Network_Interface_Monitor.h b/dep/acelite/ace/Monitor_Control/Linux_Network_Interface_Monitor.h
new file mode 100644
index 00000000000..b2e5226008d
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Linux_Network_Interface_Monitor.h
@@ -0,0 +1,76 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Linux_Network_Interface_Monitor.h
+ *
+ * $Id: Linux_Network_Interface_Monitor.h 95533 2012-02-14 22:59:17Z wotte $
+ *
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef LINUX_NETWORK_INTERFACE_MONITOR_H
+#define LINUX_NETWORK_INTERFACE_MONITOR_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/SString.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Monitor_Control/Monitor_Control_export.h"
+
+#if defined (ACE_LINUX) || defined (AIX)
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ /**
+ * @class Linux_Network_Interface_Monitor
+ *
+ * @brief Mixin class for network interface monitors compiled on
+ * Linux machines.
+ */
+ class MONITOR_CONTROL_Export Linux_Network_Interface_Monitor
+ {
+ protected:
+ /// The Linux system file /proc/net/dev stores a wealth of
+ /// network information about the system. To get the specific
+ /// value we want to monitor, we just vary the scan format string.
+ Linux_Network_Interface_Monitor (const char *scan_format);
+
+ /// Platform-specific implementation.
+ void update_i (void);
+
+ /// Platform-specific reset.
+ void clear_impl (void);
+
+ protected:
+ ACE_UINT64 value_;
+
+ private:
+ /// Common code.
+ void init (void);
+
+ private:
+ static const unsigned long MAX_INTERFACES = 10UL;
+ ACE_UINT64 value_array_[MAX_INTERFACES];
+ ACE_UINT64 start_;
+ ACE_CString scan_format_;
+ };
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* defined (ACE_LINUX) || defined (AIX) */
+
+#include /**/ "ace/post.h"
+
+#endif // LINUX_NETWORK_INTERFACE_MONITOR_H
diff --git a/dep/acelite/ace/Monitor_Control/Memory_Usage_Monitor.cpp b/dep/acelite/ace/Monitor_Control/Memory_Usage_Monitor.cpp
new file mode 100644
index 00000000000..cc8a2c769a3
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Memory_Usage_Monitor.cpp
@@ -0,0 +1,78 @@
+// $Id: Memory_Usage_Monitor.cpp 91813 2010-09-17 07:52:52Z johnnyw $
+
+#if defined (ACE_HAS_KSTAT)
+#include <sys/sysinfo.h>
+#endif
+
+#include "ace/Monitor_Control/Memory_Usage_Monitor.h"
+
+#if defined (ACE_HAS_MONITOR_FRAMEWORK) && (ACE_HAS_MONITOR_FRAMEWORK == 1)
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ const char* Memory_Usage_Monitor::default_name_ =
+ "OS/Memory/TotalUsage";
+
+ Memory_Usage_Monitor::Memory_Usage_Monitor (const char* name)
+ : Monitor_Base (name, Monitor_Control_Types::MC_NUMBER)
+#if defined (ACE_HAS_WIN32_PDH)
+ , Windows_Monitor (ACE_TEXT ("\\Memory\\% Committed Bytes In Use"))
+#endif
+ {
+ }
+
+ void
+ Memory_Usage_Monitor::update (void)
+ {
+#if defined (ACE_HAS_WIN32_PDH)
+ this->update_i ();
+ this->receive (this->value_);
+#elif defined (ACE_HAS_LINUX_SYSINFO)
+ if (::sysinfo (&this->sysinfo_) != 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Memory usage - sysinfo() failed\n")));
+ return;
+ }
+
+ double used_ram = this->sysinfo_.totalram - this->sysinfo_.freeram;
+ double percent_mem_usage = used_ram / this->sysinfo_.totalram * 100.0;
+
+ this->receive (percent_mem_usage);
+#elif defined (ACE_HAS_KSTAT)
+ unsigned long page_size = sysconf (_SC_PAGE_SIZE);
+ unsigned long total = sysconf (_SC_PHYS_PAGES) * page_size;
+ unsigned long free = sysconf (_SC_AVPHYS_PAGES) * page_size;
+
+ double used = total - free;
+ double percent_mem_usage = used / total * 100.0;
+
+ this->receive (percent_mem_usage);
+#endif
+ }
+
+ const char*
+ Memory_Usage_Monitor::default_name (void)
+ {
+ return Memory_Usage_Monitor::default_name_;
+ }
+
+ void
+ Memory_Usage_Monitor::clear_i (void)
+ {
+#if defined (ACE_HAS_WIN32_PDH)
+ this->clear_impl ();
+#endif
+
+ this->Monitor_Base::clear_i ();
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
diff --git a/dep/acelite/ace/Monitor_Control/Memory_Usage_Monitor.h b/dep/acelite/ace/Monitor_Control/Memory_Usage_Monitor.h
new file mode 100644
index 00000000000..7da7f531ff8
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Memory_Usage_Monitor.h
@@ -0,0 +1,80 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Memory_Usage_Monitor.h
+ *
+ * $Id: Memory_Usage_Monitor.h 91743 2010-09-13 18:24:51Z johnnyw $
+ *
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef MEMORY_USAGE_MONITOR_H
+#define MEMORY_USAGE_MONITOR_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/Monitor_Base.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#if defined (ACE_HAS_MONITOR_FRAMEWORK) && (ACE_HAS_MONITOR_FRAMEWORK == 1)
+
+#if defined (ACE_HAS_PDH_H) && !defined (ACE_LACKS_PDH_H)
+#include "ace/Monitor_Control/Windows_Monitor.h"
+#elif defined (ACE_HAS_LINUX_SYSINFO)
+#include "ace/os_include/sys/os_sysinfo.h"
+#endif
+
+#include "ace/Monitor_Control/Monitor_Control_export.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ /**
+ * @class Memory_Usage_Monitor
+ *
+ * @brief Monitor percentage of total available memory used.
+ */
+ class MONITOR_CONTROL_Export Memory_Usage_Monitor
+ : public Monitor_Base
+#if defined (ACE_HAS_WIN32_PDH)
+ , public Windows_Monitor
+#endif
+ {
+ public:
+ Memory_Usage_Monitor (const char* name);
+
+ /// Implementation of the pure virtual method.
+ virtual void update (void);
+
+ /// Stores the default name, used if none is supplied by the user.
+ static const char* default_name (void);
+
+ private:
+ /// Overridden reset, calls platform-specific reset.
+ virtual void clear_i (void);
+
+ private:
+ static const char* default_name_;
+
+#if defined (ACE_HAS_LINUX_SYSINFO)
+ struct sysinfo sysinfo_;
+#endif
+ };
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
+
+#include /**/ "ace/post.h"
+
+#endif // MEMORY_USAGE_MONITOR_H
diff --git a/dep/acelite/ace/Monitor_Control/Monitor_Control.h b/dep/acelite/ace/Monitor_Control/Monitor_Control.h
new file mode 100644
index 00000000000..482e0662a8b
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Monitor_Control.h
@@ -0,0 +1,46 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Monitor_Control.h
+ *
+ * $Id: Monitor_Control.h 81753 2008-05-21 19:02:47Z parsons $
+ *
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef MONITOR_CONTROL_H
+#define MONITOR_CONTROL_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/Monitor_Point_Registry.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#if defined (ACE_HAS_MONITOR_FRAMEWORK) && (ACE_HAS_MONITOR_FRAMEWORK == 1)
+
+#include "ace/Monitor_Admin_Manager.h"
+
+#include "ace/Monitor_Control/CPU_Load_Monitor.h"
+#include "ace/Monitor_Control/Memory_Usage_Monitor.h"
+#include "ace/Monitor_Control/Num_Threads_Monitor.h"
+#include "ace/Monitor_Control/Bytes_Sent_Monitor.h"
+#include "ace/Monitor_Control/Packets_Sent_Monitor.h"
+#include "ace/Monitor_Control/Bytes_Received_Monitor.h"
+#include "ace/Monitor_Control/Packets_Received_Monitor.h"
+#include "ace/Monitor_Control/Monitor_Group.h"
+#include "ace/Monitor_Control/Monitor_Query.h"
+#include "ace/Monitor_Control/Monitor_Control_utils.h"
+
+static int
+ACE_Requires_MC_Initializer = MC_ADMINMANAGER::Initializer ();
+
+#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
+
+#include /**/ "ace/post.h"
+
+#endif // MONITOR_CONTROL_H
diff --git a/dep/acelite/ace/Monitor_Control/Monitor_Control_export.h b/dep/acelite/ace/Monitor_Control/Monitor_Control_export.h
new file mode 100644
index 00000000000..2cae021033e
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Monitor_Control_export.h
@@ -0,0 +1,49 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Monitor_Control_export.h
+ *
+ * $Id: Monitor_Control_export.h 81753 2008-05-21 19:02:47Z parsons $
+ *
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl
+// ------------------------------
+#ifndef MONITOR_CONTROL_EXPORT_H
+#define MONITOR_CONTROL_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS)
+# if !defined (MONITOR_CONTROL_HAS_DLL)
+# define MONITOR_CONTROL_HAS_DLL 0
+# endif /* ! MONITOR_CONTROL_HAS_DLL */
+#else
+# if !defined (MONITOR_CONTROL_HAS_DLL)
+# define MONITOR_CONTROL_HAS_DLL 1
+# endif /* ! MONITOR_CONTROL_HAS_DLL */
+#endif /* ACE_AS_STATIC_LIB */
+
+#if defined (MONITOR_CONTROL_HAS_DLL) && (MONITOR_CONTROL_HAS_DLL == 1)
+# if defined (MONITOR_CONTROL_BUILD_DLL)
+# define MONITOR_CONTROL_Export ACE_Proper_Export_Flag
+# define MONITOR_CONTROL_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define MONITOR_CONTROL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* MONITOR_CONTROL_BUILD_DLL */
+# define MONITOR_CONTROL_Export ACE_Proper_Import_Flag
+# define MONITOR_CONTROL_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define MONITOR_CONTROL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* MONITOR_CONTROL_BUILD_DLL */
+#else /* MONITOR_CONTROL_HAS_DLL == 1 */
+# define MONITOR_CONTROL_Export
+# define MONITOR_CONTROL_SINGLETON_DECLARATION(T)
+# define MONITOR_CONTROL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* MONITOR_CONTROL_HAS_DLL == 1 */
+
+#endif /* MONITOR_CONTROL_EXPORT_H */
+
+// End of auto generated file.
diff --git a/dep/acelite/ace/Monitor_Control/Monitor_Control_utils.h b/dep/acelite/ace/Monitor_Control/Monitor_Control_utils.h
new file mode 100644
index 00000000000..d0d21c0f5a9
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Monitor_Control_utils.h
@@ -0,0 +1,92 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Monitor_Control_utils.h
+ *
+ * $Id: Monitor_Control_utils.h 81753 2008-05-21 19:02:47Z parsons $
+ *
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef MONITOR_CONTROL_UTILS_H
+#define MONITOR_CONTROL_UTILS_H
+
+#include /**/ "ace/pre.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#if defined (ACE_HAS_MONITOR_FRAMEWORK) && (ACE_HAS_MONITOR_FRAMEWORK == 1)
+
+#include "ace/Service_Config.h"
+#include "ace/Dynamic_Service.h"
+#include "ace/Reactor.h"
+
+#include "ace/Monitor_Control/Auto_Update_Starter.h"
+
+typedef ACE_VERSIONED_NAMESPACE_NAME::ACE::Monitor_Control::CPU_Load_Monitor
+ CPU_LOAD_MONITOR;
+typedef ACE_VERSIONED_NAMESPACE_NAME::ACE::Monitor_Control::Memory_Usage_Monitor
+ MEMORY_USAGE_MONITOR;
+typedef ACE_VERSIONED_NAMESPACE_NAME::ACE::Monitor_Control::Num_Threads_Monitor
+ NUM_THREADS_MONITOR;
+typedef ACE_VERSIONED_NAMESPACE_NAME::ACE::Monitor_Control::Bytes_Sent_Monitor
+ BYTES_SENT_MONITOR;
+typedef ACE_VERSIONED_NAMESPACE_NAME::ACE::Monitor_Control::Packets_Sent_Monitor
+ PACKETS_SENT_MONITOR;
+typedef ACE_VERSIONED_NAMESPACE_NAME::ACE::Monitor_Control::Bytes_Received_Monitor
+ BYTES_RECEIVED_MONITOR;
+typedef ACE_VERSIONED_NAMESPACE_NAME::ACE::Monitor_Control::Packets_Received_Monitor
+ PACKETS_RECEIVED_MONITOR;
+
+using namespace ACE_VERSIONED_NAMESPACE_NAME::ACE::Monitor_Control;
+
+template<typename OS_MP_TYPE>
+Monitor_Base*
+create_os_monitor (const char* name = 0,
+ ACE_Time_Value period = ACE_Time_Value::zero)
+{
+ Monitor_Base* retval = 0;
+
+ ACE_VERSIONED_NAMESPACE_NAME::MC_ADMINMANAGER *mgr =
+ ACE_VERSIONED_NAMESPACE_NAME::ACE_Dynamic_Service<
+ ACE_VERSIONED_NAMESPACE_NAME::MC_ADMINMANAGER>::instance (
+ "MC_ADMINMANAGER");
+
+ const char* working_name =
+ (name == 0 ? OS_MP_TYPE::default_name () : name);
+
+ retval = mgr->admin ().monitor_point (working_name);
+
+ if (retval == 0)
+ {
+ ACE_NEW_RETURN (retval, OS_MP_TYPE (working_name), 0);
+ (void) mgr->admin ().monitor_point (retval, period);
+ }
+
+ return retval;
+}
+
+#define START_PERIODIC_MONITORS \
+ ACE_VERSIONED_NAMESPACE_NAME::STARTER starter; \
+ starter.activate ()
+
+#define STOP_PERIODIC_MONITORS \
+ ACE_VERSIONED_NAMESPACE_NAME::ACE_Dynamic_Service< \
+ ACE_VERSIONED_NAMESPACE_NAME::MC_ADMINMANAGER>::instance ( \
+ "MC_ADMINMANAGER")->admin ().reactor ()->end_reactor_event_loop (); \
+ ACE_VERSIONED_NAMESPACE_NAME::ACE_Thread_Manager::instance ()->wait ()
+
+#define ADD_PERIODIC_QUERY(HANDLER,QUERY,INTERVAL_SEC) \
+ ACE_VERSIONED_NAMESPACE_NAME::ACE_Dynamic_Service< \
+ ACE_VERSIONED_NAMESPACE_NAME::MC_ADMINMANAGER>::instance ( \
+ "MC_ADMINMANAGER")->admin ().auto_query (HANDLER, QUERY, INTERVAL_SEC)
+
+#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
+
+#include /**/ "ace/post.h"
+
+#endif // MONITOR_CONTROL_UTILS_H
diff --git a/dep/acelite/ace/Monitor_Control/Monitor_Group.cpp b/dep/acelite/ace/Monitor_Control/Monitor_Group.cpp
new file mode 100644
index 00000000000..1d6a497654a
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Monitor_Group.cpp
@@ -0,0 +1,67 @@
+// $Id: Monitor_Group.cpp 93390 2011-02-15 14:44:58Z johnnyw $
+
+#include "ace/Monitor_Control/Monitor_Group.h"
+
+#if defined (ACE_HAS_MONITOR_FRAMEWORK) && (ACE_HAS_MONITOR_FRAMEWORK == 1)
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ Monitor_Group::Monitor_Group (const char* name)
+ : Monitor_Base (name, Monitor_Control_Types::MC_GROUP)
+ {}
+
+ void
+ Monitor_Group::add_member (Monitor_Base* member)
+ {
+ this->members_.enqueue_tail (member);
+ }
+
+ void
+ Monitor_Group::update (void)
+ {
+ for (MEMBERS_ITERATOR i (this->members_); !i.done (); i.advance ())
+ {
+ Monitor_Base **member;
+ i.next (member);
+ (*member)->update ();
+ }
+ }
+
+ void
+ Monitor_Group::receive (double /* data */)
+ {
+ /// No-op, should always call update().
+ }
+
+ void
+ Monitor_Group::receive (size_t /* data */)
+ {
+ /// No-op, should always call update().
+ }
+
+ void
+ Monitor_Group::receive (const Monitor_Control_Types::NameList& /* data */)
+ {
+ /// No-op, should always call update().
+ }
+
+ void
+ Monitor_Group::clear (void)
+ {
+ for (MEMBERS_ITERATOR i (this->members_); !i.done (); i.advance ())
+ {
+ Monitor_Base **member = 0;
+ i.next (member);
+ (*member)->clear ();
+ }
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
diff --git a/dep/acelite/ace/Monitor_Control/Monitor_Group.h b/dep/acelite/ace/Monitor_Control/Monitor_Group.h
new file mode 100644
index 00000000000..99eb7d6753e
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Monitor_Group.h
@@ -0,0 +1,72 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Monitor_Group.h
+ *
+ * $Id: Monitor_Group.h 91743 2010-09-13 18:24:51Z johnnyw $
+ *
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef MONITOR_GROUP_H
+#define MONITOR_GROUP_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/Monitor_Base.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#if defined (ACE_HAS_MONITOR_FRAMEWORK) && (ACE_HAS_MONITOR_FRAMEWORK == 1)
+
+#include "ace/Monitor_Control/Monitor_Control_export.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ /**
+ * @class Monitor_Group
+ *
+ * @brief Updates and/or clears a group of monitors with a single call.
+ */
+ class MONITOR_CONTROL_Export Monitor_Group : public Monitor_Base
+ {
+ public:
+ Monitor_Group (const char* name);
+
+ void add_member (Monitor_Base* member);
+
+ virtual void update (void);
+
+ /// These are overridden to be no-ops.
+ virtual void receive (double data);
+ virtual void receive (size_t data);
+ virtual void receive (const Monitor_Control_Types::NameList& data);
+
+ virtual void clear (void);
+
+ private:
+ typedef ACE_Unbounded_Queue<Monitor_Base *>
+ MEMBERS;
+ typedef ACE_Unbounded_Queue_Const_Iterator<Monitor_Base *>
+ MEMBERS_ITERATOR;
+
+ MEMBERS members_;
+ };
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
+
+#include /**/ "ace/post.h"
+
+#endif // MONITOR_GROUP_H
diff --git a/dep/acelite/ace/Monitor_Control/Monitor_Query.cpp b/dep/acelite/ace/Monitor_Control/Monitor_Query.cpp
new file mode 100644
index 00000000000..f37b3290f24
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Monitor_Query.cpp
@@ -0,0 +1,82 @@
+// $Id: Monitor_Query.cpp 86518 2009-08-18 12:30:56Z olli $
+
+#include "ace/Monitor_Point_Registry.h"
+#include "ace/Monitor_Base.h"
+#include "ace/Monitor_Control_Action.h"
+
+#include "ace/Monitor_Control/Monitor_Query.h"
+#include "ace/Monitor_Control/Constraint_Interpreter.h"
+#include "ace/Monitor_Control/Constraint_Visitor.h"
+
+#if defined (ACE_HAS_MONITOR_FRAMEWORK) && (ACE_HAS_MONITOR_FRAMEWORK == 1)
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ int
+ Monitor_Point_Auto_Query::handle_timeout (
+ const ACE_Time_Value& /* current */,
+ const void* monitor_query)
+ {
+ const Monitor_Query* const_mq =
+ reinterpret_cast<const Monitor_Query*> (monitor_query);
+
+ Monitor_Query* mq = const_cast<Monitor_Query*> (const_mq);
+
+ mq->query ();
+
+ return 0;
+ }
+
+ //=========================================================
+
+ Monitor_Query::Monitor_Query (const char* monitor_name)
+ : monitor_ (0)
+ {
+ ACE_CString name_str (monitor_name, 0, false);
+ this->monitor_ = Monitor_Point_Registry::instance ()->get (name_str);
+
+ if (this->monitor_ == 0)
+ {
+ ACE_ERROR ((LM_ERROR, "Monitor_Query - monitor lookup failed\n"));
+ }
+ }
+
+ void
+ Monitor_Query::query (void)
+ {
+ if (this->monitor_ == 0)
+ {
+ ACE_ERROR ((LM_ERROR, "Monitor_Query::query - null monitor\n"));
+ return;
+ }
+
+ Monitor_Base::CONSTRAINTS& list = this->monitor_->constraints ();
+
+ for (Monitor_Base::CONSTRAINT_ITERATOR i (list.begin ());
+ i != list.end ();
+ ++i)
+ {
+ Constraint_Interpreter interpreter;
+ interpreter.build_tree (i->second.expr.fast_rep ());
+
+ Monitor_Control_Types::Data data (this->monitor_->type ());
+ this->monitor_->retrieve (data);
+ Constraint_Visitor visitor (data);
+ bool satisfied = interpreter.evaluate (visitor);
+
+ if (satisfied && i->second.control_action != 0)
+ {
+ i->second.control_action->execute ();
+ }
+ }
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
diff --git a/dep/acelite/ace/Monitor_Control/Monitor_Query.h b/dep/acelite/ace/Monitor_Control/Monitor_Query.h
new file mode 100644
index 00000000000..4f841bee372
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Monitor_Query.h
@@ -0,0 +1,75 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Monitor_Query.h
+ *
+ * $Id: Monitor_Query.h 81753 2008-05-21 19:02:47Z parsons $
+ *
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef MONITOR_QUERY_H
+#define MONITOR_QUERY_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_MONITOR_FRAMEWORK) && (ACE_HAS_MONITOR_FRAMEWORK == 1)
+
+#include "ace/Monitor_Control/Monitor_Control_export.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ /**
+ * @class Monitor_Point_Auto_Query
+ *
+ * @brief Automates periodic querying of monitor point classes.
+ *
+ */
+ class MONITOR_CONTROL_Export Monitor_Point_Auto_Query
+ : public ACE_Event_Handler
+ {
+ public:
+ /// Override of ACE base class method.
+ virtual int handle_timeout (const ACE_Time_Value& current,
+ const void* monitor_query);
+ };
+
+ /**
+ * @class Monitor_Query
+ *
+ * @brief Handles queries for a specific monitor point, and
+ * evaluates its constraint(s) with each query.
+ *
+ */
+ class MONITOR_CONTROL_Export Monitor_Query
+ {
+ public:
+ Monitor_Query (const char* monitor_name);
+
+ void query (void);
+
+ private:
+ Monitor_Base* monitor_;
+ };
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
+
+#include /**/ "ace/post.h"
+
+#endif // MONITOR_QUERY_H
diff --git a/dep/acelite/ace/Monitor_Control/Null_Network_Interface_Monitor.cpp b/dep/acelite/ace/Monitor_Control/Null_Network_Interface_Monitor.cpp
new file mode 100644
index 00000000000..6c902514086
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Null_Network_Interface_Monitor.cpp
@@ -0,0 +1,30 @@
+// $Id: Null_Network_Interface_Monitor.cpp 91813 2010-09-17 07:52:52Z johnnyw $
+
+#include "ace/Monitor_Control/Null_Network_Interface_Monitor.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ Null_Network_Interface_Monitor::Null_Network_Interface_Monitor (void)
+ : value_ (0UL)
+ {
+ }
+
+ void
+ Null_Network_Interface_Monitor::update_i (void)
+ {
+ /// No-op.
+ }
+
+ void
+ Null_Network_Interface_Monitor::clear_impl (void)
+ {
+ /// No-op.
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/Monitor_Control/Null_Network_Interface_Monitor.h b/dep/acelite/ace/Monitor_Control/Null_Network_Interface_Monitor.h
new file mode 100644
index 00000000000..9fa24196966
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Null_Network_Interface_Monitor.h
@@ -0,0 +1,61 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Null_Network_Interface_Monitor.h
+ *
+ * $Id: Null_Network_Interface_Monitor.h 91743 2010-09-13 18:24:51Z johnnyw $
+ *
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef NULL_NETWORK_INTERFACE_MONITOR_H
+#define NULL_NETWORK_INTERFACE_MONITOR_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/Basic_Types.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Monitor_Control/Monitor_Control_export.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ /**
+ * @class Null_Network_Interface_Monitor
+ *
+ * @brief Mixin class for network interface monitors compiled on
+ * platforms without any native OS monitor support, or on
+ a platform with such support when the platform-specific
+ OS monitor flag is not set.
+ */
+ class MONITOR_CONTROL_Export Null_Network_Interface_Monitor
+ {
+ protected:
+ Null_Network_Interface_Monitor (void);
+
+ /// Platform-specific implementation.
+ void update_i (void);
+
+ /// Platform-specific reset.
+ void clear_impl (void);
+
+ protected:
+ ACE_UINT64 value_;
+ };
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#include /**/ "ace/post.h"
+
+#endif // NULL_NETWORK_INTERFACE_MONITOR_H
diff --git a/dep/acelite/ace/Monitor_Control/Num_Threads_Monitor.cpp b/dep/acelite/ace/Monitor_Control/Num_Threads_Monitor.cpp
new file mode 100644
index 00000000000..8d21e7e45a5
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Num_Threads_Monitor.cpp
@@ -0,0 +1,96 @@
+// $Id: Num_Threads_Monitor.cpp 95533 2012-02-14 22:59:17Z wotte $
+
+#include "ace/Monitor_Control/Num_Threads_Monitor.h"
+
+#if defined (ACE_HAS_MONITOR_FRAMEWORK) && (ACE_HAS_MONITOR_FRAMEWORK == 1)
+
+#if defined (ACE_LINUX)
+#include "ace/OS_NS_stdio.h"
+#endif
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ const char* Num_Threads_Monitor::default_name_ =
+ "OS/System/NumThreads";
+
+ Num_Threads_Monitor::Num_Threads_Monitor (const char* name)
+ : Monitor_Base (name, Monitor_Control_Types::MC_NUMBER)
+#if defined (ACE_HAS_WIN32_PDH)
+ , Windows_Monitor (ACE_TEXT ("\\System\\Threads"))
+#elif defined (ACE_LINUX)
+ , file_ptr_ (0)
+ , nthreads_ (0UL)
+#endif
+ {
+ }
+
+ void
+ Num_Threads_Monitor::update (void)
+ {
+#if defined (ACE_HAS_WIN32_PDH)
+ this->update_i ();
+ this->receive (this->value_);
+#elif defined (ACE_LINUX)
+ this->file_ptr_ = ACE_OS::fopen (ACE_TEXT ("/proc/self/status"),
+ ACE_TEXT ("r"));
+
+ if (this->file_ptr_ == 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Num threads - opening ")
+ ACE_TEXT ("/proc/self/status failed\n")));
+ return;
+ }
+
+ char *item = 0;
+ char *arg = 0;
+
+ while ((ACE_OS::fgets (buf_, sizeof (buf_), file_ptr_)) != 0)
+ {
+ item = ACE_OS::strtok (this->buf_, " \t\n");
+ arg = ACE_OS::strtok (0, "\n");
+
+ if (item == 0 || arg == 0)
+ {
+ continue;
+ }
+
+ if (ACE_OS::strcmp (item, "Threads:") == 0)
+ {
+ sscanf (arg, "%lu", &this->nthreads_);
+ break;
+ }
+ }
+
+ /// Stores value and timestamp with thread-safety.
+ this->receive (static_cast<double> (this->nthreads_));
+
+ ACE_OS::fclose (this->file_ptr_);
+#endif
+ }
+
+ const char*
+ Num_Threads_Monitor::default_name (void)
+ {
+ return Num_Threads_Monitor::default_name_;
+ }
+
+ void
+ Num_Threads_Monitor::clear_i (void)
+ {
+#if defined (ACE_HAS_WIN32_PDH)
+ this->clear_impl ();
+#endif
+
+ this->Monitor_Base::clear_i ();
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
diff --git a/dep/acelite/ace/Monitor_Control/Num_Threads_Monitor.h b/dep/acelite/ace/Monitor_Control/Num_Threads_Monitor.h
new file mode 100644
index 00000000000..094df0b47e7
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Num_Threads_Monitor.h
@@ -0,0 +1,88 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Num_Threads_Monitor.h
+ *
+ * $Id: Num_Threads_Monitor.h 95533 2012-02-14 22:59:17Z wotte $
+ *
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef NUM_THREADS_MONITOR_H
+#define NUM_THREADS_MONITOR_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/Monitor_Base.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#if defined (ACE_HAS_MONITOR_FRAMEWORK) && (ACE_HAS_MONITOR_FRAMEWORK == 1)
+
+#if defined (ACE_HAS_PDH_H) && !defined (ACE_LACKS_PDH_H)
+#include "ace/Monitor_Control/Windows_Monitor.h"
+#elif defined (ACE_HAS_KSTAT)
+/// There is apparently no way to query the number of threads on the
+/// Solaris platform. The only benchmark I've seen had to put hooks
+/// in the thread creation functions to keep track of the highest
+/// thread ID, then check all the IDs less than that to see if the
+/// threads still exist. Since we don't have that option in this
+/// framework, which is to be used by existing applications, this
+/// particular OS monitor is left unimplemented on Solaris.
+#endif
+
+#include "ace/Monitor_Control/Monitor_Control_export.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ /**
+ * @class Num_Threads_Monitor
+ *
+ * @brief Monitor total number of threads in the system.
+ */
+ class MONITOR_CONTROL_Export Num_Threads_Monitor
+ : public Monitor_Base
+#if defined (ACE_HAS_WIN32_PDH)
+ , public Windows_Monitor
+#endif
+ {
+ public:
+ Num_Threads_Monitor (const char* name);
+
+ /// Implementation of the pure virtual method.
+ virtual void update (void);
+
+ /// Stores the default name, used if none is supplied by the user.
+ static const char* default_name (void);
+
+ private:
+ /// Overridden reset, calls platform-specific reset.
+ virtual void clear_i (void);
+
+ private:
+ static const char* default_name_;
+
+#if defined (ACE_LINUX)
+ FILE *file_ptr_;
+ char buf_[1024];
+ unsigned long nthreads_;
+#endif
+ };
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
+
+#include /**/ "ace/post.h"
+
+#endif // NUM_THREADS_MONITOR_H
diff --git a/dep/acelite/ace/Monitor_Control/Packets_Received_Monitor.cpp b/dep/acelite/ace/Monitor_Control/Packets_Received_Monitor.cpp
new file mode 100644
index 00000000000..960f32bda2e
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Packets_Received_Monitor.cpp
@@ -0,0 +1,60 @@
+// $Id: Packets_Received_Monitor.cpp 95533 2012-02-14 22:59:17Z wotte $
+
+#include "ace/Monitor_Control/Packets_Received_Monitor.h"
+
+#if defined (ACE_HAS_MONITOR_FRAMEWORK) && (ACE_HAS_MONITOR_FRAMEWORK == 1)
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ const char* Packets_Received_Monitor::default_name_ =
+ "OS/Network/PacketsReceived";
+
+ Packets_Received_Monitor::Packets_Received_Monitor (const char* name)
+ : Monitor_Base (name, Monitor_Control_Types::MC_NUMBER)
+#if defined (ACE_HAS_WIN32_PDH)
+ , Windows_Multi_Instance_Monitor (
+ ACE_TEXT ("\\Network Interface(*)\\Packets Received/sec"))
+#elif defined (ACE_LINUX) || defined (AIX)
+ , Linux_Network_Interface_Monitor (
+ " %*[^:]: %*u %lu %*u %*u %*u %*u %*u %*u %*u %*u")
+ /// Scan format for /proc/net/dev
+#elif defined (ACE_HAS_KSTAT)
+ , Solaris_Network_Interface_Monitor (ACE_TEXT ("ipackets"))
+#elif defined (__FreeBSD__) || defined (__Lynx__)
+ , FreeBSD_Network_Interface_Monitor (ACE_TEXT ("ipackets"))
+#elif defined (__NetBSD__) || defined (__OpenBSD__)
+ , BSD_Network_Interface_Monitor (ACE_TEXT ("ipackets"))
+#endif
+ {}
+
+ void
+ Packets_Received_Monitor::update (void)
+ {
+ this->update_i ();
+
+ /// On some platforms, value_ is an ACE_UINT64.
+ this->receive (static_cast<double> (this->value_));
+ }
+
+ const char*
+ Packets_Received_Monitor::default_name (void)
+ {
+ return Packets_Received_Monitor::default_name_;
+ }
+
+ void
+ Packets_Received_Monitor::clear_i (void)
+ {
+ this->clear_impl ();
+ this->Monitor_Base::clear_i ();
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
diff --git a/dep/acelite/ace/Monitor_Control/Packets_Received_Monitor.h b/dep/acelite/ace/Monitor_Control/Packets_Received_Monitor.h
new file mode 100644
index 00000000000..64aeef971a0
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Packets_Received_Monitor.h
@@ -0,0 +1,94 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Packets_Received_Monitor.h
+ *
+ * $Id: Packets_Received_Monitor.h 95533 2012-02-14 22:59:17Z wotte $
+ *
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef PACKETS_RECEIVED_MONITOR_H
+#define PACKETS_RECEIVED_MONITOR_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/Monitor_Base.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#if defined (ACE_HAS_MONITOR_FRAMEWORK) && (ACE_HAS_MONITOR_FRAMEWORK == 1)
+
+#if defined (ACE_HAS_PDH_H) && !defined (ACE_LACKS_PDH_H)
+#include "ace/Monitor_Control/Windows_Multi_Instance_Monitor.h"
+#elif defined (ACE_LINUX) || defined (AIX)
+#include "ace/Monitor_Control/Linux_Network_Interface_Monitor.h"
+#elif defined (ACE_HAS_KSTAT)
+#include "ace/Monitor_Control/Solaris_Network_Interface_Monitor.h"
+#elif defined (__FreeBSD__) || defined (__Lynx__)
+#include "ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.h"
+#elif defined (__NetBSD__) || defined (__OpenBSD__)
+#include "ace/Monitor_Control/BSD_Network_Interface_Monitor.h"
+#else
+#include "ace/Monitor_Control/Null_Network_Interface_Monitor.h"
+#endif
+
+#include "ace/Monitor_Control/Monitor_Control_export.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ /**
+ * @class Packets_Received_Monitor
+ *
+ * @brief Monitors total packets received over all network interfaces.
+ */
+ class MONITOR_CONTROL_Export Packets_Received_Monitor
+ : public Monitor_Base
+#if defined (ACE_HAS_WIN32_PDH)
+ , public Windows_Multi_Instance_Monitor
+#elif defined (ACE_LINUX) || defined (AIX)
+ , public Linux_Network_Interface_Monitor
+#elif defined (ACE_HAS_KSTAT)
+ , public Solaris_Network_Interface_Monitor
+#elif defined (__NetBSD__) || defined (__OpenBSD__)
+ , public BSD_Network_Interface_Monitor
+#elif defined (__FreeBSD__) || defined (__Lynx__)
+ , public FreeBSD_Network_Interface_Monitor
+#else
+ , public Null_Network_Interface_Monitor
+#endif
+ {
+ public:
+ Packets_Received_Monitor (const char* name);
+
+ /// Implementation of the pure virtual method.
+ virtual void update (void);
+
+ /// Stores the default name, used if none is supplied by the user.
+ static const char* default_name (void);
+
+ private:
+ /// Overridden reset, calls platform-specific reset.
+ virtual void clear_i (void);
+
+ private:
+ static const char* default_name_;
+ };
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
+
+#include /**/ "ace/post.h"
+
+#endif // PACKETS_RECEIVED_MONITOR_H
diff --git a/dep/acelite/ace/Monitor_Control/Packets_Sent_Monitor.cpp b/dep/acelite/ace/Monitor_Control/Packets_Sent_Monitor.cpp
new file mode 100644
index 00000000000..0e6ead400ad
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Packets_Sent_Monitor.cpp
@@ -0,0 +1,60 @@
+// $Id: Packets_Sent_Monitor.cpp 95533 2012-02-14 22:59:17Z wotte $
+
+#include "ace/Monitor_Control/Packets_Sent_Monitor.h"
+
+#if defined (ACE_HAS_MONITOR_FRAMEWORK) && (ACE_HAS_MONITOR_FRAMEWORK == 1)
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ const char* Packets_Sent_Monitor::default_name_ =
+ "OS/Network/PacketsSent";
+
+ Packets_Sent_Monitor::Packets_Sent_Monitor (const char* name)
+ : Monitor_Base (name, Monitor_Control_Types::MC_NUMBER)
+#if defined (ACE_HAS_WIN32_PDH)
+ , Windows_Multi_Instance_Monitor (
+ ACE_TEXT ("\\Network Interface(*)\\Packets Sent/sec"))
+#elif defined (ACE_LINUX) || defined (AIX)
+ , Linux_Network_Interface_Monitor (
+ " %*[^:]: %*u %*u %*u %*u %*u %*u %*u %*u %*u %lu")
+ /// Scan format for /proc/net/dev
+#elif defined (ACE_HAS_KSTAT)
+ , Solaris_Network_Interface_Monitor (ACE_TEXT ("opackets"))
+#elif defined (__NetBSD__) || defined (__OpenBSD__)
+ , BSD_Network_Interface_Monitor (ACE_TEXT ("opackets"))
+#elif defined (__FreeBSD__) || defined (__Lynx__)
+ , FreeBSD_Network_Interface_Monitor (ACE_TEXT ("opackets"))
+#endif
+ {}
+
+ void
+ Packets_Sent_Monitor::update (void)
+ {
+ this->update_i ();
+
+ /// On some platforms, value_ is an ACE_UINT64.
+ this->receive (static_cast<double> (this->value_));
+ }
+
+ const char*
+ Packets_Sent_Monitor::default_name (void)
+ {
+ return Packets_Sent_Monitor::default_name_;
+ }
+
+ void
+ Packets_Sent_Monitor::clear_i (void)
+ {
+ this->clear_impl ();
+ this->Monitor_Base::clear_i ();
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
diff --git a/dep/acelite/ace/Monitor_Control/Packets_Sent_Monitor.h b/dep/acelite/ace/Monitor_Control/Packets_Sent_Monitor.h
new file mode 100644
index 00000000000..bccea8f896e
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Packets_Sent_Monitor.h
@@ -0,0 +1,94 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Packets_Sent_Monitor.h
+ *
+ * $Id: Packets_Sent_Monitor.h 95533 2012-02-14 22:59:17Z wotte $
+ *
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef PACKETS_SENT_MONITOR_H
+#define PACKETS_SENT_MONITOR_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/Monitor_Base.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#if defined (ACE_HAS_MONITOR_FRAMEWORK) && (ACE_HAS_MONITOR_FRAMEWORK == 1)
+
+#if defined (ACE_HAS_PDH_H) && !defined (ACE_LACKS_PDH_H)
+#include "ace/Monitor_Control/Windows_Multi_Instance_Monitor.h"
+#elif defined (ACE_LINUX) || defined (AIX)
+#include "ace/Monitor_Control/Linux_Network_Interface_Monitor.h"
+#elif defined (ACE_HAS_KSTAT)
+#include "ace/Monitor_Control/Solaris_Network_Interface_Monitor.h"
+#elif defined (__FreeBSD__) || defined (__Lynx__)
+#include "ace/Monitor_Control/FreeBSD_Network_Interface_Monitor.h"
+#elif defined (__NetBSD__) || defined (__OpenBSD__)
+#include "ace/Monitor_Control/BSD_Network_Interface_Monitor.h"
+#else
+#include "ace/Monitor_Control/Null_Network_Interface_Monitor.h"
+#endif
+
+#include "ace/Monitor_Control/Monitor_Control_export.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ /**
+ * @class Packets_Sent_Monitor
+ *
+ * @brief Monitors total packets sent over all network interfaces.
+ */
+ class MONITOR_CONTROL_Export Packets_Sent_Monitor
+ : public Monitor_Base
+#if defined (ACE_HAS_WIN32_PDH)
+ , public Windows_Multi_Instance_Monitor
+#elif defined (ACE_LINUX) || defined (AIX)
+ , public Linux_Network_Interface_Monitor
+#elif defined (ACE_HAS_KSTAT)
+ , public Solaris_Network_Interface_Monitor
+#elif defined (__NetBSD__) || defined (__OpenBSD__)
+ , public BSD_Network_Interface_Monitor
+#elif defined (__FreeBSD__) || defined (__Lynx__)
+ , public FreeBSD_Network_Interface_Monitor
+#else
+ , public Null_Network_Interface_Monitor
+#endif
+ {
+ public:
+ Packets_Sent_Monitor (const char* name);
+
+ /// Implementation of the pure virtual method.
+ virtual void update (void);
+
+ /// Stores the default name, used if none is supplied by the user.
+ static const char* default_name (void);
+
+ private:
+ /// Overridden reset, calls platform-specific reset.
+ virtual void clear_i (void);
+
+ private:
+ static const char* default_name_;
+ };
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_HAS_MONITOR_FRAMEWORK==1 */
+
+#include /**/ "ace/post.h"
+
+#endif // PACKETS_SENT_MONITOR_H
diff --git a/dep/acelite/ace/Monitor_Control/Solaris_Network_Interface_Monitor.cpp b/dep/acelite/ace/Monitor_Control/Solaris_Network_Interface_Monitor.cpp
new file mode 100644
index 00000000000..63ec6b74739
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Solaris_Network_Interface_Monitor.cpp
@@ -0,0 +1,223 @@
+// $Id: Solaris_Network_Interface_Monitor.cpp 91813 2010-09-17 07:52:52Z johnnyw $
+
+#include "ace/Monitor_Control/Solaris_Network_Interface_Monitor.h"
+
+#if defined (ACE_HAS_KSTAT)
+
+#include "ace/Log_Msg.h"
+#include "ace/OS_NS_stdio.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ Solaris_Network_Interface_Monitor::Solaris_Network_Interface_Monitor (
+ const ACE_TCHAR *lookup_str)
+ : value_ (0UL),
+ start_ (0UL),
+ lookup_str_ (lookup_str)
+ {
+ this->init ();
+ }
+
+ void
+ Solaris_Network_Interface_Monitor::update_i (void)
+ {
+ this->access_kstats (this->value_);
+ this->value_ -= this->start_;
+ }
+
+ void
+ Solaris_Network_Interface_Monitor::clear_impl (void)
+ {
+ this->init ();
+ }
+
+ void
+ Solaris_Network_Interface_Monitor::init (void)
+ {
+ unsigned long i;
+
+ for (i = 0UL; i < MAX_LO_INTERFACES; ++i)
+ {
+ this->value_array_lo_[i] = 0UL;
+ }
+
+ for (i = 0UL; i < MAX_HME_INTERFACES; ++i)
+ {
+ this->value_array_hme_[i] = 0UL;
+ }
+
+ this->access_kstats (this->start_);
+ }
+
+ void
+ Solaris_Network_Interface_Monitor::access_kstats (
+ ACE_UINT64 &which_member)
+ {
+ this->kstats_ = kstat_open ();
+
+ if (this->kstats_ == 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("opening kstats file failed\n")));
+ return;
+ }
+
+ this->kstat_id_ = this->kstats_->kc_chain_id;
+ int status = 0;
+
+ while (true)
+ {
+ /// We have to sum the network interfaces manually.
+ for (this->kstat_ = this->kstats_->kc_chain;
+ this->kstat_ != 0;
+ this->kstat_ = this->kstat_->ks_next)
+ {
+ if (ACE_OS::strcmp (this->kstat_->ks_class, "net") != 0)
+ {
+ continue;
+ }
+
+ unsigned long ks_instance = this->kstat_->ks_instance;
+
+ if (ACE_OS::strcmp (this->kstat_->ks_module, "lo") == 0)
+ {
+ /// Interfaces 'lo' have only packet counters.
+ if (this->lookup_str_ == ACE_TEXT ("obytes")
+ || this->lookup_str_ == ACE_TEXT ("rbytes"))
+ {
+ continue;
+ }
+
+ status = this->check_ks_module (ks_instance,
+ MAX_LO_INTERFACES,
+ "MAX_LO_INTERFACES",
+ this->value_array_lo_,
+ which_member);
+
+ if (status == -1)
+ {
+ /// Unrecoverable error, diagnostic already output.
+ (void) kstat_close (this->kstats_);
+ return;
+ }
+ else if (status == 1)
+ {
+ /// The kstat_id changed underneath us, start over.
+ break;
+ }
+ }
+ else if (ACE_OS::strcmp (this->kstat_->ks_module, "hme") == 0
+ || ACE_OS::strcmp (this->kstat_->ks_module, "bge") == 0)
+ {
+ status = this->check_ks_module (ks_instance,
+ MAX_HME_INTERFACES,
+ "MAX_HME_INTERFACES",
+ this->value_array_hme_,
+ which_member);
+
+ if (status == -1)
+ {
+ /// Unrecoverable error, diagnostic already output.
+ (void) kstat_close (this->kstats_);
+ return;
+ }
+ else if (status == 1)
+ {
+ /// The kstat_id changed underneath us, start over.
+ break;
+ }
+ }
+ }
+
+ if (this->kstat_)
+ {
+ this->kstat_id_ = kstat_chain_update (this->kstats_);
+
+ if (! this->kstat_id_ > 0)
+ {
+ ACE_ERROR ((LM_ERROR, "kstat is is not > 0.\n"));
+ break;
+ }
+ }
+ else
+ {
+ break;
+ }
+ }
+
+ status = kstat_close (this->kstats_);
+
+ if (status != 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("closing kstats file failed\n")));
+ }
+ }
+
+ int
+ Solaris_Network_Interface_Monitor::check_ks_module (
+ const unsigned long ks_instance,
+ const unsigned long which_max,
+ const char *max_str,
+ ACE_UINT64 *value_array,
+ ACE_UINT64 &which_member)
+ {
+ if (! (ks_instance < which_max))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "%s exceeded.\n",
+ max_str),
+ -1);
+ }
+
+ /// Because the kstat chain can change dynamically,
+ /// watch the chain ID and restart the walk if the ID
+ /// differs from what we saw during the walk. The restart
+ /// is done by breaking from the cycle with kstat_ not 0.
+
+ kid_t kstat_id =
+ kstat_read (this->kstats_, this->kstat_, 0);
+
+ if (kstat_id != this->kstat_id_)
+ {
+ /// This return value restarts the walk as described above.
+ return 1;
+ }
+
+ kstat_named_t *value =
+ (kstat_named_t *) kstat_data_lookup (
+ this->kstat_,
+ ACE_TEXT_ALWAYS_CHAR (this->lookup_str_.rep ()));
+
+ if (value == 0)
+ {
+ /// Just return and let the calling FOR loop advance.
+ return 0;
+ }
+
+ if (value->data_type != KSTAT_DATA_UINT32)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Wrong data type.\n"),
+ -1);
+ }
+
+ /// Guard against overflow.
+ value_array[ks_instance] +=
+ value->value.ui32
+ - static_cast<ACE_UINT32> (value_array[ks_instance]);
+
+ which_member += value_array[ks_instance];
+
+ return 0;
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* defined (ACE_HAS_KSTAT) */
diff --git a/dep/acelite/ace/Monitor_Control/Solaris_Network_Interface_Monitor.h b/dep/acelite/ace/Monitor_Control/Solaris_Network_Interface_Monitor.h
new file mode 100644
index 00000000000..98ce5a67d2c
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Solaris_Network_Interface_Monitor.h
@@ -0,0 +1,91 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Solaris_Network_Interface_Monitor.h
+ *
+ * $Id: Solaris_Network_Interface_Monitor.h 91743 2010-09-13 18:24:51Z johnnyw $
+ *
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef SOLARIS_NETWORK_INTERFACE_MONITOR_H
+#define SOLARIS_NETWORK_INTERFACE_MONITOR_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/SString.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Monitor_Control/Monitor_Control_export.h"
+
+#if defined (ACE_HAS_KSTAT)
+
+#include "ace/os_include/os_kstat.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ /**
+ * @class Solaris_Network_Interface_Monitor
+ *
+ * @brief Mixin class for network interface monitors compiled on
+ * Solaris machines.
+ */
+ class MONITOR_CONTROL_Export Solaris_Network_Interface_Monitor
+ {
+ protected:
+ /// The kstat interface can access a wealth of
+ /// network information about the system. To get the specific
+ /// value we want to monitor, we just vary the lookup string.
+ Solaris_Network_Interface_Monitor (const ACE_TCHAR *lookup_str);
+
+ /// Platform-specific implementation.
+ void update_i (void);
+
+ /// Platform-specific reset.
+ void clear_impl (void);
+
+ protected:
+ ACE_UINT64 value_;
+
+ private:
+ /// Common code.
+
+ void init (void);
+ void access_kstats (ACE_UINT64 &which_member);
+ int check_ks_module (const unsigned long ks_instance,
+ const unsigned long which_max,
+ const char *max_str,
+ ACE_UINT64 *value_array,
+ ACE_UINT64 &which_member);
+
+
+ private:
+ static const unsigned long MAX_LO_INTERFACES = 5UL;
+ static const unsigned long MAX_HME_INTERFACES = 10UL;
+ ACE_UINT64 value_array_lo_[MAX_LO_INTERFACES];
+ ACE_UINT64 value_array_hme_[MAX_HME_INTERFACES];
+ ACE_UINT64 start_;
+ ACE_TString lookup_str_;
+ kstat_ctl_t *kstats_;
+ kstat_t *kstat_;
+ kid_t kstat_id_;
+ };
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* defined (ACE_HAS_KSTAT) */
+
+#include /**/ "ace/post.h"
+
+#endif // SOLARIS_NETWORK_INTERFACE_MONITOR_H
diff --git a/dep/acelite/ace/Monitor_Control/Windows_Monitor.cpp b/dep/acelite/ace/Monitor_Control/Windows_Monitor.cpp
new file mode 100644
index 00000000000..a3883ece639
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Windows_Monitor.cpp
@@ -0,0 +1,76 @@
+// $Id: Windows_Monitor.cpp 91813 2010-09-17 07:52:52Z johnnyw $
+
+#include "ace/Monitor_Control/Windows_Monitor.h"
+
+#if defined (ACE_HAS_WIN32_PDH)
+
+#include "ace/Log_Msg.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ Windows_Monitor::Windows_Monitor (const ACE_TCHAR *path)
+ : value_ (0.0)
+ , path_ (path)
+ , query_ (0)
+ , counter_ (0)
+ , status_ (ERROR_SUCCESS)
+ {
+ this->init ();
+ }
+
+ void
+ Windows_Monitor::update_i (void)
+ {
+ PdhCollectQueryData (this->query_);
+ PDH_FMT_COUNTERVALUE pdh_value;
+
+ PdhGetFormattedCounterValue (this->counter_,
+ PDH_FMT_DOUBLE,
+ 0,
+ &pdh_value);
+
+ this->value_ = pdh_value.doubleValue;
+ }
+
+ void
+ Windows_Monitor::clear_impl (void)
+ {
+ this->init ();
+ }
+
+ void
+ Windows_Monitor::init (void)
+ {
+ /// Create a query and a counter here so it doesn't have
+ /// to be done with each update.
+
+ this->status_ = ACE_TEXT_PdhOpenQuery (0, 0, &this->query_);
+
+ if (ERROR_SUCCESS != this->status_)
+ {
+ ACE_ERROR ((LM_DEBUG, ACE_TEXT ("PdhOpenQuery failed\n")));
+ }
+
+ this->status_ =
+ ACE_TEXT_PdhAddCounter (this->query_,
+ this->path_.c_str (),
+ 0,
+ &this->counter_);
+
+ if (ERROR_SUCCESS != this->status_)
+ {
+ ACE_ERROR ((LM_DEBUG,
+ ACE_TEXT ("PdhAddCounter %s failed\n"),
+ this->path_.c_str ()));
+ }
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* defined (ACE_HAS_WIN32_PDH) */
diff --git a/dep/acelite/ace/Monitor_Control/Windows_Monitor.h b/dep/acelite/ace/Monitor_Control/Windows_Monitor.h
new file mode 100644
index 00000000000..cd39d81fedf
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Windows_Monitor.h
@@ -0,0 +1,78 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Windows_Monitor.h
+ *
+ * $Id: Windows_Monitor.h 91743 2010-09-13 18:24:51Z johnnyw $
+ *
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef WINDOWS_MONITOR_H
+#define WINDOWS_MONITOR_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/SString.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/os_include/os_pdh.h"
+
+#include "ace/Monitor_Control/Monitor_Control_export.h"
+
+#if defined (ACE_HAS_WIN32_PDH)
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ /**
+ * @class Windows_Monitor
+ *
+ * @brief Mixin class for concrete monitors compiled on Windows machines.
+ */
+ class MONITOR_CONTROL_Export Windows_Monitor
+ {
+ friend class Windows_Multi_Instance_Monitor;
+
+ protected:
+ Windows_Monitor (const ACE_TCHAR *path);
+
+ /// Platform-specific implementation.
+ void update_i (void);
+
+ /// Platform-specific reset.
+ void clear_impl (void);
+
+ protected:
+ double value_;
+
+ private:
+ /// Code common to constructor and clear_impl().
+ void init (void);
+
+ /// Make these persistent as members so they don't have to be
+ /// created & destroyed with each update.
+ private:
+ ACE_TString path_;
+ HQUERY query_;
+ HCOUNTER counter_;
+ PDH_STATUS status_;
+ };
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#include /**/ "ace/post.h"
+
+#endif /* defined (ACE_HAS_WIN32_PDH) */
+
+#endif // WINDOWS_MONITOR_H
diff --git a/dep/acelite/ace/Monitor_Control/Windows_Multi_Instance_Monitor.cpp b/dep/acelite/ace/Monitor_Control/Windows_Multi_Instance_Monitor.cpp
new file mode 100644
index 00000000000..c5492640981
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Windows_Multi_Instance_Monitor.cpp
@@ -0,0 +1,110 @@
+// $Id: Windows_Multi_Instance_Monitor.cpp 91813 2010-09-17 07:52:52Z johnnyw $
+
+#include "ace/Monitor_Control/Windows_Multi_Instance_Monitor.h"
+
+#if defined (ACE_HAS_WIN32_PDH)
+
+#include "ace/Log_Msg.h"
+#include "ace/SString.h"
+#include "ace/os_include/os_pdhmsg.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ Windows_Multi_Instance_Monitor::Windows_Multi_Instance_Monitor (
+ const ACE_TCHAR *wildcard_path)
+ : value_ (0.0)
+ , instances_ (0)
+ , n_instances_ (0)
+ , status_ (ERROR_SUCCESS)
+ {
+ /// Create a string which is a concatentation of the path
+ /// name of each 'instance' we need to monitor.
+
+ DWORD paths_size = 4096;
+ ACE_LPSTR paths = (ACE_LPSTR) GlobalAlloc (GPTR, paths_size);
+
+ this->status_ = ACE_TEXT_PdhExpandCounterPath (wildcard_path,
+ paths,
+ &paths_size);
+
+ if (PDH_MORE_DATA == static_cast<DWORD> (this->status_))
+ {
+ ++paths_size;
+ GlobalFree (paths);
+ paths = (ACE_LPSTR) GlobalAlloc (GPTR, paths_size);
+
+ this->status_ = ACE_TEXT_PdhExpandCounterPath (wildcard_path,
+ paths,
+ &paths_size);
+ }
+
+ if (PDH_CSTATUS_VALID_DATA != static_cast<DWORD> (this->status_))
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("%s: PdhExpandCounterPath failed\n"),
+ wildcard_path));
+ }
+
+ ACE_LPSTR path = paths;
+
+ /// Create a regular Windows monitor for each path name.
+ while (*path != 0)
+ {
+ Windows_Monitor *instance = new Windows_Monitor (path);
+ this->instances_.enqueue_tail (instance);
+ path += ACE_OS::strlen (path) + 1;
+ }
+
+ GlobalFree (paths);
+ }
+
+ Windows_Multi_Instance_Monitor::~Windows_Multi_Instance_Monitor (void)
+ {
+ Windows_Monitor *instance = 0;
+
+ /// Destroy the single instance monitors created in the constructor.
+ while (this->instances_.dequeue_head (instance) == 0)
+ {
+ delete instance;
+ }
+ }
+
+ void
+ Windows_Multi_Instance_Monitor::update_i (void)
+ {
+ Windows_Monitor **current_instance = 0;
+
+ /// Sum the values of each single instance monitor.
+ for (INSTANCES_ITERATOR i (this->instances_); !i.done (); i.advance ())
+ {
+ i.next (current_instance);
+
+ (*current_instance)->update_i ();
+
+ this->value_ += (*current_instance)->value_;
+ }
+ }
+
+ void
+ Windows_Multi_Instance_Monitor::clear_impl (void)
+ {
+ Windows_Monitor **current_instance = 0;
+
+ /// Sum the values of each single instance monitor.
+ for (INSTANCES_ITERATOR i (this->instances_); !i.done (); i.advance ())
+ {
+ i.next (current_instance);
+
+ (*current_instance)->clear_impl ();
+ }
+ }
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* defined (ACE_HAS_WIN32_PDH) */
diff --git a/dep/acelite/ace/Monitor_Control/Windows_Multi_Instance_Monitor.h b/dep/acelite/ace/Monitor_Control/Windows_Multi_Instance_Monitor.h
new file mode 100644
index 00000000000..ec4e17a4a41
--- /dev/null
+++ b/dep/acelite/ace/Monitor_Control/Windows_Multi_Instance_Monitor.h
@@ -0,0 +1,75 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Windows_Multi_Instance_Monitor.h
+ *
+ * $Id: Windows_Multi_Instance_Monitor.h 82115 2008-06-20 20:43:13Z parsons $
+ *
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef WINDOWS_MULTI_INSTANCE_MONITOR_H
+#define WINDOWS_MULTI_INSTANCE_MONITOR_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/Monitor_Control/Windows_Monitor.h"
+
+#if defined (ACE_HAS_WIN32_PDH)
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+namespace ACE
+{
+ namespace Monitor_Control
+ {
+ /**
+ * @class Windows_Multi_Instance_Monitor
+ *
+ * @brief Mixin class for concrete monitors compiled on Windows machines
+ * where the Performance Data Helper object of interest has more
+ * than once instance, for example multiple CPUs or network cards.
+ */
+ class MONITOR_CONTROL_Export Windows_Multi_Instance_Monitor
+ {
+ protected:
+ Windows_Multi_Instance_Monitor (const ACE_TCHAR *wildcard_path);
+ virtual ~Windows_Multi_Instance_Monitor (void);
+
+ /// Platform-specific implementation.
+ void update_i (void);
+
+ /// Platform-specific reset.
+ void clear_impl (void);
+
+ protected:
+ double value_;
+
+ private:
+ typedef ACE_Unbounded_Queue<Windows_Monitor *>
+ INSTANCES;
+ typedef ACE_Unbounded_Queue_Const_Iterator<Windows_Monitor *>
+ INSTANCES_ITERATOR;
+
+ INSTANCES instances_;
+ DWORD n_instances_;
+ PDH_STATUS status_;
+ };
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#include /**/ "ace/post.h"
+
+#endif /* defined (ACE_HAS_WIN32_PDH) */
+
+#endif // WINDOWS_MULTI_INSTANCE_MONITOR_H
diff --git a/dep/acelite/ace/Monotonic_Time_Policy.cpp b/dep/acelite/ace/Monotonic_Time_Policy.cpp
new file mode 100644
index 00000000000..3965c1bee48
--- /dev/null
+++ b/dep/acelite/ace/Monotonic_Time_Policy.cpp
@@ -0,0 +1,7 @@
+// $Id: Monotonic_Time_Policy.cpp 96061 2012-08-16 09:36:07Z mcorino $
+
+#include "ace/Monotonic_Time_Policy.h"
+
+#if !defined(__ACE_INLINE__)
+# include "ace/Monotonic_Time_Policy.inl"
+#endif /* __ACE_INLINE__ */
diff --git a/dep/acelite/ace/Monotonic_Time_Policy.h b/dep/acelite/ace/Monotonic_Time_Policy.h
new file mode 100644
index 00000000000..a9615c98eb8
--- /dev/null
+++ b/dep/acelite/ace/Monotonic_Time_Policy.h
@@ -0,0 +1,50 @@
+#ifndef ACE_MONOTONIC_TIME_POLICY_H
+#define ACE_MONOTONIC_TIME_POLICY_H
+// -*- C++ -*-
+/**
+ * @file Monotonic_Time_Policy.h
+ *
+ * $Id: Monotonic_Time_Policy.h 96061 2012-08-16 09:36:07Z mcorino $
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+#include /**/ "ace/pre.h"
+
+#include /**/ "ace/config-all.h"
+
+#include /**/ "ace/Time_Value_T.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+/**
+ * @class ACE_Monotonic_Time_Policy
+ *
+ * @brief Implement a monotonic time policy for ACE.
+ *
+ * This class implements support for returning monotonic time values
+ * on platforms that support that.
+ * If a platform does not support monotonic time the policy returns
+ * ACE_Time_Value::zero.
+ */
+class ACE_Export ACE_Monotonic_Time_Policy
+{
+public:
+ /// Return the current time according to this policy
+ ACE_Time_Value_T<ACE_Monotonic_Time_Policy> operator() () const;
+
+ /// Noop. Just here to satisfy backwards compatibility demands.
+ void set_gettimeofday (ACE_Time_Value (*gettimeofday)(void));
+};
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/Monotonic_Time_Policy.inl"
+#endif /* __ACE_INLINE__ */
+
+#include /**/ "ace/post.h"
+#endif /* ACE_MONOTONIC_TIME_POLICY_H */
diff --git a/dep/acelite/ace/Monotonic_Time_Policy.inl b/dep/acelite/ace/Monotonic_Time_Policy.inl
new file mode 100644
index 00000000000..e6f0b3df4f6
--- /dev/null
+++ b/dep/acelite/ace/Monotonic_Time_Policy.inl
@@ -0,0 +1,32 @@
+// -*- C++ -*-
+//
+// $Id: Monotonic_Time_Policy.inl 96095 2012-08-23 06:36:25Z johnnyw $
+
+#include "ace/OS_NS_sys_time.h"
+#include "ace/High_Res_Timer.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+ACE_INLINE ACE_Time_Value_T<ACE_Monotonic_Time_Policy>
+ACE_Monotonic_Time_Policy::operator()() const
+{
+# if defined (ACE_WIN32)
+ return ACE_Time_Value_T<ACE_Monotonic_Time_Policy> (ACE_High_Res_Timer::gettimeofday_hr ());
+#elif (defined (_POSIX_MONOTONIC_CLOCK) && !defined (ACE_LACKS_MONOTONIC_TIME)) || defined (ACE_HAS_CLOCK_GETTIME_MONOTONIC)
+ struct timespec ts;
+
+ if (ACE_OS::clock_gettime (CLOCK_MONOTONIC, &ts) == 0)
+ return ACE_Time_Value_T<ACE_Monotonic_Time_Policy>(ts);
+ else
+ return ACE_Time_Value_T<ACE_Monotonic_Time_Policy> (ACE_Time_Value::zero);
+#else
+ return ACE_Time_Value_T<ACE_Monotonic_Time_Policy> (ACE_Time_Value::zero);
+#endif
+}
+
+ACE_INLINE void
+ACE_Monotonic_Time_Policy::set_gettimeofday (ACE_Time_Value (*)(void))
+{
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/NT_Service.h b/dep/acelite/ace/NT_Service.h
index 0e1e0a16a84..f602021e418 100644
--- a/dep/acelite/ace/NT_Service.h
+++ b/dep/acelite/ace/NT_Service.h
@@ -4,7 +4,7 @@
/**
* @file NT_Service.h
*
- * $Id: NT_Service.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: NT_Service.h 93117 2011-01-20 12:11:28Z mcorino $
*
* @author Steve Huston <shuston@riverace.com>
*/
@@ -415,7 +415,8 @@ 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 }
+ { const_cast<ACE_TCHAR*> (SVCDESC), \
+ &ace_nt_svc_main_##SVCNAME }
#define ACE_NT_SERVICE_RUN(SVCNAME, SVCINSTANCE, RET) \
ACE_TEXT_SERVICE_TABLE_ENTRY _ace_nt_svc_table[2] = \
diff --git a/dep/acelite/ace/Name_Request_Reply.cpp b/dep/acelite/ace/Name_Request_Reply.cpp
index 2d57818f97f..40ef90ccb2f 100644
--- a/dep/acelite/ace/Name_Request_Reply.cpp
+++ b/dep/acelite/ace/Name_Request_Reply.cpp
@@ -1,4 +1,4 @@
-// $Id: Name_Request_Reply.cpp 91368 2010-08-16 13:03:34Z mhengstmengel $
+// $Id: Name_Request_Reply.cpp 96017 2012-08-08 22:18:09Z mitza $
#include "ace/Name_Request_Reply.h"
#include "ace/Basic_Types.h"
@@ -48,7 +48,8 @@ ACE_Name_Request::ACE_Name_Request (
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 ();
+ this->transfer_.usec_timeout_ =
+ static_cast<ACE_UINT32> (timeout->usec ());
}
// Set up pointers and copy name value and type into request.
@@ -195,7 +196,7 @@ 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 ();
+ this->transfer_.usec_timeout_ = static_cast<ACE_UINT32> (timeout.usec ());
}
// = Set/get the name
@@ -270,7 +271,7 @@ ACE_Name_Request::encode (void *&buf)
for (size_t i = 0; i < nv_data_len; i++)
this->transfer_.data_[i] =
- ACE_HTONS (this->transfer_.data_[i]);
+ static_cast<ACE_WCHAR_T> (ACE_HTONS (this->transfer_.data_[i]));
buf = (void *) &this->transfer_;
this->transfer_.block_forever_ = ACE_HTONL (this->transfer_.block_forever_);
@@ -314,7 +315,7 @@ ACE_Name_Request::decode (void)
for (size_t i = 0; i < nv_data_len; i++)
this->transfer_.data_[i] =
- ACE_NTOHS (this->transfer_.data_[i]);
+ static_cast<ACE_WCHAR_T> (ACE_NTOHS (this->transfer_.data_[i]));
this->name_ = this->transfer_.data_;
this->value_ = &this->name_[this->transfer_.name_len_ / sizeof (ACE_WCHAR_T)];
diff --git a/dep/acelite/ace/Name_Space.h b/dep/acelite/ace/Name_Space.h
index 93b57bd9cf9..66396644a29 100644
--- a/dep/acelite/ace/Name_Space.h
+++ b/dep/acelite/ace/Name_Space.h
@@ -4,7 +4,7 @@
/**
* @file Name_Space.h
*
- * $Id: Name_Space.h 84834 2009-03-16 12:28:51Z johnnyw $
+ * $Id: Name_Space.h 93359 2011-02-11 11:33:12Z mcorino $
*
* @author Prashant Jain <pjain@cse.wustl.edu>
*/
@@ -99,13 +99,13 @@ public:
/**
* 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).
+ * exist yet. (Wide character 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
+ /// Delete a name from a ACE_Name_Space (Wide character strings
/// Interface).
virtual int unbind (const ACE_NS_WString &name_in) = 0;
diff --git a/dep/acelite/ace/Naming_Context.cpp b/dep/acelite/ace/Naming_Context.cpp
index 4bf312e8ad8..bca3b9b87d9 100644
--- a/dep/acelite/ace/Naming_Context.cpp
+++ b/dep/acelite/ace/Naming_Context.cpp
@@ -1,4 +1,4 @@
-// $Id: Naming_Context.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: Naming_Context.cpp 93539 2011-03-13 09:40:44Z vzykov $
#include "ace/Get_Opt.h"
#include "ace/Naming_Context.h"
@@ -626,7 +626,7 @@ ACE_Name_Options::parse_args (int argc, ACE_TCHAR *argv[])
"\t[-b base address]\n"
"\t[-v] (verbose)\n"
"\t[-r] (use Win32 Registry)\n",
- argv[0]);
+ ACE_TEXT_ALWAYS_CHAR (argv[0]));
/* NOTREACHED */
break;
}
diff --git a/dep/acelite/ace/Naming_Context.h b/dep/acelite/ace/Naming_Context.h
index ffc0252eda7..15a20a6bfa2 100644
--- a/dep/acelite/ace/Naming_Context.h
+++ b/dep/acelite/ace/Naming_Context.h
@@ -4,7 +4,7 @@
/**
* @file Naming_Context.h
*
- * $Id: Naming_Context.h 84160 2009-01-14 14:13:58Z johnnyw $
+ * $Id: Naming_Context.h 93359 2011-02-11 11:33:12Z mcorino $
*
* @author Gerhard Lenzer
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
@@ -126,7 +126,7 @@ public:
/**
* 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).
+ * didn't exist yet. (Wide character strings interface).
*/
int rebind (const ACE_NS_WString &name_in,
const ACE_NS_WString &value_in,
@@ -135,13 +135,13 @@ public:
/**
* 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)
+ * didn't exist yet. ( character 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
+ /// Delete a name from a ACE_Naming_Context (Wide character strings
/// Interface).
int unbind (const ACE_NS_WString &name_in);
diff --git a/dep/acelite/ace/Netlink_Addr.h b/dep/acelite/ace/Netlink_Addr.h
index b596068c517..87f0653da99 100644
--- a/dep/acelite/ace/Netlink_Addr.h
+++ b/dep/acelite/ace/Netlink_Addr.h
@@ -1,10 +1,8 @@
-// $Id: Netlink_Addr.h 80826 2008-03-04 14:51:23Z wotte $
-
//=============================================================================
/**
* @file Netlink_Addr.h
*
- * $Id: Netlink_Addr.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: Netlink_Addr.h 95425 2012-01-09 11:09:43Z johnnyw $
*
* @author Robert Iakobashvilli <coroberti@gmail.com>
* @author Raz Ben Yehuda <raziebe@gmail.com>
diff --git a/dep/acelite/ace/Notification_Queue.h b/dep/acelite/ace/Notification_Queue.h
index a9ad1ad245b..d312e0cd2c7 100644
--- a/dep/acelite/ace/Notification_Queue.h
+++ b/dep/acelite/ace/Notification_Queue.h
@@ -1,15 +1,16 @@
-#ifndef ACE_NOTIFICATION_QUEUE_H
-#define ACE_NOTIFICATION_QUEUE_H
-
-#include /**/ "ace/pre.h"
-
/**
* @file Notification_Queue.h
*
- * $Id: Notification_Queue.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: Notification_Queue.h 95425 2012-01-09 11:09:43Z johnnyw $
*
* @author Carlos O'Ryan <coryan@atdesk.com>
*/
+
+#ifndef ACE_NOTIFICATION_QUEUE_H
+#define ACE_NOTIFICATION_QUEUE_H
+
+#include /**/ "ace/pre.h"
+
#include "ace/Copy_Disabled.h"
#include "ace/Event_Handler.h"
#include "ace/Intrusive_List.h"
diff --git a/dep/acelite/ace/Notification_Queue.inl b/dep/acelite/ace/Notification_Queue.inl
index d3579d272cf..999dd831e87 100644
--- a/dep/acelite/ace/Notification_Queue.inl
+++ b/dep/acelite/ace/Notification_Queue.inl
@@ -1,4 +1,4 @@
-// $Id: Notification_Queue.inl 81315 2008-04-10 07:14:15Z johnnyw $
+// $Id: Notification_Queue.inl 94385 2011-08-10 12:19:36Z johnnyw $
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -10,29 +10,26 @@ ACE_Notification_Queue_Node()
}
ACE_INLINE void
-ACE_Notification_Queue_Node::
-set(ACE_Notification_Buffer const & rhs)
+ACE_Notification_Queue_Node::set(ACE_Notification_Buffer const & rhs)
{
contents_ = rhs;
}
ACE_INLINE ACE_Notification_Buffer const &
-ACE_Notification_Queue_Node::
-get() const
+ACE_Notification_Queue_Node::get() const
{
return contents_;
}
ACE_INLINE bool
-ACE_Notification_Queue_Node::
-matches_for_purging(ACE_Event_Handler * eh) const
+ACE_Notification_Queue_Node::matches_for_purging(ACE_Event_Handler * eh) const
{
return (0 != get().eh_) && (0 == eh || eh == get().eh_);
}
ACE_INLINE bool
-ACE_Notification_Queue_Node::
-mask_disables_all_notifications(ACE_Reactor_Mask mask)
+ACE_Notification_Queue_Node::mask_disables_all_notifications(
+ ACE_Reactor_Mask mask)
{
// the existing notification mask is left with nothing when applying
// the mask
@@ -40,8 +37,7 @@ mask_disables_all_notifications(ACE_Reactor_Mask mask)
}
ACE_INLINE void
-ACE_Notification_Queue_Node::
-clear_mask(ACE_Reactor_Mask mask)
+ACE_Notification_Queue_Node::clear_mask(ACE_Reactor_Mask mask)
{
ACE_CLR_BITS(contents_.mask_, mask);
}
diff --git a/dep/acelite/ace/Null_Condition.h b/dep/acelite/ace/Null_Condition.h
index 5f6277d1146..9a1e47ec093 100644
--- a/dep/acelite/ace/Null_Condition.h
+++ b/dep/acelite/ace/Null_Condition.h
@@ -4,7 +4,7 @@
/**
* @file Null_Condition.h
*
- * $Id: Null_Condition.h 91626 2010-09-07 10:59:20Z johnnyw $
+ * $Id: Null_Condition.h 96076 2012-08-18 19:26:00Z johnnyw $
*
* Moved from Synch.h.
*
@@ -17,6 +17,7 @@
#include /**/ "ace/pre.h"
#include "ace/Null_Mutex.h"
+#include "ace/Condition_T.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
@@ -27,23 +28,30 @@
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
class ACE_Time_Value;
+class ACE_Condition_Attributes;
+template <class MUTEX> class ACE_Condition;
/**
- * @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...
+ * @brief ACE_Condition template specialization written using
+ * ACE_Null_Mutexes. Implements a do nothing ACE_Condition
+ * specialization, i.e., all methods are no ops.
*/
-class ACE_Null_Condition
+template <>
+class ACE_Condition<ACE_Null_Mutex>
{
public:
- ACE_Null_Condition (const ACE_Null_Mutex &m,
- const ACE_TCHAR * = 0,
- void * = 0)
+ ACE_Condition (const ACE_Null_Mutex &m,
+ const ACE_TCHAR * = 0,
+ void * = 0)
: mutex_ ((ACE_Null_Mutex &) m) {}
- ~ACE_Null_Condition (void) {}
+ ACE_Condition (const ACE_Null_Mutex &m,
+ const ACE_Condition_Attributes &,
+ const ACE_TCHAR * = 0,
+ void * = 0)
+ : mutex_ ((ACE_Null_Mutex &) m) {}
+
+ ~ACE_Condition (void) {}
/// Returns 0.
int remove (void) {return 0;}
@@ -73,10 +81,12 @@ protected:
private:
// = Prevent assignment and initialization.
- void operator= (const ACE_Null_Condition &);
- ACE_Null_Condition (const ACE_Null_Condition &);
+ void operator= (const ACE_Condition<ACE_Null_Mutex> &);
+ ACE_Condition (const ACE_Condition<ACE_Null_Mutex> &);
};
+typedef ACE_Condition<ACE_Null_Mutex> ACE_Null_Condition;
+
ACE_END_VERSIONED_NAMESPACE_DECL
#include /**/ "ace/post.h"
diff --git a/dep/acelite/ace/Numeric_Limits.h b/dep/acelite/ace/Numeric_Limits.h
index 0a1d5f2e8c3..c8ab7c2ff7b 100644
--- a/dep/acelite/ace/Numeric_Limits.h
+++ b/dep/acelite/ace/Numeric_Limits.h
@@ -4,7 +4,7 @@
/**
* @file Numeric_Limits.h
*
- * $Id: Numeric_Limits.h 85057 2009-04-08 10:59:58Z msmit $
+ * $Id: Numeric_Limits.h 95761 2012-05-15 18:23:04Z johnnyw $
*
* Traits containing basic integer limits. Useful for template-based
* code on platforms that lack @c std::numeric_limits<>.
@@ -44,7 +44,7 @@
//
// Ideally, we could prevent those macros from being defined by
// defining the Windows-specific NOMINMAX symbol before any Windows
-// headers are included, preferrably on the command line. However,
+// headers are included, preferably on the command line. However,
// that would probably break some applications.
//
// @@ Why isn't this a problem with MSVC++ and Borland builds?
@@ -52,11 +52,6 @@
# undef max
# endif /* __MINGW32__ */
-# if defined (ACE_LACKS_LONGLONG_T) || defined (ACE_LACKS_UNSIGNEDLONGLONG_T)
-// For ACE_U_LongLong.
-# include "ace/Basic_Types.h"
-# endif /* ACE_LACKS_LONGLONG_T || ACE_LACKS_UNSIGNEDLONGLONG_T */
-
# include <limits>
#endif /* ACE_LACKS_NUMERIC_LIMITS */
@@ -112,34 +107,32 @@ struct ACE_Export ACE_Numeric_Limits<signed long>
static signed long max (void) { return LONG_MAX; }
};
-// #ifndef ACE_LACKS_LONGLONG_T
-// template<>
-// struct ACE_Export ACE_Numeric_Limits<signed long long>
-// {
-// #if defined (LLONG_MIN)
-// # define ACE_LLONG_MIN LLONG_MIN
-// #elif defined (LONG_LONG_MIN)
-// # define ACE_LLONG_MIN LONG_LONG_MIN
-// #elif defined (LONGLONG_MIN)
-// # define ACE_LLONG_MIN LONGLONG_MIN
-// #else
-// # error Unable to determine minimum signed long long value.
-// #endif /* LLONG_MIN */
-
-// #if defined (LLONG_MAX)
-// # define ACE_LLONG_MAX LLONG_MAX
-// #elif defined (LONG_LONG_MAX)
-// # define ACE_LLONG_MAX LONG_LONG_MAX
-// #elif defined (LONGLONG_MAX)
-// # define ACE_LLONG_MAX LONGLONG_MAX
-// #else
-// # error Unable to determine maximum signed long long value.
-// #endif /* LLONG_MAX */
-
-// static signed long long min (void) { return ACE_LLONG_MIN; }
-// static signed long long max (void) { return ACE_LLONG_MAX; }
-// };
-// #endif /* !ACE_LACKS_LONGLONG_T */
+template<>
+struct ACE_Export ACE_Numeric_Limits<signed long long>
+{
+#if defined (LLONG_MIN)
+# define ACE_LLONG_MIN LLONG_MIN
+#elif defined (LONG_LONG_MIN)
+# define ACE_LLONG_MIN LONG_LONG_MIN
+#elif defined (LONGLONG_MIN)
+# define ACE_LLONG_MIN LONGLONG_MIN
+#else
+# error Unable to determine minimum signed long long value.
+#endif /* LLONG_MIN */
+
+#if defined (LLONG_MAX)
+# define ACE_LLONG_MAX LLONG_MAX
+#elif defined (LONG_LONG_MAX)
+# define ACE_LLONG_MAX LONG_LONG_MAX
+#elif defined (LONGLONG_MAX)
+# define ACE_LLONG_MAX LONGLONG_MAX
+#else
+# error Unable to determine maximum signed long long value.
+#endif /* LLONG_MAX */
+
+ static signed long long min (void) { return ACE_LLONG_MIN; }
+ static signed long long max (void) { return ACE_LLONG_MAX; }
+};
// ------------------------------------------
// Unsigned integers
@@ -171,23 +164,21 @@ struct ACE_Export ACE_Numeric_Limits<unsigned long>
static unsigned long max (void) { return ULONG_MAX; }
};
-// #ifndef ACE_LACKS_LONGLONG_T
-// template<>
-// struct ACE_Export ACE_Numeric_Limits<unsigned long long>
-// {
-// static unsigned long long min (void) { return 0; }
-// static unsigned long long max (void)
-// {
-// # if defined (ULLONG_MAX)
-// return ULLONG_MAX;
-// # elif defined (ULONGLONG_MAX)
-// return ULONGLONG_MAX;
-// # else
-// # error Unable to determine maximum unsigned long long value.
-// # endif /* ULLONG_MAX */
-// }
-// };
-// #endif /* !ACE_LACKS_LONGLONG_T */
+template<>
+struct ACE_Export ACE_Numeric_Limits<unsigned long long>
+{
+ static unsigned long long min (void) { return 0; }
+ static unsigned long long max (void)
+ {
+# if defined (ULLONG_MAX)
+ return ULLONG_MAX;
+# elif defined (ULONGLONG_MAX)
+ return ULONGLONG_MAX;
+# else
+# error Unable to determine maximum unsigned long long value.
+# endif /* ULLONG_MAX */
+ }
+};
// ------------------------------------------
// Floating point types
@@ -254,15 +245,6 @@ struct ACE_Numeric_Limits<ULONGLONG>
#endif /* ACE_LACKS_NUMERIC_LIMITS */
-#if defined (ACE_LACKS_LONGLONG_T) || defined (ACE_LACKS_UNSIGNEDLONGLONG_T)
-template<>
-struct ACE_Numeric_Limits<ACE_U_LongLong>
-{
- static ACE_U_LongLong min (void) { return ACE_U_LongLong (); /* 0 */ }
- static ACE_U_LongLong max (void) { return ACE_UINT64_MAX; }
-};
-#endif /* ACE_LACKS_LONGLONG_T || defined ACE_LACKS_UNSIGNEDLONGLONG_T */
-
ACE_END_VERSIONED_NAMESPACE_DECL
#include /**/ "ace/post.h"
diff --git a/dep/acelite/ace/OS.h b/dep/acelite/ace/OS.h
new file mode 100644
index 00000000000..1d52d2faaa3
--- /dev/null
+++ b/dep/acelite/ace/OS.h
@@ -0,0 +1,106 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file OS.h
+ *
+ * $Id: OS.h 95319 2011-12-13 14:54:44Z mhengstmengel $
+ *
+ * @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_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+/**
+ * @namespace ACE_OS
+ *
+ * @brief This namespace 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 namespace 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.
+ */
+namespace ACE_OS
+{
+ // = A set of wrappers for miscellaneous operations.
+} /* namespace ACE_OS */
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if !defined (DO_NOT_INCLUDE_OS_H)
+#include "ace/Cleanup.h"
+#include "ace/Object_Manager_Base.h"
+#include "ace/OS_main.h"
+#include "ace/OS_NS_arpa_inet.h"
+#include "ace/OS_NS_ctype.h"
+#include "ace/OS_NS_dirent.h"
+#include "ace/OS_NS_dlfcn.h"
+#include "ace/OS_NS_errno.h"
+#include "ace/OS_NS_fcntl.h"
+#include "ace/OS_NS_math.h"
+#include "ace/OS_NS_netdb.h"
+#include "ace/OS_NS_poll.h"
+#include "ace/OS_NS_pwd.h"
+#include "ace/OS_NS_regex.h"
+#include "ace/OS_NS_signal.h"
+#include "ace/OS_NS_stdio.h"
+#include "ace/OS_NS_stdlib.h"
+#include "ace/OS_NS_string.h"
+#include "ace/OS_NS_strings.h"
+#include "ace/OS_NS_stropts.h"
+#include "ace/OS_NS_sys_mman.h"
+#include "ace/OS_NS_sys_msg.h"
+#include "ace/OS_NS_sys_resource.h"
+#include "ace/OS_NS_sys_select.h"
+#include "ace/OS_NS_sys_shm.h"
+#include "ace/OS_NS_sys_socket.h"
+#include "ace/OS_NS_sys_stat.h"
+#include "ace/OS_NS_sys_time.h"
+#include "ace/OS_NS_sys_uio.h"
+#include "ace/OS_NS_sys_utsname.h"
+#include "ace/OS_NS_sys_wait.h"
+#include "ace/OS_NS_Thread.h"
+#include "ace/OS_NS_time.h"
+#include "ace/OS_NS_unistd.h"
+#include "ace/OS_NS_wchar.h"
+
+// Include the split up ACE_OS classes
+#include "ace/OS_Memory.h"
+#include "ace/OS_TLI.h"
+#include "ace/OS_Errno.h"
+
+// 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"
+
+// Here are all ACE-specific global declarations needed throughout
+// ACE.
+#include "ace/Global_Macros.h"
+
+#endif /* DO_NOT_INCLUDE_OS_H */
+
+#include /**/ "ace/post.h"
+#endif /* ACE_OS_H */
diff --git a/dep/acelite/ace/OS_NS_Thread.cpp b/dep/acelite/ace/OS_NS_Thread.cpp
index c424e3f5795..8e36eb9e4f7 100644
--- a/dep/acelite/ace/OS_NS_Thread.cpp
+++ b/dep/acelite/ace/OS_NS_Thread.cpp
@@ -1,4 +1,4 @@
-// $Id: OS_NS_Thread.cpp 91693 2010-09-09 12:57:54Z johnnyw $
+// $Id: OS_NS_Thread.cpp 96061 2012-08-16 09:36:07Z mcorino $
#include "ace/OS_NS_Thread.h"
@@ -18,7 +18,7 @@
// This is necessary to work around nasty problems with MVS C++.
#include "ace/Auto_Ptr.h"
#include "ace/Thread_Mutex.h"
-#include "ace/Condition_T.h"
+#include "ace/Condition_Thread_Mutex.h"
#include "ace/Guard_T.h"
extern "C" void
@@ -50,34 +50,18 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
void
ACE_Thread_ID::to_string (char *thr_string) const
{
- char format[128]; // Converted format string
- char *fp = 0; // Current format pointer
- fp = format;
- *fp++ = '%'; // Copy in the %
-
#if defined (ACE_WIN32)
- ACE_OS::strcpy (fp, "u");
- ACE_OS::sprintf (thr_string,
- format,
+ ACE_OS::sprintf (thr_string, "%u",
static_cast <unsigned> (this->thread_id_));
#else
-# if defined (ACE_MVS) || defined (ACE_TANDEM_T1248_PTHREADS)
- // MVS's pthread_t is a struct... yuck. So use the ACE 5.0
- // code for it.
- ACE_OS::strcpy (fp, "u");
- ACE_OS::sprintf (thr_string, format, thread_handle_);
-# 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, "lu");
- ACE_OS::sprintf (thr_string,
- format,
- (unsigned long) thread_handle_);
-# endif /* ACE_MVS || ACE_TANDEM_T1248_PTHREADS */
+ // 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
+ // other OSes, so use the bigger hammer.
+ ACE_OS::sprintf (thr_string, "%lu",
+ (unsigned long) thread_handle_);
#endif /* ACE_WIN32 */
}
@@ -232,13 +216,7 @@ ACE_TSS_Emulation::next_key (ACE_thread_key_t &key)
// 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 */
+ ACE_thread_key_t localkey = counter;
// 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)
@@ -397,20 +375,6 @@ ACE_TSS_Info::ACE_TSS_Info (void)
ACE_OS_TRACE ("ACE_TSS_Info::ACE_TSS_Info");
}
-# if defined (ACE_HAS_NONSCALAR_THREAD_KEY_T)
-static inline bool 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 bool 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.
bool
ACE_TSS_Info::operator== (const ACE_TSS_Info &info) const
@@ -466,9 +430,8 @@ ACE_TSS_Keys::find (const u_int key, u_int &word, u_int &bit)
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);
+ find (key, word, bit);
if (ACE_BIT_ENABLED (key_bit_words_[word], 1 << bit))
{
@@ -484,9 +447,8 @@ ACE_TSS_Keys::test_and_set (const ACE_thread_key_t key)
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);
+ find (key, word, bit);
if (word < ACE_WORDS && ACE_BIT_ENABLED (key_bit_words_[word], 1 << bit))
{
@@ -502,9 +464,8 @@ ACE_TSS_Keys::test_and_clear (const ACE_thread_key_t key)
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);
+ find (key, word, bit);
return word < ACE_WORDS ? ACE_BIT_ENABLED (key_bit_words_[word], 1 << bit) : 0;
}
@@ -627,7 +588,7 @@ private:
static unsigned int reference_count_;
static ACE_TSS_Cleanup * instance_;
static ACE_Thread_Mutex* mutex_;
- static ACE_Thread_Condition<ACE_Thread_Mutex>* condition_;
+ static ACE_Condition_Thread_Mutex* condition_;
private:
ACE_TSS_Cleanup * ptr_;
@@ -650,7 +611,7 @@ TSS_Cleanup_Instance::TSS_Cleanup_Instance (Purpose purpose)
if (mutex_ == 0)
{
ACE_NEW (mutex_, ACE_Thread_Mutex ());
- ACE_NEW (condition_, ACE_Thread_Condition<ACE_Thread_Mutex> (*mutex_));
+ ACE_NEW (condition_, ACE_Condition_Thread_Mutex (*mutex_));
}
ACE_GUARD (ACE_Thread_Mutex, m, *mutex_);
@@ -750,7 +711,7 @@ TSS_Cleanup_Instance::operator ->()
unsigned int TSS_Cleanup_Instance::reference_count_ = 0;
ACE_TSS_Cleanup * TSS_Cleanup_Instance::instance_ = 0;
ACE_Thread_Mutex* TSS_Cleanup_Instance::mutex_ = 0;
-ACE_Thread_Condition<ACE_Thread_Mutex>* TSS_Cleanup_Instance::condition_ = 0;
+ACE_Condition_Thread_Mutex* TSS_Cleanup_Instance::condition_ = 0;
ACE_TSS_Cleanup::~ACE_TSS_Cleanup (void)
{
@@ -810,7 +771,7 @@ ACE_TSS_Cleanup::thread_exit (void)
}
// remove the in_use bit vector last
- ACE_KEY_INDEX (use_index, this->in_use_);
+ u_int use_index = this->in_use_;
ACE_TSS_Info & info = this->table_[use_index];
destructor[d_count] = 0;
tss_obj[d_count] = 0;
@@ -852,7 +813,7 @@ ACE_TSS_Cleanup::insert (ACE_thread_key_t key,
ACE_OS_TRACE ("ACE_TSS_Cleanup::insert");
ACE_TSS_CLEANUP_GUARD
- ACE_KEY_INDEX (key_index, key);
+ u_int key_index = key;
ACE_ASSERT (key_index < ACE_DEFAULT_THREAD_KEYS);
if (key_index < ACE_DEFAULT_THREAD_KEYS)
{
@@ -873,7 +834,7 @@ ACE_TSS_Cleanup::free_key (ACE_thread_key_t key)
{
ACE_OS_TRACE ("ACE_TSS_Cleanup::free_key");
ACE_TSS_CLEANUP_GUARD
- ACE_KEY_INDEX (key_index, key);
+ u_int key_index = key;
if (key_index < ACE_DEFAULT_THREAD_KEYS)
{
return remove_key (this->table_ [key_index]);
@@ -923,7 +884,7 @@ ACE_TSS_Cleanup::thread_detach_key (ACE_thread_key_t key)
{
ACE_TSS_CLEANUP_GUARD
- ACE_KEY_INDEX (key_index, key);
+ u_int key_index = key;
ACE_ASSERT (key_index < sizeof(this->table_)/sizeof(this->table_[0])
&& this->table_[key_index].key_ == key);
ACE_TSS_Info &info = this->table_ [key_index];
@@ -979,7 +940,7 @@ ACE_TSS_Cleanup::thread_use_key (ACE_thread_key_t key)
ACE_TSS_CLEANUP_GUARD
// Retrieve the key's ACE_TSS_Info and increment its thread_count_.
- ACE_KEY_INDEX (key_index, key);
+ u_int key_index = key;
ACE_TSS_Info &key_info = this->table_ [key_index];
ACE_ASSERT (key_info.key_in_use ());
@@ -1450,7 +1411,7 @@ ACE_OS::cond_timedwait (ACE_cond_t *cv,
// 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 ());
+ ACE_Time_Value relative_time = timeout->to_relative_time ();
// Watchout for situations where a context switch has caused the
// current time to be > the timeout.
@@ -1623,7 +1584,7 @@ ACE_OS::cond_timedwait (ACE_cond_t *cv,
int msec_timeout = 0;
int result = 0;
- ACE_Time_Value relative_time (*timeout - ACE_OS::gettimeofday ());
+ ACE_Time_Value relative_time = timeout->to_relative_time ();
// Watchout for situations where a context switch has caused the
// current time to be > the timeout.
if (relative_time > ACE_Time_Value::zero)
@@ -1652,7 +1613,7 @@ ACE_OS::cond_timedwait (ACE_cond_t *cv,
// 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 ());
+ ACE_Time_Value relative_time = timeout->to_relative_time ();
// Watchout for situations where a context switch has caused the
// current time to be > the timeout.
@@ -2184,7 +2145,7 @@ ACE_OS::mutex_lock (ACE_mutex_t *m,
// 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 ());
+ ACE_Time_Value relative_time = timeout.to_relative_time ();
switch (m->type_)
{
@@ -2218,7 +2179,7 @@ ACE_OS::mutex_lock (ACE_mutex_t *m,
// 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 ());
+ ACE_Time_Value relative_time = timeout.to_relative_time ();
int ticks_per_sec = ::sysClkRateGet ();
@@ -3055,7 +3016,7 @@ ACE_OS::event_timedwait (ACE_event_t *event,
{
// Time is given in absolute time, we should use
// gettimeofday() to calculate relative time
- ACE_Time_Value relative_time (*timeout - ACE_OS::gettimeofday ());
+ ACE_Time_Value relative_time = timeout->to_relative_time ();
// Watchout for situations where a context switch has caused
// the current time to be > the timeout. Thanks to Norbert
@@ -3116,7 +3077,7 @@ ACE_OS::event_timedwait (ACE_event_t *event,
// cond_timewait() expects absolute time, check
// <use_absolute_time> flag.
if (use_absolute_time == 0)
- absolute_timeout += ACE_OS::gettimeofday ();
+ absolute_timeout = timeout->to_absolute_time ();
while (event->eventdata_->is_signaled_ == 0 &&
event->eventdata_->auto_event_signaled_ == false)
@@ -3533,7 +3494,7 @@ ACE_OS::sched_params (const ACE_Sched_Params &sched_params,
#if defined (ACE_HAS_STHREADS)
return ACE_OS::set_scheduling_params (sched_params, id);
#elif defined (ACE_HAS_PTHREADS) && \
- (!defined (ACE_LACKS_SETSCHED) || defined (ACE_TANDEM_T1248_PTHREADS) || \
+ (!defined (ACE_LACKS_SETSCHED) || \
defined (ACE_HAS_PTHREAD_SCHEDPARAM))
if (sched_params.quantum () != ACE_Time_Value::zero)
{
@@ -3552,15 +3513,15 @@ ACE_OS::sched_params (const ACE_Sched_Params &sched_params,
if (sched_params.scope () == ACE_SCOPE_PROCESS)
{
-# if defined(ACE_TANDEM_T1248_PTHREADS) || defined (ACE_HAS_PTHREAD_SCHEDPARAM)
+# if defined (ACE_HAS_PTHREAD_SCHEDPARAM)
ACE_UNUSED_ARG (id);
ACE_NOTSUP_RETURN (-1);
-# else /* ! ACE_TANDEM_T1248_PTHREADS */
+# else /* !ACE_HAS_PTHREAD_SCHEDPARAM */
int result = ::sched_setscheduler (id == ACE_SELF ? 0 : id,
sched_params.policy (),
&param) == -1 ? -1 : 0;
return result;
-# endif /* ! ACE_TANDEM_T1248_PTHREADS */
+# endif /* !ACE_HAS_PTHREAD_SCHEDPARAM */
}
else if (sched_params.scope () == ACE_SCOPE_THREAD)
{
@@ -3858,12 +3819,14 @@ ACE_OS::thr_create (ACE_THR_FUNC func,
ACE_OS_Thread_Adapter (func, args,
(ACE_THR_C_FUNC) ACE_THREAD_ADAPTER_NAME,
ACE_OS_Object_Manager::seh_except_selector(),
- ACE_OS_Object_Manager::seh_except_handler()),
+ ACE_OS_Object_Manager::seh_except_handler(),
+ flags),
-1);
#else
ACE_NEW_RETURN (thread_args,
ACE_OS_Thread_Adapter (func, args,
- (ACE_THR_C_FUNC) ACE_THREAD_ADAPTER_NAME),
+ (ACE_THR_C_FUNC) ACE_THREAD_ADAPTER_NAME,
+ flags),
-1);
#endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
@@ -3873,9 +3836,8 @@ ACE_OS::thr_create (ACE_THR_FUNC func,
auto_ptr <ACE_Base_Thread_Adapter> auto_thread_args;
if (thread_adapter == 0)
- ACE_AUTO_PTR_RESET (auto_thread_args,
- thread_args,
- ACE_Base_Thread_Adapter);
+ ACE_auto_ptr_reset (auto_thread_args,
+ thread_args);
#if defined (ACE_HAS_THREADS)
@@ -4104,6 +4066,7 @@ ACE_OS::thr_create (ACE_THR_FUNC func,
}
}
+# if !defined (ACE_LACKS_SETINHERITSCHED)
// *** Set scheduling explicit or inherited
if (ACE_BIT_ENABLED (flags, THR_INHERIT_SCHED)
|| ACE_BIT_ENABLED (flags, THR_EXPLICIT_SCHED))
@@ -4117,6 +4080,7 @@ ACE_OS::thr_create (ACE_THR_FUNC func,
return -1;
}
}
+# endif /* ACE_LACKS_SETINHERITSCHED */
# else /* ACE_LACKS_SETSCHED */
ACE_UNUSED_ARG (priority);
# endif /* ACE_LACKS_SETSCHED */
diff --git a/dep/acelite/ace/OS_NS_Thread.h b/dep/acelite/ace/OS_NS_Thread.h
index 4145210889b..ee73b5bd3c1 100644
--- a/dep/acelite/ace/OS_NS_Thread.h
+++ b/dep/acelite/ace/OS_NS_Thread.h
@@ -4,7 +4,7 @@
/**
* @file OS_NS_Thread.h
*
- * $Id: OS_NS_Thread.h 91693 2010-09-09 12:57:54Z johnnyw $
+ * $Id: OS_NS_Thread.h 96061 2012-08-16 09:36:07Z mcorino $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
* @author Jesper S. M|ller<stophph@diku.dk>
@@ -1023,23 +1023,12 @@ private:
# 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 */
-
ACE_END_VERSIONED_NAMESPACE_DECL
#if (defined (ACE_HAS_VERSIONED_NAMESPACE) && ACE_HAS_VERSIONED_NAMESPACE == 1)
# define ACE_MUTEX_LOCK_CLEANUP_ADAPTER_NAME ACE_PREPROC_CONCATENATE(ACE_VERSIONED_NAMESPACE_NAME, _ace_mutex_lock_cleanup_adapter)
#endif /* ACE_HAS_VERSIONED_NAMESPACE == 1 */
-
# if defined (ACE_HAS_THR_C_FUNC)
// This is necessary to work around nasty problems with MVS C++.
extern "C" ACE_Export void ACE_MUTEX_LOCK_CLEANUP_ADAPTER_NAME (void *args);
@@ -1099,6 +1088,10 @@ namespace ACE_OS {
ACE_NAMESPACE_INLINE_FUNCTION
int condattr_destroy (ACE_condattr_t &attributes);
+ ACE_NAMESPACE_INLINE_FUNCTION
+ int condattr_setclock(ACE_condattr_t &attributes,
+ clockid_t clock_id);
+
#if defined (ACE_LACKS_COND_T)
extern ACE_Export
#else
@@ -1288,7 +1281,7 @@ namespace ACE_OS {
const ACE_Time_Value &timeout);
/**
- * If <timeout> == 0, calls <ACE_OS::mutex_lock(m)>. Otherwise,
+ * If @a 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 @c ETIME errno on platforms that actually support timed
@@ -1312,7 +1305,7 @@ namespace ACE_OS {
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.
+ /// mutexes, @a abandoned is set to 1 and 0 is returned.
extern ACE_Export
int mutex_trylock (ACE_mutex_t *m,
int &abandoned);
@@ -1410,7 +1403,7 @@ namespace ACE_OS {
int sched_params (const ACE_Sched_Params &, ACE_id_t id = ACE_SELF);
//@}
- /// Find the schedling class ID that corresponds to the class name.
+ /// Find the scheduling class ID that corresponds to the class name.
extern ACE_Export
int scheduling_class (const char *class_name, ACE_id_t &);
@@ -1509,7 +1502,7 @@ namespace ACE_OS {
ACE_NAMESPACE_INLINE_FUNCTION
int thr_continue (ACE_hthread_t target_thread);
- /*
+ /**
* Creates a new thread having @a flags attributes and running @a func
* with @a args (if @a thread_adapter is non-0 then @a func and @a args
* are ignored and are obtained from @a thread_adapter). @a thr_id
@@ -1684,9 +1677,11 @@ namespace ACE_OS {
ACE_NAMESPACE_INLINE_FUNCTION
const char* thr_name (void);
+ /// State is THR_CANCEL_ENABLE or THR_CANCEL_DISABLE
ACE_NAMESPACE_INLINE_FUNCTION
int thr_setcancelstate (int new_state, int *old_state);
+ /// Type is THR_CANCEL_DEFERRED or THR_CANCEL_ASYNCHRONOUS
ACE_NAMESPACE_INLINE_FUNCTION
int thr_setcanceltype (int new_type, int *old_type);
diff --git a/dep/acelite/ace/OS_NS_Thread.inl b/dep/acelite/ace/OS_NS_Thread.inl
index a921e6907b6..460e80f2a04 100644
--- a/dep/acelite/ace/OS_NS_Thread.inl
+++ b/dep/acelite/ace/OS_NS_Thread.inl
@@ -1,6 +1,6 @@
// -*- C++ -*-
//
-// $Id: OS_NS_Thread.inl 92069 2010-09-28 11:38:59Z johnnyw $
+// $Id: OS_NS_Thread.inl 96074 2012-08-17 18:06:56Z johnnyw $
#include "ace/OS_NS_macros.h"
// for timespec_t, perhaps move it to os_time.h
@@ -45,7 +45,11 @@ void **&
ACE_TSS_Emulation::tss_base ()
{
# if defined (ACE_HAS_VXTHREADS)
+ #if (ACE_VXWORKS <= 0x680)
int &spare = taskIdCurrent->ACE_VXWORKS_SPARE;
+ #else // VxWorks 6.9 updated datatype (WIND00241209) see taskLib.h
+ long &spare = taskIdCurrent->ACE_VXWORKS_SPARE;
+ #endif
return reinterpret_cast <void **&> (spare);
# else
// Uh oh.
@@ -58,8 +62,7 @@ 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];
+ return tss_destructor_ [key];
}
ACE_INLINE
@@ -67,16 +70,13 @@ 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;
+ tss_destructor_ [key] = destructor;
}
ACE_INLINE
void *&
ACE_TSS_Emulation::ts_object (const ACE_thread_key_t key)
{
- ACE_KEY_INDEX (key_index, key);
-
# if defined (ACE_HAS_VXTHREADS)
/* If someone wants tss_base make sure they get one. This
gets used if someone spawns a VxWorks task directly, not
@@ -97,7 +97,7 @@ ACE_TSS_Emulation::ts_object (const ACE_thread_key_t key)
}
# endif /* ACE_HAS_VXTHREADS */
- return tss_base ()[key_index];
+ return tss_base ()[key];
}
#endif /* ACE_HAS_TSS_EMULATION */
@@ -124,7 +124,7 @@ ACE_OS::thr_equal (ACE_thread_t t1, ACE_thread_t t2)
ACE_INLINE int
ACE_OS::condattr_destroy (ACE_condattr_t &attributes)
{
-#if defined (ACE_HAS_THREADS)
+#if defined (ACE_HAS_THREADS) && !defined (ACE_LACKS_CONDATTR)
# if defined (ACE_HAS_PTHREADS)
pthread_condattr_destroy (&attributes);
# else
@@ -145,23 +145,30 @@ ACE_OS::condattr_init (ACE_condattr_t &attributes, int type)
# if defined (ACE_HAS_PTHREADS)
int result = -1;
-# if defined (ACE_PTHREAD_CONDATTR_T_INITIALIZE)
- /* Tests show that VxWorks 6.x pthread lib does not only
- * require zeroing of mutex/condition objects to function correctly
- * but also of the attribute objects.
- */
- ACE_OS::memset (&attributes, 0, sizeof (attributes));
-# endif
+# if !defined (ACE_LACKS_CONDATTR)
+# if defined (ACE_PTHREAD_CONDATTR_T_INITIALIZE)
+ /* Tests show that VxWorks 6.x pthread lib does not only
+ * require zeroing of mutex/condition objects to function correctly
+ * but also of the attribute objects.
+ */
+ ACE_OS::memset (&attributes, 0, sizeof (attributes));
+# endif
if (
ACE_ADAPT_RETVAL (pthread_condattr_init (&attributes), result) == 0
-# if defined (_POSIX_THREAD_PROCESS_SHARED) && !defined (ACE_LACKS_CONDATTR_PSHARED)
+# if defined (_POSIX_THREAD_PROCESS_SHARED) && !defined (ACE_LACKS_CONDATTR_PSHARED)
&& ACE_ADAPT_RETVAL (pthread_condattr_setpshared (&attributes, type),
result) == 0
-# endif /* _POSIX_THREAD_PROCESS_SHARED && ! ACE_LACKS_CONDATTR_PSHARED */
+# endif /* _POSIX_THREAD_PROCESS_SHARED && ! ACE_LACKS_CONDATTR_PSHARED */
)
+# else
+ if (type == USYNC_THREAD)
+# endif /* !ACE_LACKS_CONDATTR */
result = 0;
else
- result = -1; // ACE_ADAPT_RETVAL used it for intermediate status
+ {
+ ACE_UNUSED_ARG (attributes);
+ result = -1; // ACE_ADAPT_RETVAL used it for intermediate status
+ }
return result;
# else
@@ -176,6 +183,36 @@ ACE_OS::condattr_init (ACE_condattr_t &attributes, int type)
# endif /* ACE_HAS_THREADS */
}
+ACE_INLINE int
+ACE_OS::condattr_setclock (ACE_condattr_t &attributes, clockid_t clock_id)
+{
+# if defined (ACE_HAS_THREADS)
+# if defined (ACE_HAS_PTHREADS) && !defined (ACE_LACKS_CONDATTR)
+ int result = -1;
+
+# if defined (_POSIX_CLOCK_SELECTION) && !defined (ACE_LACKS_CONDATTR_SETCLOCK)
+ ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_condattr_setclock (&attributes, clock_id),
+ result),
+ int, -1);
+# else
+ ACE_UNUSED_ARG (clock_id);
+ ACE_UNUSED_ARG (attributes);
+# endif /* _POSIX_CLOCK_SELECTION) && !ACE_LACKS_CONDATTR_SETCLOCK */
+
+ return result;
+# else
+ ACE_UNUSED_ARG (clock_id);
+ ACE_UNUSED_ARG (attributes);
+ ACE_NOTSUP_RETURN (-1);
+# endif /* ACE_HAS_PTHREADS && !ACE_LACKS_CONDATTR */
+
+# else
+ ACE_UNUSED_ARG (clock_id);
+ ACE_UNUSED_ARG (attributes);
+ 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.
@@ -383,7 +420,7 @@ ACE_OS::cond_timedwait (ACE_cond_t *cv,
int msec_timeout = 0;
if (timeout != 0)
{
- ACE_Time_Value relative_time (*timeout - ACE_OS::gettimeofday ());
+ ACE_Time_Value relative_time = timeout->to_relative_time ();
// Watchout for situations where a context switch has caused the
// current time to be > the timeout.
if (relative_time > ACE_Time_Value::zero)
@@ -2146,7 +2183,7 @@ ACE_OS::sema_wait (ACE_sema_t *s, ACE_Time_Value &tv)
{
result = ACE_OS::sema_trywait (s);
if (result == -1 && errno == EAGAIN)
- expired = ACE_OS::gettimeofday () > tv;
+ expired = (tv.to_relative_time () <= ACE_Time_Value::zero);
else
expired = false;
@@ -2169,7 +2206,7 @@ ACE_OS::sema_wait (ACE_sema_t *s, ACE_Time_Value &tv)
error = ETIME;
# if defined (ACE_LACKS_COND_TIMEDWAIT_RESET)
- tv = ACE_OS::gettimeofday ();
+ tv = tv.now ();
# endif /* ACE_LACKS_COND_TIMEDWAIT_RESET */
}
@@ -2184,13 +2221,10 @@ ACE_OS::sema_wait (ACE_sema_t *s, ACE_Time_Value &tv)
# endif /* ACE_HAS_POSIX_SEM_TIMEOUT */
# elif defined (ACE_USES_FIFO_SEM)
int rc;
- ACE_Time_Value now = ACE_OS::gettimeofday ();
+ ACE_Time_Value timeout = tv.to_relative_time ();
- while (tv > now)
+ while (timeout > ACE_Time_Value::zero)
{
- ACE_Time_Value timeout = tv;
- timeout -= now;
-
ACE_Handle_Set fds_;
fds_.set_bit (s->fd_[0]);
@@ -2210,7 +2244,7 @@ ACE_OS::sema_wait (ACE_sema_t *s, ACE_Time_Value &tv)
// we were woken for input but someone beat us to it
// so we wait again if there is still time
- now = ACE_OS::gettimeofday ();
+ timeout = tv.to_relative_time ();
}
// make sure errno is set right
@@ -2253,7 +2287,7 @@ ACE_OS::sema_wait (ACE_sema_t *s, ACE_Time_Value &tv)
if (result == 0)
{
# if defined (ACE_LACKS_COND_TIMEDWAIT_RESET)
- tv = ACE_OS::gettimeofday ();
+ tv = tv.now ();
# endif /* ACE_LACKS_COND_TIMEDWAIT_RESET */
--s->count_;
}
@@ -2273,7 +2307,7 @@ ACE_OS::sema_wait (ACE_sema_t *s, ACE_Time_Value &tv)
// 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 ());
+ ACE_Time_Value relative_time = tv.to_relative_time ();
// Watchout for situations where a context switch has caused the
// current time to be > the timeout.
@@ -2286,7 +2320,7 @@ ACE_OS::sema_wait (ACE_sema_t *s, ACE_Time_Value &tv)
switch (::WaitForSingleObject (*s, msec_timeout))
{
case WAIT_OBJECT_0:
- tv = ACE_OS::gettimeofday (); // Update time to when acquired
+ tv = tv.now (); // Update time to when acquired
return 0;
case WAIT_TIMEOUT:
errno = ETIME;
@@ -2308,10 +2342,9 @@ ACE_OS::sema_wait (ACE_sema_t *s, ACE_Time_Value &tv)
// as a shortcut for "now", which works on non-Windows because 0 is
// always earlier than now. However, the need to convert to relative time
// means we need to watch out for this case.
- ACE_Time_Value end_time = tv;
- if (tv == ACE_Time_Value::zero)
- end_time = ACE_OS::gettimeofday ();
- ACE_Time_Value relative_time = end_time - ACE_OS::gettimeofday ();
+ ACE_Time_Value relative_time (ACE_Time_Value::zero);
+ if (tv != ACE_Time_Value::zero)
+ relative_time = tv.to_relative_time ();
int result = -1;
// While we are not timeout yet. >= 0 will let this go through once
@@ -2343,7 +2376,7 @@ ACE_OS::sema_wait (ACE_sema_t *s, ACE_Time_Value &tv)
// Only return when we successfully get the semaphore.
if (result == 0)
{
- tv = ACE_OS::gettimeofday (); // Update to time acquired
+ tv = tv.now (); // Update to time acquired
return 0;
}
break;
@@ -2362,7 +2395,8 @@ ACE_OS::sema_wait (ACE_sema_t *s, ACE_Time_Value &tv)
// Haven't been able to get the semaphore yet, update the
// timeout value to reflect the remaining time we want to wait.
- relative_time = end_time - ACE_OS::gettimeofday ();
+ // in case of tv == 0 relative_time will now be < 0 and we will be out of time
+ relative_time = tv.to_relative_time ();
}
// We have timed out.
@@ -2373,7 +2407,7 @@ ACE_OS::sema_wait (ACE_sema_t *s, ACE_Time_Value &tv)
// 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 ());
+ ACE_Time_Value relative_time = tv.to_relative_time ();
int ticks_per_sec = ::sysClkRateGet ();
@@ -2391,7 +2425,7 @@ ACE_OS::sema_wait (ACE_sema_t *s, ACE_Time_Value &tv)
}
else
{
- tv = ACE_OS::gettimeofday (); // Update to time acquired
+ tv = tv.now (); // Update to time acquired
return 0;
}
# endif /* ACE_HAS_STHREADS */
@@ -2504,10 +2538,7 @@ ACE_OS::sigwait (sigset_t *sset, int *sig)
// Cygwin has sigwait definition, but it is not implemented
ACE_UNUSED_ARG (sset);
ACE_NOTSUP_RETURN (-1);
-# elif defined (ACE_TANDEM_T1248_PTHREADS)
- errno = ::spt_sigwait (sset, sig);
- return errno == 0 ? *sig : -1;
-# else /* this is draft 7 or std */
+# else /* this is std */
errno = ::sigwait (sset, sig);
return errno == 0 ? *sig : -1;
# endif /* CYGWIN32 */
@@ -2988,10 +3019,35 @@ ACE_OS::thr_setcancelstate (int new_state, int *old_state)
#if defined (ACE_HAS_THREADS)
# if defined (ACE_HAS_PTHREADS) && !defined (ACE_LACKS_PTHREAD_CANCEL)
int result;
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_setcancelstate (new_state,
- old_state),
- result),
- int, -1);
+ int local_new, local_old;
+ switch (new_state)
+ {
+ case THR_CANCEL_ENABLE:
+ local_new = PTHREAD_CANCEL_ENABLE;
+ break;
+ case THR_CANCEL_DISABLE:
+ local_new = PTHREAD_CANCEL_DISABLE;
+ break;
+ default:
+ errno = EINVAL;
+ return -1;
+ }
+ ACE_OSCALL (ACE_ADAPT_RETVAL (pthread_setcancelstate (local_new,
+ &local_old),
+ result),
+ int, -1, result);
+ if (result == -1)
+ return -1;
+ switch (local_old)
+ {
+ case PTHREAD_CANCEL_ENABLE:
+ *old_state = THR_CANCEL_ENABLE;
+ break;
+ case PTHREAD_CANCEL_DISABLE:
+ *old_state = THR_CANCEL_DISABLE;
+ break;
+ }
+ return result;
# elif defined (ACE_HAS_STHREADS)
ACE_UNUSED_ARG (new_state);
ACE_UNUSED_ARG (old_state);
@@ -3019,10 +3075,35 @@ ACE_OS::thr_setcanceltype (int new_type, int *old_type)
#if defined (ACE_HAS_THREADS)
# if defined (ACE_HAS_PTHREADS) && !defined (ACE_LACKS_PTHREAD_CANCEL)
int result;
- ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_setcanceltype (new_type,
- old_type),
- result),
- int, -1);
+ int local_new, local_old;
+ switch (new_type)
+ {
+ case THR_CANCEL_DEFERRED:
+ local_new = PTHREAD_CANCEL_DEFERRED;
+ break;
+ case THR_CANCEL_ASYNCHRONOUS:
+ local_new = PTHREAD_CANCEL_ASYNCHRONOUS;
+ break;
+ default:
+ errno = EINVAL;
+ return -1;
+ }
+ ACE_OSCALL (ACE_ADAPT_RETVAL (pthread_setcanceltype (local_new,
+ &local_old),
+ result),
+ int, -1, result);
+ if (result == -1)
+ return -1;
+ switch (local_old)
+ {
+ case PTHREAD_CANCEL_DEFERRED:
+ *old_type = THR_CANCEL_DEFERRED;
+ break;
+ case PTHREAD_CANCEL_ASYNCHRONOUS:
+ *old_type = THR_CANCEL_ASYNCHRONOUS;
+ break;
+ }
+ return result;
# else /* Could be ACE_HAS_PTHREADS && ACE_LACKS_PTHREAD_CANCEL */
ACE_UNUSED_ARG (new_type);
ACE_UNUSED_ARG (old_type);
diff --git a/dep/acelite/ace/OS_NS_arpa_inet.cpp b/dep/acelite/ace/OS_NS_arpa_inet.cpp
index 537051cc1df..d585cc69ec9 100644
--- a/dep/acelite/ace/OS_NS_arpa_inet.cpp
+++ b/dep/acelite/ace/OS_NS_arpa_inet.cpp
@@ -1,5 +1,5 @@
// -*- C++ -*-
-// $Id: OS_NS_arpa_inet.cpp 91781 2010-09-15 12:49:15Z johnnyw $
+// $Id: OS_NS_arpa_inet.cpp 95534 2012-02-17 23:19:33Z mitza $
#include "ace/OS_NS_arpa_inet.h"
@@ -34,7 +34,7 @@ ACE_OS::inet_aton (const char *host_name, struct in_addr *addr)
addr->s_addr = ip_addr; // Network byte ordered
return 1;
}
-#elif defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x680)
+#elif defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x690)
// inet_aton() returns OK (0) on success and ERROR (-1) on failure.
// Must reset errno first. Refer to WindRiver SPR# 34949, SPR# 36026
::errnoSet(0);
diff --git a/dep/acelite/ace/OS_NS_dlfcn.inl b/dep/acelite/ace/OS_NS_dlfcn.inl
index 14960008dd1..522166befe2 100644
--- a/dep/acelite/ace/OS_NS_dlfcn.inl
+++ b/dep/acelite/ace/OS_NS_dlfcn.inl
@@ -1,6 +1,6 @@
// -*- C++ -*-
//
-// $Id: OS_NS_dlfcn.inl 85341 2009-05-14 11:07:37Z johnnyw $
+// $Id: OS_NS_dlfcn.inl 92474 2010-11-02 13:29:39Z johnnyw $
#include "ace/OS_NS_macros.h"
#include "ace/OS_NS_errno.h"
@@ -40,11 +40,7 @@ ACE_OS::dlclose (ACE_SHLIB_HANDLE handle)
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 */
+ ACE_OSCALL_RETURN (::dlclose (handle), int, -1);
#elif defined (ACE_WIN32)
ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::FreeLibrary (handle), ace_result_), int, -1);
#elif defined (__hpux)
@@ -79,11 +75,7 @@ ACE_OS::dlerror (void)
ACE_OS_TRACE ("ACE_OS::dlerror");
# if defined (ACE_HAS_SVR4_DYNAMIC_LINKING)
const char *err = 0;
-# if defined(_M_UNIX)
- ACE_OSCALL (::_dlerror (), const char *, 0, err);
-# else /* _M_UNIX */
ACE_OSCALL (::dlerror (), const char *, 0, err);
-# endif /* _M_UNIX */
if (err == 0)
return 0;
# if defined (ACE_USES_WCHAR)
@@ -128,9 +120,6 @@ ACE_OS::dlopen (const ACE_TCHAR *fname,
# if defined (ACE_HAS_SGIDLADD)
ACE_OSCALL
(::sgidladd (ACE_TEXT_ALWAYS_CHAR (fname), mode), void *, 0, handle);
-# elif defined (_M_UNIX)
- ACE_OSCALL
- (::_dlopen (ACE_TEXT_ALWAYS_CHAR (fname), mode), void *, 0, handle);
# else
ACE_OSCALL
(::dlopen (ACE_TEXT_ALWAYS_CHAR (fname), mode), void *, 0, handle);
@@ -244,8 +233,6 @@ ACE_OS::dlsym (ACE_SHLIB_HANDLE handle,
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_USES_ASM_SYMBOL_IN_DLSYM */
diff --git a/dep/acelite/ace/OS_NS_errno.h b/dep/acelite/ace/OS_NS_errno.h
index 22e3d006d06..36c3e94b21c 100644
--- a/dep/acelite/ace/OS_NS_errno.h
+++ b/dep/acelite/ace/OS_NS_errno.h
@@ -4,7 +4,7 @@
/**
* @file OS_NS_errno.h
*
- * $Id: OS_NS_errno.h 85321 2009-05-12 08:31:31Z johnnyw $
+ * $Id: OS_NS_errno.h 94454 2011-09-08 17:36:56Z johnnyw $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
* @author Jesper S. M|ller<stophph@diku.dk>
@@ -84,7 +84,9 @@ private:
# define ACE_ERRNO_TYPE ACE_CE_Errno
# define ACE_ERRNO_GET ACE_CE_Errno::instance ()->operator int()
#else
-# define ACE_ERRNO_TYPE int
+# if !defined (ACE_ERRNO_TYPE)
+# define ACE_ERRNO_TYPE int
+# endif /* !ACE_ERRNO_TYPE */
# define ACE_ERRNO_GET errno
#endif /* ACE_HAS_WINCE_BROKEN_ERRNO */
diff --git a/dep/acelite/ace/OS_NS_errno.inl b/dep/acelite/ace/OS_NS_errno.inl
index 3795eec54a7..3a3ec6c5403 100644
--- a/dep/acelite/ace/OS_NS_errno.inl
+++ b/dep/acelite/ace/OS_NS_errno.inl
@@ -1,6 +1,6 @@
// -*- C++ -*-
//
-// $Id: OS_NS_errno.inl 80826 2008-03-04 14:51:23Z wotte $
+// $Id: OS_NS_errno.inl 94454 2011-09-08 17:36:56Z johnnyw $
#include "ace/config-all.h" /* Need ACE_TRACE */
@@ -17,8 +17,8 @@ ACE_OS::last_error (void)
// C++ socket wrapper facades. On Windows, some things that would
// use errno on UNIX require ::GetLastError(), so this method tries
// to shield the rest of ACE from having to know about this.
- int lerror = ::GetLastError ();
- int lerrno = errno;
+ int const lerror = ::GetLastError ();
+ int const lerrno = errno;
return lerrno == 0 ? lerror : lerrno;
#else
return errno;
diff --git a/dep/acelite/ace/OS_NS_math.h b/dep/acelite/ace/OS_NS_math.h
index 9ba3b6632ad..210554eede6 100644
--- a/dep/acelite/ace/OS_NS_math.h
+++ b/dep/acelite/ace/OS_NS_math.h
@@ -4,7 +4,7 @@
/**
* @file OS_NS_math.h
*
- * $Id: OS_NS_math.h 89470 2010-03-12 12:12:12Z olli $
+ * $Id: OS_NS_math.h 95724 2012-05-03 06:43:31Z johnnyw $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
* @author Jesper S. M|ller<stophph@diku.dk>
@@ -89,18 +89,40 @@ namespace ACE_OS
{
/// This method computes the largest integral value not greater than x.
template <typename T>
+ inline
T floor (T x)
{
return ACE_STD_NAMESPACE::floor (x);
}
+#if defined (ACE_HAS_WINCE)
+ /// Windows CE has an intrinsic floor for float
+ template <>
+ inline
+ float floor (float x)
+ {
+ return ACE_STD_NAMESPACE::floorf (x);
+ }
+#endif
+
/// This method computes the smallest integral value not less than x.
template <typename T>
+ inline
T ceil (T x)
{
return ACE_STD_NAMESPACE::ceil (x);
}
+#if defined (ACE_HAS_WINCE)
+ /// Windows CE has an intrinsic ceil for float
+ template <>
+ inline
+ float ceil (float x)
+ {
+ return ACE_STD_NAMESPACE::ceilf (x);
+ }
+#endif
+
/// This method computes the base-2 logarithm of x.
ACE_NAMESPACE_INLINE_FUNCTION
double log2 (double x);
diff --git a/dep/acelite/ace/OS_NS_math.inl b/dep/acelite/ace/OS_NS_math.inl
index e66dc496e5d..76a50caa47f 100644
--- a/dep/acelite/ace/OS_NS_math.inl
+++ b/dep/acelite/ace/OS_NS_math.inl
@@ -1,6 +1,5 @@
// -*- C++ -*-
-//
-// $Id: OS_NS_math.inl 89470 2010-03-12 12:12:12Z olli $
+// $Id: OS_NS_math.inl 93622 2011-03-22 15:45:57Z johnnyw $
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/OS_NS_netdb.cpp b/dep/acelite/ace/OS_NS_netdb.cpp
index b615df1387d..6de2b74e580 100644
--- a/dep/acelite/ace/OS_NS_netdb.cpp
+++ b/dep/acelite/ace/OS_NS_netdb.cpp
@@ -1,10 +1,8 @@
// -*- C++ -*-
-// $Id: OS_NS_netdb.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: OS_NS_netdb.cpp 95533 2012-02-14 22:59:17Z wotte $
#include "ace/OS_NS_netdb.h"
-
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_netdb.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
@@ -17,196 +15,6 @@
#include "ace/OS_NS_stropts.h"
#include "ace/OS_NS_sys_socket.h"
-ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-
-#if defined (ACE_VXWORKS) && defined (ACE_LACKS_GETHOSTBYADDR)
-
-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;
-}
-
-#endif /* ACE_VXWORKS && ACE_LACKS_GETHOSTBYADDR */
-
-#if defined (ACE_VXWORKS) && defined (ACE_LACKS_GETHOSTBYADDR)
-
-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;
-}
-
-#endif /* ACE_VXWORKS && ACE_LACKS_GETHOSTBYADDR */
-
-#if defined (ACE_VXWORKS) && defined (ACE_LACKS_GETHOSTBYNAME)
-
-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];
-
- if (0 == name || '\0' == name[0])
- return 0;
-
- ACE_OSCALL (::hostGetByName (const_cast <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;
-}
-
-#endif /* ACE_VXWORKS && ACE_LACKS_GETHOSTBYNAME */
-
-#if defined (ACE_VXWORKS) && defined (ACE_LACKS_GETHOSTBYNAME)
-
-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 (0 == name || '\0' == name[0])
- return 0;
-
- if (ACE_OS::netdb_acquire ())
- return 0;
- else
- {
- int addr;
- ACE_OSCALL (::hostGetByName (const_cast <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;
-}
-
-#endif /* ACE_VXWORKS && ACE_LACKS_GETHOSTBYNAME*/
-
-ACE_END_VERSIONED_NAMESPACE_DECL
-
// Include if_arp so that getmacaddr can use the
// arp structure.
#if defined (sun)
@@ -356,7 +164,7 @@ ACE_OS::getmacaddress (struct macaddr_node_t *node)
return 0;
-#elif defined (linux) && !defined (ACE_LACKS_NETWORKING)
+#elif defined (ACE_LINUX) && !defined (ACE_LACKS_NETWORKING)
struct ifreq ifr;
@@ -385,7 +193,7 @@ ACE_OS::getmacaddress (struct macaddr_node_t *node)
return 0;
-#elif defined (ACE_HAS_IPHONE) || defined (ACE_HAS_MAC_OSX)
+#elif defined (ACE_HAS_SIOCGIFCONF)
const long BUFFERSIZE = 4000;
char buffer[BUFFERSIZE];
diff --git a/dep/acelite/ace/OS_NS_netdb.h b/dep/acelite/ace/OS_NS_netdb.h
index 0c6bdf43556..63f2bafc7ea 100644
--- a/dep/acelite/ace/OS_NS_netdb.h
+++ b/dep/acelite/ace/OS_NS_netdb.h
@@ -4,7 +4,7 @@
/**
* @file OS_NS_netdb.h
*
- * $Id: OS_NS_netdb.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: OS_NS_netdb.h 93597 2011-03-21 12:54:52Z johnnyw $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
* @author Jesper S. M|ller<stophph@diku.dk>
@@ -38,20 +38,12 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
namespace ACE_OS
{
-#if defined (ACE_VXWORKS) && defined (ACE_LACKS_GETHOSTBYADDR)
- extern ACE_Export
-#else
ACE_NAMESPACE_INLINE_FUNCTION
-#endif /* ACE_VXWORKS */
struct hostent *gethostbyaddr (const char *addr,
int length,
int type);
-#if defined (ACE_VXWORKS) && defined (ACE_LACKS_GETHOSTBYADDR)
- extern ACE_Export
-#else
ACE_NAMESPACE_INLINE_FUNCTION
-#endif /* ACE_VXWORKS */
struct hostent *gethostbyaddr_r (const char *addr,
int length,
int type,
@@ -59,18 +51,10 @@ namespace ACE_OS
ACE_HOSTENT_DATA buffer,
int *h_errnop);
-#if defined (ACE_VXWORKS) && defined (ACE_LACKS_GETHOSTBYNAME)
- extern ACE_Export
-#else
ACE_NAMESPACE_INLINE_FUNCTION
-#endif /* ACE_VXWORKS */
struct hostent *gethostbyname (const char *name);
-#if defined (ACE_VXWORKS) && defined (ACE_LACKS_GETHOSTBYNAME)
- extern ACE_Export
-#else
ACE_NAMESPACE_INLINE_FUNCTION
-#endif /* ACE_VXWORKS */
struct hostent *gethostbyname_r (const char *name,
struct hostent *result,
ACE_HOSTENT_DATA buffer,
diff --git a/dep/acelite/ace/OS_NS_netdb.inl b/dep/acelite/ace/OS_NS_netdb.inl
index 0888c72f934..2db9779a348 100644
--- a/dep/acelite/ace/OS_NS_netdb.inl
+++ b/dep/acelite/ace/OS_NS_netdb.inl
@@ -1,6 +1,6 @@
// -*- C++ -*-
//
-// $Id: OS_NS_netdb.inl 91683 2010-09-09 09:07:49Z johnnyw $
+// $Id: OS_NS_netdb.inl 93597 2011-03-21 12:54:52Z johnnyw $
#include "ace/OS_NS_macros.h"
#include "ace/OS_NS_string.h"
@@ -42,8 +42,6 @@
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-#if !(defined (ACE_VXWORKS) && defined (ACE_LACKS_GETHOSTBYADDR))
-
ACE_INLINE struct hostent *
ACE_OS::gethostbyaddr (const char *addr, int length, int type)
{
@@ -86,10 +84,6 @@ ACE_OS::gethostbyaddr (const char *addr, int length, int type)
# endif /* !ACE_LACKS_GETHOSTBYADDR */
}
-#endif
-
-#if !(defined (ACE_VXWORKS) && defined (ACE_LACKS_GETHOSTBYADDR))
-
ACE_INLINE struct hostent *
ACE_OS::gethostbyaddr_r (const char *addr,
int length,
@@ -143,6 +137,7 @@ ACE_OS::gethostbyaddr_r (const char *addr,
else
return (struct hostent *) 0;
# elif defined (ACE_VXWORKS)
+ ACE_UNUSED_ARG (h_errnop);
// VxWorks 6.x has a threadsafe gethostbyaddr() which returns a heap-allocated
// data structure which needs to be freed with hostentFree()
//FUZZ: disable check_for_lack_ACE_OS
@@ -233,10 +228,6 @@ ACE_OS::gethostbyaddr_r (const char *addr,
# endif /* ACE_LACKS_GETHOSTBYADDR_R */
}
-#endif
-
-#if !(defined (ACE_VXWORKS) && defined (ACE_LACKS_GETHOSTBYNAME))
-
ACE_INLINE struct hostent *
ACE_OS::gethostbyname (const char *name)
{
@@ -273,10 +264,6 @@ ACE_OS::gethostbyname (const char *name)
# endif /* !ACE_LACKS_GETHOSTBYNAME */
}
-#endif
-
-#if !(defined (ACE_VXWORKS) && defined (ACE_LACKS_GETHOSTBYNAME))
-
ACE_INLINE struct hostent *
ACE_OS::gethostbyname_r (const char *name,
struct hostent *result,
@@ -333,6 +320,7 @@ ACE_OS::gethostbyname_r (const char *name,
else
return (struct hostent *) 0;
# elif defined (ACE_VXWORKS)
+ ACE_UNUSED_ARG (h_errnop);
// VxWorks 6.x has a threadsafe gethostbyname() which returns a heap-allocated
// data structure which needs to be freed with hostentFree()
//FUZZ: disable check_for_lack_ACE_OS
@@ -423,8 +411,6 @@ ACE_OS::gethostbyname_r (const char *name,
# endif /* defined (ACE_HAS_REENTRANT_FUNCTIONS) */
}
-#endif
-
ACE_INLINE struct hostent *
ACE_OS::getipnodebyaddr (const void *src, size_t len, int family)
{
diff --git a/dep/acelite/ace/OS_NS_pwd.h b/dep/acelite/ace/OS_NS_pwd.h
index f32c247d224..ffbf7180b58 100644
--- a/dep/acelite/ace/OS_NS_pwd.h
+++ b/dep/acelite/ace/OS_NS_pwd.h
@@ -4,7 +4,7 @@
/**
* @file OS_NS_pwd.h
*
- * $Id: OS_NS_pwd.h 87270 2009-10-29 21:47:47Z olli $
+ * $Id: OS_NS_pwd.h 93597 2011-03-21 12:54:52Z johnnyw $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
* @author Jesper S. M|ller<stophph@diku.dk>
@@ -39,8 +39,6 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
namespace ACE_OS
{
-
-
//@{ @name A set of wrappers for password routines.
ACE_NAMESPACE_INLINE_FUNCTION
@@ -53,14 +51,15 @@ namespace ACE_OS
struct passwd *getpwnam (const char *user);
ACE_NAMESPACE_INLINE_FUNCTION
- struct passwd *getpwnam_r (const char *name,
- struct passwd *pwent,
- char *buffer,
- int buflen);
+ int getpwnam_r (const char *name,
+ struct passwd *pwd,
+ char *buffer,
+ size_t bufsize,
+ struct passwd **result);
+
ACE_NAMESPACE_INLINE_FUNCTION
void setpwent (void);
//@}
-
} /* namespace ACE_OS */
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/OS_NS_pwd.inl b/dep/acelite/ace/OS_NS_pwd.inl
index 6fcb076fd8b..396ea0af064 100644
--- a/dep/acelite/ace/OS_NS_pwd.inl
+++ b/dep/acelite/ace/OS_NS_pwd.inl
@@ -1,6 +1,6 @@
// -*- C++ -*-
//
-// $Id: OS_NS_pwd.inl 91781 2010-09-15 12:49:15Z johnnyw $
+// $Id: OS_NS_pwd.inl 93563 2011-03-16 14:33:48Z olli $
#include "ace/OS_NS_errno.h"
@@ -37,71 +37,31 @@ ACE_OS::getpwnam (const char *name)
#endif /* ACE_LACKS_PWD_FUNCTIONS */
}
-ACE_INLINE struct passwd *
-ACE_OS::getpwnam_r (const char *name, struct passwd *pwent,
- char *buffer, int buflen)
+ACE_INLINE int
+ACE_OS::getpwnam_r (const char *name,
+ struct passwd *pwd,
+ char *buffer,
+ size_t bufsize,
+ struct passwd **result)
{
-#if defined (ACE_HAS_POSIX_GETPWNAM_R)
- struct passwd *result = 0;
-
- int const 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) && \
- !defined (ACE_HAS_STHREADS) || \
- defined (HPUX_11)
- struct passwd *result = 0;
- int status;
- // 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;
- }
- return result;
-# elif defined (AIX)
- 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 */
-# else
+#if defined (ACE_LACKS_PWD_FUNCTIONS)
ACE_UNUSED_ARG (name);
- ACE_UNUSED_ARG (pwent);
+ ACE_UNUSED_ARG (pwd);
ACE_UNUSED_ARG (buffer);
- ACE_UNUSED_ARG (buflen);
+ ACE_UNUSED_ARG (bufsize);
+ ACE_UNUSED_ARG (result);
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 */
+#elif defined (ACE_HAS_LYNXOS4_GETPWNAM_R)
+ if (::getpwnam_r (pwd, const_cast<char*>(name), buffer, bufsize) == -1)
+ {
+ *result = 0;
+ return -1;
+ }
+ *result = pwd;
+ return 0;
#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 */
+ return ::getpwnam_r (name, pwd, buffer, bufsize, result);
+#endif /* ACE_LACKS_PWD_FUNCTIONS */
}
ACE_INLINE void
diff --git a/dep/acelite/ace/OS_NS_signal.h b/dep/acelite/ace/OS_NS_signal.h
index 8dc02c10ab2..123011f1eaf 100644
--- a/dep/acelite/ace/OS_NS_signal.h
+++ b/dep/acelite/ace/OS_NS_signal.h
@@ -4,7 +4,7 @@
/**
* @file OS_NS_signal.h
*
- * $Id: OS_NS_signal.h 87097 2009-10-14 14:42:24Z olli $
+ * $Id: OS_NS_signal.h 93481 2011-03-04 14:59:09Z olli $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
* @author Jesper S. M|ller<stophph@diku.dk>
@@ -33,10 +33,10 @@
#endif
#define ACE_EXPORT_MACRO ACE_Export
-#if defined (__Lynx__)
-// LynxOS defines pthread_sigmask() in pthread.h
+#if defined (__Lynx__) || defined (__OpenBSD__)
+// LynxOS and OpenBSD define pthread_sigmask() in pthread.h
# include "ace/os_include/os_pthread.h"
-#endif /* __Lynx__ */
+#endif /* __Lynx__ || OpenBSD */
/*
* We inline and undef some functions that may be implemented
diff --git a/dep/acelite/ace/OS_NS_signal.inl b/dep/acelite/ace/OS_NS_signal.inl
index d6f6494e118..43046245f3b 100644
--- a/dep/acelite/ace/OS_NS_signal.inl
+++ b/dep/acelite/ace/OS_NS_signal.inl
@@ -1,6 +1,5 @@
// -*- C++ -*-
-//
-// $Id: OS_NS_signal.inl 87480 2009-11-11 11:38:15Z olli $
+// $Id: OS_NS_signal.inl 93651 2011-03-28 08:49:11Z johnnyw $
#include "ace/OS_NS_macros.h"
#include "ace/OS_NS_errno.h"
diff --git a/dep/acelite/ace/OS_NS_stdio.h b/dep/acelite/ace/OS_NS_stdio.h
index bf120229c28..bbb30ca82e8 100644
--- a/dep/acelite/ace/OS_NS_stdio.h
+++ b/dep/acelite/ace/OS_NS_stdio.h
@@ -4,7 +4,7 @@
/**
* @file OS_NS_stdio.h
*
- * $Id: OS_NS_stdio.h 92178 2010-10-08 07:44:20Z olli $
+ * $Id: OS_NS_stdio.h 93500 2011-03-07 16:19:27Z vzykov $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
* @author Jesper S. M|ller<stophph@diku.dk>
@@ -220,7 +220,8 @@ namespace ACE_OS {
//@}
extern ACE_Export
- int asprintf (char **bufp, const char* format, ...);
+ int asprintf (char **bufp, const char* format, ...)
+ ACE_GCC_FORMAT_ATTRIBUTE (printf, 2, 3);
# if defined (ACE_HAS_WCHAR)
extern ACE_Export
@@ -371,7 +372,8 @@ namespace ACE_OS {
#endif /* ACE_WIN32 */
extern ACE_Export
- int fprintf (FILE *fp, const char *format, ...);
+ int fprintf (FILE *fp, const char *format, ...)
+ ACE_GCC_FORMAT_ATTRIBUTE (printf, 2, 3);
# if defined (ACE_HAS_WCHAR)
extern ACE_Export
@@ -437,7 +439,8 @@ namespace ACE_OS {
#endif /* ACE_HAS_WCHAR */
extern ACE_Export
- int printf (const char *format, ...);
+ int printf (const char *format, ...)
+ ACE_GCC_FORMAT_ATTRIBUTE (printf, 1, 2);
#if defined (ACE_HAS_WCHAR)
extern ACE_Export
@@ -468,7 +471,8 @@ namespace ACE_OS {
void rewind (FILE *fp);
extern ACE_Export
- int snprintf (char *buf, size_t maxlen, const char *format, ...);
+ int snprintf (char *buf, size_t maxlen, const char *format, ...)
+ ACE_GCC_FORMAT_ATTRIBUTE (printf, 3, 4);
# if defined (ACE_HAS_WCHAR)
extern ACE_Export
@@ -476,7 +480,8 @@ namespace ACE_OS {
# endif /* ACE_HAS_WCHAR */
extern ACE_Export
- int sprintf (char *buf, const char *format, ...);
+ int sprintf (char *buf, const char *format, ...)
+ ACE_GCC_FORMAT_ATTRIBUTE (printf, 2, 3);
# if defined (ACE_HAS_WCHAR)
extern ACE_Export
@@ -494,19 +499,24 @@ namespace ACE_OS {
#endif /* ACE_HAS_WCHAR */
ACE_NAMESPACE_INLINE_FUNCTION
- int vasprintf (char **bufp, const char *format, va_list argptr);
+ int vasprintf (char **bufp, const char *format, va_list argptr)
+ ACE_GCC_FORMAT_ATTRIBUTE (printf, 2, 0);
ACE_NAMESPACE_INLINE_FUNCTION
- int vprintf (const char *format, va_list argptr);
+ int vprintf (const char *format, va_list argptr)
+ ACE_GCC_FORMAT_ATTRIBUTE (printf, 1, 0);
ACE_NAMESPACE_INLINE_FUNCTION
- int vfprintf (FILE *fp, const char *format, va_list argptr);
+ int vfprintf (FILE *fp, const char *format, va_list argptr)
+ ACE_GCC_FORMAT_ATTRIBUTE (printf, 2, 0);
ACE_NAMESPACE_INLINE_FUNCTION
- int vsprintf (char *buffer, const char *format, va_list argptr);
+ int vsprintf (char *buffer, const char *format, va_list argptr)
+ ACE_GCC_FORMAT_ATTRIBUTE (printf, 2, 0);
ACE_NAMESPACE_INLINE_FUNCTION
- int vsnprintf (char *buffer, size_t maxlen, const char *format, va_list argptr);
+ int vsnprintf (char *buffer, size_t maxlen, const char *format, va_list argptr)
+ ACE_GCC_FORMAT_ATTRIBUTE (printf, 3, 0);
# if defined (ACE_HAS_WCHAR)
ACE_NAMESPACE_INLINE_FUNCTION
diff --git a/dep/acelite/ace/OS_NS_stdlib.cpp b/dep/acelite/ace/OS_NS_stdlib.cpp
index 92430d0c84d..c9ce0fe66ea 100644
--- a/dep/acelite/ace/OS_NS_stdlib.cpp
+++ b/dep/acelite/ace/OS_NS_stdlib.cpp
@@ -1,4 +1,4 @@
-// $Id: OS_NS_stdlib.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: OS_NS_stdlib.cpp 96017 2012-08-08 22:18:09Z mitza $
#include "ace/OS_NS_stdlib.h"
@@ -259,13 +259,13 @@ ACE_OS::itow_emulation (int value, wchar_t *string, int radix)
// Now reverse the string to get the correct result
while (e > b)
- {
- wchar_t temp = *e;
- *e = *b;
- *b = temp;
- ++b;
- --e;
- }
+ {
+ wchar_t temp = *e;
+ *e = *b;
+ *b = temp;
+ ++b;
+ --e;
+ }
return string;
}
@@ -842,7 +842,7 @@ ACE_OS::strtoll_emulation (const char *nptr,
break;
if (c >= base)
break;
- if (any < 0 || acc > cutoff || acc == cutoff && c > cutlim)
+ if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim))
any = -1;
else {
any = 1;
@@ -910,7 +910,7 @@ ACE_OS::wcstoll_emulation (const wchar_t *nptr,
break;
if (c >= base)
break;
- if (any < 0 || acc > cutoff || acc == cutoff && c > cutlim)
+ if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim))
any = -1;
else {
any = 1;
@@ -978,7 +978,7 @@ ACE_OS::strtoull_emulation (const char *nptr,
break;
if (c >= base)
break;
- if (any < 0 || acc > cutoff || acc == cutoff && c > cutlim)
+ if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim))
any = -1;
else
{
@@ -1048,7 +1048,7 @@ ACE_OS::wcstoull_emulation (const wchar_t *nptr,
break;
if (c >= base)
break;
- if (any < 0 || acc > cutoff || acc == cutoff && c > cutlim)
+ if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim))
any = -1;
else
{
@@ -1108,7 +1108,7 @@ ACE_OS::mkstemp_emulation (ACE_TCHAR * s)
// ACE_thread_t may be a char* (returned by ACE_OS::thr_self()) so
// we need to use a C-style cast as a catch-all in order to use a
// static_cast<> to an integral type.
- ACE_RANDR_TYPE seed = static_cast<ACE_RANDR_TYPE> (msec);
+ unsigned int seed = static_cast<unsigned int> (msec);
// We only care about UTF-8 / ASCII characters in generated
// filenames. A UTF-16 or UTF-32 character could potentially cause
@@ -1148,7 +1148,7 @@ ACE_OS::mkstemp_emulation (ACE_TCHAR * s)
// selection to work for EBCDIC, as well.
do
{
- r = static_cast<ACE_TCHAR> (coefficient * ACE_OS::rand_r (seed));
+ r = static_cast<ACE_TCHAR> (coefficient * ACE_OS::rand_r (&seed));
}
while (!ACE_OS::ace_isalnum (r));
diff --git a/dep/acelite/ace/OS_NS_stdlib.h b/dep/acelite/ace/OS_NS_stdlib.h
index 28e11a96be5..4a35fe9d8e0 100644
--- a/dep/acelite/ace/OS_NS_stdlib.h
+++ b/dep/acelite/ace/OS_NS_stdlib.h
@@ -4,7 +4,7 @@
/**
* @file OS_NS_stdlib.h
*
- * $Id: OS_NS_stdlib.h 88493 2010-01-12 19:17:42Z olli $
+ * $Id: OS_NS_stdlib.h 93571 2011-03-17 07:37:11Z olli $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
* @author Jesper S. M|ller<stophph@diku.dk>
@@ -272,7 +272,7 @@ namespace ACE_OS {
int rand (void);
ACE_NAMESPACE_INLINE_FUNCTION
- int rand_r (ACE_RANDR_TYPE &seed);
+ int rand_r (unsigned int *seed);
extern ACE_Export
void *realloc (void *, size_t);
diff --git a/dep/acelite/ace/OS_NS_stdlib.inl b/dep/acelite/ace/OS_NS_stdlib.inl
index 97d04e8d855..65e005f9bb7 100644
--- a/dep/acelite/ace/OS_NS_stdlib.inl
+++ b/dep/acelite/ace/OS_NS_stdlib.inl
@@ -1,6 +1,6 @@
// -*- C++ -*-
//
-// $Id: OS_NS_stdlib.inl 91683 2010-09-09 09:07:49Z johnnyw $
+// $Id: OS_NS_stdlib.inl 95761 2012-05-15 18:23:04Z johnnyw $
#include "ace/config-all.h" /* Need ACE_TRACE */
#include "ace/Object_Manager_Base.h"
@@ -35,12 +35,11 @@ ACE_OS::_exit (int status)
ACE_INLINE void
ACE_OS::abort (void)
{
-#if !defined (ACE_HAS_WINCE)
+#if !defined (ACE_LACKS_ABORT)
::abort ();
#else
- // @@ CE doesn't support abort?
exit (1);
-#endif /* !ACE_HAS_WINCE */
+#endif /* !ACE_LACKS_ABORT */
}
ACE_INLINE int
@@ -403,45 +402,25 @@ ACE_OS::rand (void)
ACE_OSCALL_RETURN (::rand (), int, -1);
}
-#if !defined (ACE_WIN32)
-
-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 (ACE_HAS_BROKEN_RANDR)
- ACE_OSCALL_RETURN (::rand_r (seed), int, -1);
-# else
- ACE_OSCALL_RETURN (::rand_r (&seed), int, -1);
-# endif /* ACE_HAS_BROKEN_RANDR */
-# else
- ACE_UNUSED_ARG (seed);
- ACE_OSCALL_RETURN (::rand (), int, -1);
-# endif /* ACE_HAS_REENTRANT_FUNCTIONS */
-}
-
-#else /* ACE_WIN32 */
-
ACE_INLINE int
-ACE_OS::rand_r (ACE_RANDR_TYPE& seed)
+ACE_OS::rand_r (unsigned int *seed)
{
ACE_OS_TRACE ("ACE_OS::rand_r");
-
- long new_seed = (long) (seed);
+#if defined (ACE_LACKS_RAND_R)
+ long new_seed = (long) *seed;
if (new_seed == 0)
new_seed = 0x12345987;
long temp = new_seed / 127773;
new_seed = 16807 * (new_seed - temp * 127773) - 2836 * temp;
if (new_seed < 0)
new_seed += 2147483647;
- (seed) = (unsigned int)new_seed;
+ *seed = (unsigned int)new_seed;
return (int) (new_seed & RAND_MAX);
+#else
+ return ::rand_r (seed);
+# endif /* ACE_LACKS_RAND_R */
}
-#endif /* !ACE_WIN32 */
-
# if !defined (ACE_LACKS_REALPATH)
ACE_INLINE char *
ACE_OS::realpath (const char *file_name,
@@ -612,8 +591,6 @@ ACE_OS::system (const ACE_TCHAR *s)
ACE_NOTSUP_RETURN (-1);
#elif defined (ACE_WIN32) && defined (ACE_USES_WCHAR)
ACE_OSCALL_RETURN (::_wsystem (s), int, -1);
-#elif defined (ACE_TANDEM_T1248_PTHREADS)
- ACE_OSCALL_RETURN (::spt_system (s), int, -1);
#else
ACE_OSCALL_RETURN (::system (ACE_TEXT_ALWAYS_CHAR (s)), int, -1);
#endif /* ACE_LACKS_SYSTEM */
diff --git a/dep/acelite/ace/OS_NS_string.cpp b/dep/acelite/ace/OS_NS_string.cpp
index 93e112d60c8..067bb1c66a3 100644
--- a/dep/acelite/ace/OS_NS_string.cpp
+++ b/dep/acelite/ace/OS_NS_string.cpp
@@ -1,4 +1,4 @@
-// $Id: OS_NS_string.cpp 91368 2010-08-16 13:03:34Z mhengstmengel $
+// $Id: OS_NS_string.cpp 93549 2011-03-15 19:50:24Z olli $
#include "ace/ACE.h"
#include "ace/OS_NS_string.h"
@@ -368,8 +368,7 @@ ACE_OS::strsncpy (ACE_WCHAR_T *dst, const ACE_WCHAR_T *src, size_t maxlen)
return dst;
}
-#if (!defined (ACE_HAS_REENTRANT_FUNCTIONS) || defined (ACE_LACKS_STRTOK_R)) \
- && !defined (ACE_HAS_TR24731_2005_CRT)
+#if defined (ACE_LACKS_STRTOK_R)
char *
ACE_OS::strtok_r_emulation (char *s, const char *tokens, char **lasts)
{
@@ -390,7 +389,7 @@ ACE_OS::strtok_r_emulation (char *s, const char *tokens, char **lasts)
*lasts = s + l_sub;
return s ;
}
-#endif /* !ACE_HAS_REENTRANT_FUNCTIONS */
+#endif /* ACE_LACKS_STRTOK_R */
# if defined (ACE_HAS_WCHAR) && defined (ACE_LACKS_WCSTOK)
wchar_t*
diff --git a/dep/acelite/ace/OS_NS_string.h b/dep/acelite/ace/OS_NS_string.h
index 54da02a8ba8..d881d7f738f 100644
--- a/dep/acelite/ace/OS_NS_string.h
+++ b/dep/acelite/ace/OS_NS_string.h
@@ -4,7 +4,7 @@
/**
* @file OS_NS_string.h
*
- * $Id: OS_NS_string.h 91995 2010-09-24 12:45:24Z johnnyw $
+ * $Id: OS_NS_string.h 93549 2011-03-15 19:50:24Z olli $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
* @author Jesper S. M|ller<stophph@diku.dk>
@@ -449,11 +449,11 @@ namespace ACE_OS {
wchar_t *strtok_r (ACE_WCHAR_T *s, const ACE_WCHAR_T *tokens, ACE_WCHAR_T **lasts);
#endif // ACE_HAS_WCHAR
-#if !defined (ACE_HAS_REENTRANT_FUNCTIONS) || defined (ACE_LACKS_STRTOK_R)
+#if defined (ACE_LACKS_STRTOK_R)
/// Emulated strtok_r.
extern ACE_Export
char *strtok_r_emulation (char *s, const char *tokens, char **lasts);
-#endif /* !ACE_HAS_REENTRANT_FUNCTIONS */
+#endif /* ACE_LACKS_STRTOK_R */
# if defined (ACE_HAS_WCHAR) && defined(ACE_LACKS_WCSTOK)
/// Emulated strtok_r (wchar_t version).
diff --git a/dep/acelite/ace/OS_NS_string.inl b/dep/acelite/ace/OS_NS_string.inl
index 52ade6993fa..e12a6d22524 100644
--- a/dep/acelite/ace/OS_NS_string.inl
+++ b/dep/acelite/ace/OS_NS_string.inl
@@ -1,6 +1,6 @@
// -*- C++ -*-
//
-// $Id: OS_NS_string.inl 92069 2010-09-28 11:38:59Z johnnyw $
+// $Id: OS_NS_string.inl 93549 2011-03-15 19:50:24Z olli $
// OS_NS_wchar.h is only needed to get the emulation methods.
// Perhaps they should be moved. dhinton
@@ -526,11 +526,11 @@ ACE_OS::strtok_r (char *s, const char *tokens, char **lasts)
{
#if defined (ACE_HAS_TR24731_2005_CRT)
return strtok_s (s, tokens, lasts);
-#elif defined (ACE_HAS_REENTRANT_FUNCTIONS) && !defined (ACE_LACKS_STRTOK_R)
- return ::strtok_r (s, tokens, lasts);
-#else
+#elif defined (ACE_LACKS_STRTOK_R)
return ACE_OS::strtok_r_emulation (s, tokens, lasts);
-#endif /* (ACE_HAS_REENTRANT_FUNCTIONS) */
+#else
+ return ::strtok_r (s, tokens, lasts);
+#endif /* ACE_HAS_TR24731_2005_CRT */
}
#if defined (ACE_HAS_WCHAR)
diff --git a/dep/acelite/ace/OS_NS_sys_mman.cpp b/dep/acelite/ace/OS_NS_sys_mman.cpp
index 340511eb020..8f80280e983 100644
--- a/dep/acelite/ace/OS_NS_sys_mman.cpp
+++ b/dep/acelite/ace/OS_NS_sys_mman.cpp
@@ -1,9 +1,7 @@
-// $Id: OS_NS_sys_mman.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: OS_NS_sys_mman.cpp 92837 2010-12-08 17:31:02Z johnnyw $
#include "ace/OS_NS_sys_mman.h"
-
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_sys_mman.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
diff --git a/dep/acelite/ace/OS_NS_sys_mman.inl b/dep/acelite/ace/OS_NS_sys_mman.inl
index fb8a9a0b657..2e9460b5036 100644
--- a/dep/acelite/ace/OS_NS_sys_mman.inl
+++ b/dep/acelite/ace/OS_NS_sys_mman.inl
@@ -1,6 +1,6 @@
// -*- C++ -*-
//
-// $Id: OS_NS_sys_mman.inl 85429 2009-05-25 09:53:48Z johnnyw $
+// $Id: OS_NS_sys_mman.inl 92464 2010-11-01 14:58:30Z mitza $
#include "ace/OS_NS_fcntl.h"
#include "ace/OS_NS_unistd.h"
@@ -102,11 +102,18 @@ ACE_OS::mmap (void *addr,
&sa_buffer,
&sd_buffer);
+# ifdef ACE_WIN64
+ const DWORD len_low = static_cast<DWORD>(len),
+ len_high = static_cast<DWORD>(len >> 32);
+# else
+ const DWORD len_low = len, len_high = 0;
+# endif
+
*file_mapping = ACE_TEXT_CreateFileMapping (file_handle,
attr,
prot,
- 0,
- (file_handle == ACE_INVALID_HANDLE) ? len : 0,
+ (file_handle == ACE_INVALID_HANDLE) ? len_high : 0,
+ (file_handle == ACE_INVALID_HANDLE) ? len_low : 0,
file_mapping_name);
}
diff --git a/dep/acelite/ace/OS_NS_sys_msg.cpp b/dep/acelite/ace/OS_NS_sys_msg.cpp
index d59e47e7c00..789c32a4731 100644
--- a/dep/acelite/ace/OS_NS_sys_msg.cpp
+++ b/dep/acelite/ace/OS_NS_sys_msg.cpp
@@ -1,9 +1,7 @@
-// $Id: OS_NS_sys_msg.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: OS_NS_sys_msg.cpp 92837 2010-12-08 17:31:02Z johnnyw $
#include "ace/OS_NS_sys_msg.h"
-
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_sys_msg.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
diff --git a/dep/acelite/ace/OS_NS_sys_select.inl b/dep/acelite/ace/OS_NS_sys_select.inl
index e58c6166ed5..ef1d4bed72e 100644
--- a/dep/acelite/ace/OS_NS_sys_select.inl
+++ b/dep/acelite/ace/OS_NS_sys_select.inl
@@ -1,6 +1,6 @@
// -*- C++ -*-
//
-// $Id: OS_NS_sys_select.inl 80826 2008-03-04 14:51:23Z wotte $
+// $Id: OS_NS_sys_select.inl 95761 2012-05-15 18:23:04Z johnnyw $
#include "ace/OS_NS_errno.h"
#include "ace/OS_NS_macros.h"
@@ -38,9 +38,6 @@ ACE_OS::select (int width,
ACE_UNUSED_ARG (efds);
ACE_UNUSED_ARG (timeout);
ACE_NOTSUP_RETURN (-1);
-#elif defined(ACE_TANDEM_T1248_PTHREADS)
- ACE_SOCKCALL_RETURN (::spt_select (width, rfds, wfds, efds, timep),
- int, -1);
#else
ACE_SOCKCALL_RETURN (::select (width, rfds, wfds, efds, timep),
int, -1);
@@ -67,9 +64,6 @@ ACE_OS::select (int width,
ACE_UNUSED_ARG (efds);
ACE_UNUSED_ARG (timeout);
ACE_NOTSUP_RETURN (-1);
-#elif defined(ACE_TANDEM_T1248_PTHREADS)
- ACE_SOCKCALL_RETURN (::spt_select (width, rfds, wfds, efds, ___ACE_TIMEOUT),
- int, -1);
#else
ACE_SOCKCALL_RETURN (::select (width, rfds, wfds, efds, ___ACE_TIMEOUT),
int, -1);
diff --git a/dep/acelite/ace/OS_NS_sys_shm.h b/dep/acelite/ace/OS_NS_sys_shm.h
index 9f34b482bc9..5edb851171a 100644
--- a/dep/acelite/ace/OS_NS_sys_shm.h
+++ b/dep/acelite/ace/OS_NS_sys_shm.h
@@ -4,7 +4,7 @@
/**
* @file OS_NS_sys_shm.h
*
- * $Id: OS_NS_sys_shm.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: OS_NS_sys_shm.h 93359 2011-02-11 11:33:12Z mcorino $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
* @author Jesper S. M|ller<stophph@diku.dk>
@@ -37,7 +37,6 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
namespace ACE_OS
{
-
//@{ @name A set of wrappers for System V shared memory.
ACE_NAMESPACE_INLINE_FUNCTION
void *shmat (int int_id,
@@ -56,8 +55,7 @@ namespace ACE_OS
int shmget (key_t key,
size_t size,
int flags);
- ///@}
-
+ //@}
} /* namespace ACE_OS */
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/OS_NS_sys_socket.cpp b/dep/acelite/ace/OS_NS_sys_socket.cpp
index 3ce26a82490..8e64d6635ca 100644
--- a/dep/acelite/ace/OS_NS_sys_socket.cpp
+++ b/dep/acelite/ace/OS_NS_sys_socket.cpp
@@ -1,4 +1,4 @@
-// $Id: OS_NS_sys_socket.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: OS_NS_sys_socket.cpp 93822 2011-04-08 21:56:45Z mesnier_p $
#include "ace/OS_NS_sys_socket.h"
@@ -8,6 +8,8 @@
# include "ace/OS_NS_sys_socket.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
+#include "ace/Containers_T.h"
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
#if defined (ACE_WIN32)
@@ -156,4 +158,123 @@ ACE_OS::socket_fini (void)
return 0;
}
+ssize_t
+ACE_OS::sendv_partial_i (ACE_HANDLE handle,
+ const iovec *buffers,
+ int n)
+{
+ // the divide and conquer logic should remain consistent
+ // with send_partial_i
+#if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
+ DWORD bytes_sent = 0;
+ int result = 1;
+ int simulated_n = n;
+ ACE_UINT64 buffer_size = 0;
+ ACE_Array<iovec> iovec_array(simulated_n);
+ int i = 0;
+ for ( ; i < simulated_n; ++i)
+ {
+ iovec_array[i].iov_base = buffers[i].iov_base;
+ iovec_array[i].iov_len = buffers[i].iov_len;
+ buffer_size += buffers[i].iov_len;
+ }
+ // keep dividing the current buffer_size in half and then
+ // attempt to send the modified iovec buffer until some
+ // data is sent, or we get an errno that is not ENOBUFS
+ while (true)
+ {
+ ACE_UINT64 remove_size = buffer_size / 2;
+ buffer_size -= remove_size;
+ for (i = simulated_n - 1; (i >= 0) && (remove_size > 0); --i)
+ {
+ // if the buffer division splits an iovec, we need
+ // to set its iov_len properly
+ if (iovec_array[i].iov_len > remove_size)
+ {
+ iovec_array[i].iov_len -= static_cast<u_long>(remove_size);
+ break;
+ }
+ remove_size -= iovec_array[i].iov_len;
+ }
+
+ simulated_n = i + 1;
+
+ result = ::WSASend ((SOCKET) handle,
+ (WSABUF *) &(iovec_array[0]),
+ simulated_n,
+ &bytes_sent,
+ 0,
+ 0,
+ 0);
+ if (result != SOCKET_ERROR)
+ break;
+
+ ACE_OS::set_errno_to_wsa_last_error ();
+ // if ENOBUFS is received, we apply a divide and
+ // conquer strategy, but if bytes are sent we
+ // cannot guarantee this is the same behavior
+ if ((errno != ENOBUFS) ||
+ (bytes_sent != 0))
+ {
+ return -1;
+ }
+ }
+
+ return (ssize_t) bytes_sent;
+# else
+ ACE_UNUSED_ARG (handle);
+ ACE_UNUSED_ARG (buffers);
+ ACE_UNUSED_ARG (n);
+
+ return -1;
+# endif /* ACE_HAS_WINSOCK2 */
+}
+
+ssize_t
+ACE_OS::send_partial_i (ACE_HANDLE handle,
+ const char *buf,
+ size_t len,
+ int flags)
+{
+ // the divide and conquer logic should remain consistent
+ // with sendv_partial_i
+#if !defined (ACE_LACKS_SEND) && defined (ACE_WIN32)
+ DWORD bytes_sent = 0;
+ ssize_t result = 1;
+ // keep dividing the current buffer_size in half and then
+ // attempt to send the modified buffer until some data is
+ // sent, or we get an errno that is not ENOBUFS
+ while (true)
+ {
+ len -= len / 2;
+
+ result = (ssize_t) ::send ((SOCKET) handle,
+ buf,
+ static_cast<int> (len),
+ flags);
+ if (result != SOCKET_ERROR)
+ break;
+
+ ACE_OS::set_errno_to_wsa_last_error ();
+ // if ENOBUFS is received, we apply a divide and
+ // conquer strategy, but if bytes are sent we
+ // cannot guarantee this is the same behavior
+ if ((errno != ENOBUFS) ||
+ (bytes_sent != 0))
+ {
+ return -1;
+ }
+ }
+
+ return result;
+# else
+ ACE_UNUSED_ARG (handle);
+ ACE_UNUSED_ARG (buf);
+ ACE_UNUSED_ARG (len);
+ ACE_UNUSED_ARG (flags);
+
+ return -1;
+# endif /* ACE_LACKS_SEND && ACE_WIN32 */
+}
+
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/OS_NS_sys_socket.h b/dep/acelite/ace/OS_NS_sys_socket.h
index fc5d8901cfe..860de8dfb92 100644
--- a/dep/acelite/ace/OS_NS_sys_socket.h
+++ b/dep/acelite/ace/OS_NS_sys_socket.h
@@ -4,7 +4,7 @@
/**
* @file OS_NS_sys_socket.h
*
- * $Id: OS_NS_sys_socket.h 85110 2009-04-20 09:18:43Z msmit $
+ * $Id: OS_NS_sys_socket.h 95533 2012-02-14 22:59:17Z wotte $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
* @author Jesper S. M|ller<stophph@diku.dk>
@@ -192,6 +192,14 @@ namespace ACE_OS
size_t len,
int flags = 0);
+ /// internal function used by send when an ENOBUFS condition
+ /// requires a buffer to do a partial send
+ extern ACE_Export
+ ssize_t send_partial_i (ACE_HANDLE handle,
+ const char *buf,
+ size_t len,
+ int flags);
+
ACE_NAMESPACE_INLINE_FUNCTION
ssize_t sendmsg (ACE_HANDLE handle,
const struct msghdr *msg,
@@ -221,6 +229,12 @@ namespace ACE_OS
const iovec *iov,
int iovcnt);
+ /// internal function used by sendv when an ENOBUFS condition
+ /// requires a buffer to do a partial send
+ extern ACE_Export
+ ssize_t sendv_partial_i (ACE_HANDLE handle,
+ const iovec *iov,
+ int iovcnt);
/// Manipulate the options associated with a socket.
ACE_NAMESPACE_INLINE_FUNCTION
@@ -234,7 +248,7 @@ namespace ACE_OS
int shutdown (ACE_HANDLE handle,
int how);
-#if defined (__linux__) && defined (ACE_HAS_IPV6)
+#if defined (ACE_LINUX) && defined (ACE_HAS_IPV6)
ACE_NAMESPACE_INLINE_FUNCTION
unsigned int if_nametoindex (const char *ifname);
@@ -246,7 +260,7 @@ namespace ACE_OS
ACE_NAMESPACE_INLINE_FUNCTION
void if_freenameindex (struct if_nameindex *ptr);
-#endif /* __linux__ && ACE_HAS_IPV6 */
+#endif /* ACE_LINUX && ACE_HAS_IPV6 */
/// Initialize WinSock before first use (e.g., when a DLL is first
/// loaded or the first use of a socket() call.
diff --git a/dep/acelite/ace/OS_NS_sys_socket.inl b/dep/acelite/ace/OS_NS_sys_socket.inl
index f55ead2c3d7..c4ca358207c 100644
--- a/dep/acelite/ace/OS_NS_sys_socket.inl
+++ b/dep/acelite/ace/OS_NS_sys_socket.inl
@@ -1,6 +1,6 @@
// -*- C++ -*-
//
-// $Id: OS_NS_sys_socket.inl 91626 2010-09-07 10:59:20Z johnnyw $
+// $Id: OS_NS_sys_socket.inl 95533 2012-02-14 22:59:17Z wotte $
#include "ace/OS_NS_errno.h"
#include "ace/OS_NS_macros.h"
@@ -572,10 +572,21 @@ ACE_OS::send (ACE_HANDLE handle, const char *buf, size_t len, int flags)
ACE_UNUSED_ARG (flags);
ACE_NOTSUP_RETURN (-1);
#elif defined (ACE_WIN32)
- ACE_SOCKCALL_RETURN (::send ((ACE_SOCKET) handle,
- buf,
- static_cast<int> (len),
- flags), ssize_t, -1);
+ ssize_t result = ::send ((ACE_SOCKET) handle,
+ buf,
+ static_cast<int> (len),
+ flags);
+ if (result == -1)
+ {
+ ACE_OS::set_errno_to_wsa_last_error();
+ if (errno != ENOBUFS)
+ return -1;
+
+ ACE_SOCKCALL_RETURN(send_partial_i(handle, buf, len, flags), ssize_t, -1);
+ }
+ else
+ return result;
+
#else
ssize_t const ace_result_ = ::send ((ACE_SOCKET) handle, buf, len, flags);
@@ -761,7 +772,18 @@ ACE_OS::sendv (ACE_HANDLE handle,
if (result == SOCKET_ERROR)
{
ACE_OS::set_errno_to_wsa_last_error ();
- return -1;
+ if ((errno != ENOBUFS) ||
+ (bytes_sent != 0))
+ {
+ return -1;
+ }
+ result = sendv_partial_i(handle, buffers, n);
+ if (result == SOCKET_ERROR)
+ {
+ ACE_OS::set_errno_to_wsa_last_error ();
+ return -1;
+ }
+ bytes_sent = static_cast<DWORD>(result);
}
# else
for (int i = 0; i < n; ++i)
@@ -965,7 +987,7 @@ ACE_OS::socketpair (int domain, int type,
#endif /* ACE_LACKS_SOCKETPAIR */
}
-#if defined (__linux__) && defined (ACE_HAS_IPV6)
+#if defined (ACE_LINUX) && defined (ACE_HAS_IPV6)
ACE_INLINE unsigned int
ACE_OS::if_nametoindex (const char *ifname)
{
@@ -994,6 +1016,6 @@ ACE_OS::if_freenameindex (struct if_nameindex *ptr)
if (ptr != 0)
::if_freenameindex (ptr);
}
-#endif /* __linux__ && ACE_HAS_IPV6 */
+#endif /* ACE_LINUX && ACE_HAS_IPV6 */
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/OS_NS_sys_time.cpp b/dep/acelite/ace/OS_NS_sys_time.cpp
index d47c4ba1d23..39a5858829b 100644
--- a/dep/acelite/ace/OS_NS_sys_time.cpp
+++ b/dep/acelite/ace/OS_NS_sys_time.cpp
@@ -1,9 +1,7 @@
-// $Id: OS_NS_sys_time.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: OS_NS_sys_time.cpp 95719 2012-05-01 12:54:01Z johnnyw $
#include "ace/OS_NS_sys_time.h"
-
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_sys_time.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
diff --git a/dep/acelite/ace/OS_NS_sys_utsname.cpp b/dep/acelite/ace/OS_NS_sys_utsname.cpp
index b6dc6d31c05..f9efec38df5 100644
--- a/dep/acelite/ace/OS_NS_sys_utsname.cpp
+++ b/dep/acelite/ace/OS_NS_sys_utsname.cpp
@@ -1,9 +1,6 @@
-// $Id: OS_NS_sys_utsname.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: OS_NS_sys_utsname.cpp 93543 2011-03-14 08:25:46Z johnnyw $
#include "ace/OS_NS_sys_utsname.h"
-
-
-
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_stdio.h"
#include "ace/OS_NS_unistd.h"
@@ -81,11 +78,7 @@ ACE_OS::uname (ACE_utsname *name)
char processor[bufsize] = "Unknown";
char subtype[bufsize] = "Unknown";
-# if defined (ghs)
- WORD arch = sinfo.u.s.wProcessorArchitecture;
-# else
WORD arch = sinfo.wProcessorArchitecture;
-# endif
switch (arch)
{
diff --git a/dep/acelite/ace/OS_NS_sys_wait.cpp b/dep/acelite/ace/OS_NS_sys_wait.cpp
index 148d778e40b..fbb2608b321 100644
--- a/dep/acelite/ace/OS_NS_sys_wait.cpp
+++ b/dep/acelite/ace/OS_NS_sys_wait.cpp
@@ -1,9 +1,7 @@
-// $Id: OS_NS_sys_wait.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: OS_NS_sys_wait.cpp 92712 2010-11-25 12:22:13Z johnnyw $
#include "ace/OS_NS_sys_wait.h"
-
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_sys_wait.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
diff --git a/dep/acelite/ace/OS_NS_sys_wait.inl b/dep/acelite/ace/OS_NS_sys_wait.inl
index 02333b409a1..7ae954e0e85 100644
--- a/dep/acelite/ace/OS_NS_sys_wait.inl
+++ b/dep/acelite/ace/OS_NS_sys_wait.inl
@@ -1,6 +1,6 @@
// -*- C++ -*-
//
-// $Id: OS_NS_sys_wait.inl 91781 2010-09-15 12:49:15Z johnnyw $
+// $Id: OS_NS_sys_wait.inl 95761 2012-05-15 18:23:04Z johnnyw $
#include "ace/OS_NS_errno.h"
#include "ace/Global_Macros.h"
@@ -76,10 +76,6 @@ ACE_OS::waitpid (pid_t pid,
if (handle == 0)
::CloseHandle (phandle);
return result;
-#elif defined(ACE_TANDEM_T1248_PTHREADS)
- ACE_UNUSED_ARG (handle);
- ACE_OSCALL_RETURN (::spt_waitpid (pid, status, wait_options),
- pid_t, -1);
#else
ACE_UNUSED_ARG (handle);
ACE_OSCALL_RETURN (::waitpid (pid, status, wait_options),
diff --git a/dep/acelite/ace/OS_NS_time.cpp b/dep/acelite/ace/OS_NS_time.cpp
index 2e7aedf23b1..836e257675f 100644
--- a/dep/acelite/ace/OS_NS_time.cpp
+++ b/dep/acelite/ace/OS_NS_time.cpp
@@ -1,9 +1,7 @@
-// $Id: OS_NS_time.cpp 91683 2010-09-09 09:07:49Z johnnyw $
+// $Id: OS_NS_time.cpp 93561 2011-03-16 14:02:24Z olli $
#include "ace/OS_NS_time.h"
-
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_time.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
@@ -225,24 +223,9 @@ 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)
- ACE_OSCALL_RETURN (::localtime_r (t, res), struct tm *, 0);
-#elif defined (ACE_HAS_TR24731_2005_CRT)
+#if defined (ACE_HAS_TR24731_2005_CRT)
ACE_SECURECRTCALL (localtime_s (res, t), struct tm *, 0, res);
return res;
-#elif !defined (ACE_HAS_WINCE)
- ACE_OS_GUARD
-
- ACE_UNUSED_ARG (res);
- struct tm * res_ptr = 0;
- 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
@@ -292,13 +275,22 @@ ACE_OS::localtime_r (const time_t *t, struct tm *res)
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);
+#elif defined (ACE_LACKS_LOCALTIME_R)
+ ACE_OS_GUARD
+
ACE_UNUSED_ARG (res);
- ACE_NOTSUP_RETURN (0);
-#endif /* ACE_HAS_REENTRANT_FUNCTIONS */
+ struct tm * res_ptr = 0;
+ ACE_OSCALL (::localtime (t), struct tm *, 0, res_ptr);
+ if (res_ptr == 0)
+ return 0;
+ else
+ {
+ *res = *res_ptr;
+ return res;
+ }
+#else
+ ACE_OSCALL_RETURN (::localtime_r (t, res), struct tm *, 0);
+#endif /* ACE_HAS_TR24731_2005_CRT */
}
time_t
@@ -329,28 +321,6 @@ ACE_OS::mktime (struct tm *t)
# endif /* ACE_HAS_WINCE */
}
-#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)");
-}
-#endif /* ACE_HAS_POWERPC_TIMER && ghs */
-
#if defined (ACE_LACKS_STRPTIME)
char *
ACE_OS::strptime_emulation (const char *buf, const char *format, struct tm *tm)
diff --git a/dep/acelite/ace/OS_NS_time.h b/dep/acelite/ace/OS_NS_time.h
index dc22f0a0cbd..078dd9a6948 100644
--- a/dep/acelite/ace/OS_NS_time.h
+++ b/dep/acelite/ace/OS_NS_time.h
@@ -4,7 +4,7 @@
/**
* @file OS_NS_time.h
*
- * $Id: OS_NS_time.h 87260 2009-10-29 14:00:43Z olli $
+ * $Id: OS_NS_time.h 95763 2012-05-16 06:43:51Z johnnyw $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
* @author Jesper S. M|ller<stophph@diku.dk>
@@ -94,11 +94,11 @@ inline long ace_timezone()
#if !defined (ACE_LACKS_DIFFTIME)
-# if defined (_WIN32_WCE) && (_WIN32_WCE == 0x600) && !defined (_USE_32BIT_TIME_T) \
+# if defined (_WIN32_WCE) && ((_WIN32_WCE >= 0x600) && (_WIN32_WCE <= 0x700)) && !defined (_USE_32BIT_TIME_T) \
&& defined (_MSC_VER)
- // The WinCE 6.0 SDK ships with a diff_time that uses __time32_t as type
+ // The WinCE 6.0/7.0 SDK ships with a diff_time that uses __time32_t as type
// not time_t. This resolves in compilation warnings because time_t
- // can be 64bit. Disable at this momemt the warning for just this method
+ // can be 64bit. Disable at this moment the warning for just this method
// else we get two compile warnings on each source file that includes
// this file.
# pragma warning (push)
@@ -117,42 +117,32 @@ inline double ace_difftime(time_t t1, time_t t0)
{
return difftime (t1, t0);
}
-# if defined (_WIN32_WCE) && (_WIN32_WCE == 0x600) && !defined (_USE_32BIT_TIME_T) \
+# if defined (_WIN32_WCE) && ((_WIN32_WCE >= 0x600) && (_WIN32_WCE <= 0x700)) && !defined (_USE_32BIT_TIME_T) \
&& defined (_MSC_VER)
# pragma warning (pop)
# endif
#endif /* !ACE_LACKS_DIFFTIME */
# if defined (ACE_WIN32)
-# 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
# elif defined (_TNS_R_TARGET)
typedef long long ACE_hrtime_t;
# else /* !ACE_WIN32 */
-# if defined (ACE_HAS_HI_RES_TIMER) && !defined (ACE_LACKS_LONGLONG_T)
+# if defined (ACE_HAS_HI_RES_TIMER)
/* 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 */
+# else /* ! ACE_HAS_HI_RES_TIMER */
typedef ACE_UINT64 ACE_hrtime_t;
-# endif /* ! ACE_HAS_HI_RES_TIMER || ACE_LACKS_LONGLONG_T */
+# endif /* ! ACE_HAS_HI_RES_TIMER */
# endif /* ACE_WIN32 */
-# if defined (ACE_LACKS_UNSIGNEDLONGLONG_T)
-# define ACE_HRTIME_CONVERSION(VAL) ACE_U64_TO_U32(VAL)
-# define ACE_HRTIME_TO_U64(VAL) ACE_U_LongLong(VAL)
-# else
-# define ACE_HRTIME_CONVERSION(VAL) (VAL)
-# define ACE_HRTIME_TO_U64(VAL) (VAL)
-# endif
+#define ACE_HRTIME_CONVERSION(VAL) (VAL)
+#define ACE_HRTIME_TO_U64(VAL) (VAL)
namespace ACE_OS
{
@@ -216,6 +206,29 @@ namespace ACE_OS
struct tm *localtime_r (const time_t *clock,
struct tm *res);
+#if defined (ACE_USES_ULONG_FOR_STAT_TIME)
+ ACE_NAMESPACE_INLINE_FUNCTION
+ ACE_TCHAR *ctime (const unsigned long *t);
+
+ ACE_NAMESPACE_INLINE_FUNCTION
+ ACE_TCHAR *ctime_r (const unsigned long *clock, ACE_TCHAR *buf, int buflen);
+
+ ACE_NAMESPACE_INLINE_FUNCTION
+ struct tm *gmtime (const unsigned long *clock);
+
+ ACE_NAMESPACE_INLINE_FUNCTION
+ struct tm *gmtime_r (const unsigned long *clock,
+ struct tm *res);
+
+ ACE_NAMESPACE_INLINE_FUNCTION
+ struct tm *localtime (const unsigned long *clock);
+
+ ACE_NAMESPACE_INLINE_FUNCTION
+ struct tm *localtime_r (const unsigned long *clock,
+ struct tm *res);
+#endif
+
+
// Get the current time.
extern ACE_Export
time_t mktime (struct tm *timeptr);
@@ -224,17 +237,12 @@ namespace ACE_OS
int nanosleep (const struct timespec *requested,
struct timespec *remaining = 0);
-# if defined (ACE_HAS_POWERPC_TIMER) && defined (ghs)
- extern ACE_Export
- void readPPCTimeBase (u_long &most,
- u_long &least);
-# endif /* ACE_HAS_POWERPC_TIMER && ghs */
-
ACE_NAMESPACE_INLINE_FUNCTION
size_t strftime (char *s,
size_t maxsize,
const char *format,
- const struct tm *timeptr);
+ const struct tm *timeptr)
+ ACE_GCC_FORMAT_ATTRIBUTE (strftime, 3, 0);
/**
* strptime wrapper. Note that the struct @a tm will always be set to
diff --git a/dep/acelite/ace/OS_NS_time.inl b/dep/acelite/ace/OS_NS_time.inl
index c89fba5accb..0d99bb88028 100644
--- a/dep/acelite/ace/OS_NS_time.inl
+++ b/dep/acelite/ace/OS_NS_time.inl
@@ -1,6 +1,6 @@
// -*- C++ -*-
//
-// $Id: OS_NS_time.inl 91683 2010-09-09 09:07:49Z johnnyw $
+// $Id: OS_NS_time.inl 95763 2012-05-16 06:43:51Z johnnyw $
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_errno.h"
@@ -199,6 +199,48 @@ ACE_OS::ctime_r (const time_t *t, ACE_TCHAR *buf, int buflen)
}
#endif /* !ACE_HAS_WINCE */
+#if defined (ACE_USES_ULONG_FOR_STAT_TIME)
+ACE_INLINE ACE_TCHAR *
+ACE_OS::ctime (const unsigned long *t)
+{
+ return ACE_OS::ctime (reinterpret_cast<const time_t *>(t));
+}
+
+ACE_INLINE ACE_TCHAR *
+ACE_OS::ctime_r (const unsigned long *clock, ACE_TCHAR *buf, int buflen)
+{
+ return ACE_OS::ctime_r (reinterpret_cast<const time_t *>(clock), buf, buflen);
+}
+
+ACE_INLINE struct tm *
+ACE_OS::gmtime (const unsigned long *clock)
+{
+ return ACE_OS::gmtime (reinterpret_cast<const time_t *>(clock));
+}
+
+ACE_INLINE struct tm *
+ACE_OS::gmtime_r (const unsigned long *clock,
+ struct tm *res)
+{
+ return ACE_OS::gmtime_r (reinterpret_cast<const time_t *>(clock), res);
+}
+
+ACE_INLINE struct tm *
+ACE_OS::localtime (const unsigned long *clock)
+{
+ return ACE_OS::localtime (reinterpret_cast<const time_t *>(clock));
+}
+
+ACE_INLINE struct tm *
+ACE_OS::localtime_r (const unsigned long *clock,
+ struct tm *res)
+{
+ return ACE_OS::localtime_r (reinterpret_cast<const time_t *>(clock), res);
+}
+
+
+#endif
+
#if !defined (ACE_LACKS_DIFFTIME)
ACE_INLINE double
ACE_OS::difftime (time_t t1, time_t t0)
@@ -207,10 +249,6 @@ ACE_OS::difftime (time_t t1, time_t t0)
}
#endif /* ! ACE_LACKS_DIFFTIME */
-#if defined (ghs) && defined (ACE_HAS_PENTIUM) && !defined (ACE_WIN32)
- extern "C" ACE_hrtime_t ACE_GETHRTIME_NAME ();
-#endif /* ghs && ACE_HAS_PENTIUM */
-
ACE_INLINE ACE_hrtime_t
ACE_OS::gethrtime (const ACE_HRTimer_Op op)
{
@@ -232,24 +270,14 @@ ACE_OS::gethrtime (const ACE_HRTimer_Op op)
::QueryPerformanceCounter (&freq);
-# if defined (ACE_LACKS_LONGLONG_T)
- ACE_UINT64 uint64_freq (freq.u.LowPart,
- static_cast<unsigned int> (freq.u.HighPart));
- return uint64_freq;
-# else
return freq.QuadPart;
-# endif //ACE_LACKS_LONGLONG_T
#elif defined (ghs) && defined (ACE_HAS_PENTIUM)
ACE_UNUSED_ARG (op);
// Use .obj/gethrtime.o, which was compiled with g++.
return ACE_GETHRTIME_NAME ();
#elif (defined (__GNUG__) || defined (__INTEL_COMPILER)) && !defined(ACE_VXWORKS) && 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 */
#if defined (__amd64__) || defined (__x86_64__)
// Read the high res tick counter into 32 bit int variables "eax" and
@@ -263,18 +291,8 @@ ACE_OS::gethrtime (const ACE_HRTimer_Op op)
asm volatile ("rdtsc" : "=A" (now) : : "memory");
#endif
-# 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)
+#elif defined (ACE_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,
@@ -310,11 +328,7 @@ ACE_OS::gethrtime (const ACE_HRTimer_Op op)
} while (most != scratch);
#endif
-#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)
// e.g., VxWorks (besides POWERPC && GreenHills) . . .
@@ -330,7 +344,6 @@ ACE_OS::gethrtime (const ACE_HRTimer_Op op)
&ts);
// Carefully create the return value to avoid arithmetic overflow
- // if ACE_hrtime_t is ACE_U_LongLong.
return static_cast<ACE_hrtime_t> (ts.tv_sec) *
ACE_U_ONE_SECOND_IN_NSECS + static_cast<ACE_hrtime_t> (ts.tv_nsec);
#else
@@ -338,7 +351,6 @@ ACE_OS::gethrtime (const ACE_HRTimer_Op op)
ACE_Time_Value const now = ACE_OS::gettimeofday ();
// Carefully create the return value to avoid arithmetic overflow
- // if ACE_hrtime_t is ACE_U_LongLong.
return (static_cast<ACE_hrtime_t> (now.sec ()) * (ACE_UINT32) 1000000 +
static_cast<ACE_hrtime_t> (now.usec ())) * (ACE_UINT32) 1000;
#endif /* ACE_HAS_HI_RES_TIMER */
@@ -467,7 +479,7 @@ ACE_OS::timezone (void)
{
return ::ace_timezone ();
}
-#endif /* linux */
+#endif /* ACE_LINUX */
ACE_INLINE void
ACE_OS::tzset (void)
diff --git a/dep/acelite/ace/OS_NS_unistd.cpp b/dep/acelite/ace/OS_NS_unistd.cpp
index 66ff09f5c3d..1d2b56a358d 100644
--- a/dep/acelite/ace/OS_NS_unistd.cpp
+++ b/dep/acelite/ace/OS_NS_unistd.cpp
@@ -1,4 +1,4 @@
-// $Id: OS_NS_unistd.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: OS_NS_unistd.cpp 94448 2011-09-08 08:20:29Z johnnyw $
#include "ace/OS_NS_unistd.h"
@@ -22,22 +22,6 @@
# include "cpuset.h"
#endif /* ACE_HAS_VXCPULIB */
-#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, reinterpret_cast <long> (&fl));
-}
-#endif /* ACE_NEEDS_FTRUNCATE */
-
-/*****************************************************************************/
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
int
@@ -723,8 +707,11 @@ ACE_OS::pwrite (ACE_HANDLE handle,
return (ssize_t) bytes_written;
# else /* ACE_WIN32 */
-
+# if defined (ACE_HAS_NON_CONST_PWRITE)
+ return ::pwrite (handle, const_cast<void*> (buf), nbytes, offset);
+# else
return ::pwrite (handle, buf, nbytes, offset);
+# endif
# endif /* ACE_WIN32 */
# else /* ACE_HAS_P_READ_WRITE */
diff --git a/dep/acelite/ace/OS_NS_unistd.h b/dep/acelite/ace/OS_NS_unistd.h
index 489dc8e43e7..298e124175a 100644
--- a/dep/acelite/ace/OS_NS_unistd.h
+++ b/dep/acelite/ace/OS_NS_unistd.h
@@ -4,7 +4,7 @@
/**
* @file OS_NS_unistd.h
*
- * $Id: OS_NS_unistd.h 91066 2010-07-12 11:05:04Z johnnyw $
+ * $Id: OS_NS_unistd.h 92712 2010-11-25 12:22:13Z johnnyw $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
* @author Jesper S. M|ller<stophph@diku.dk>
@@ -31,18 +31,11 @@
#include "ace/os_include/os_unistd.h"
#include "ace/os_include/os_stdio.h"
-
#if defined (ACE_EXPORT_MACRO)
# undef ACE_EXPORT_MACRO
#endif
#define ACE_EXPORT_MACRO ACE_Export
-// This should go in os_unistd.h, but since we don't yet implement any code
-// at that level, we put it here. It used to be in OS.i.
-#if defined (ACE_NEEDS_FTRUNCATE)
-extern "C" ACE_Export int ftruncate (ACE_HANDLE handle, long len);
-#endif /* ACE_NEEDS_FTRUNCATE */
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
namespace ACE_OS
diff --git a/dep/acelite/ace/OS_NS_unistd.inl b/dep/acelite/ace/OS_NS_unistd.inl
index 8de371fdb9a..cf23b832225 100644
--- a/dep/acelite/ace/OS_NS_unistd.inl
+++ b/dep/acelite/ace/OS_NS_unistd.inl
@@ -1,6 +1,6 @@
// -*- C++ -*-
//
-// $Id: OS_NS_unistd.inl 88515 2010-01-13 08:47:38Z johnnyw $
+// $Id: OS_NS_unistd.inl 96017 2012-08-08 22:18:09Z mitza $
#include "ace/OS_NS_sys_utsname.h"
#include "ace/OS_NS_string.h"
@@ -23,7 +23,7 @@
# include "ace/os_include/os_unistd.h"
#endif /* ACE_HAS_ACCESS_EMULATION */
-#if defined (ACE_VXWORKS) && (((ACE_VXWORKS >= 0x620) && (ACE_VXWORKS <= 0x680)) || defined (ACE_HAS_VXWORKS551_MEDUSA))
+#if defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x690)
# if defined (__RTP__)
# include "ace/os_include/os_strings.h"
# else
@@ -274,7 +274,7 @@ ACE_OS::execv (const char *path,
ACE_NOTSUP_RETURN (-1);
#elif defined (ACE_WIN32)
-# if defined (__BORLANDC__) /* VSB */
+# if defined (__BORLANDC__)
return ::execv (path, argv);
# elif defined (__MINGW32__)
return ::_execv (path, (char *const *) argv);
@@ -304,7 +304,7 @@ ACE_OS::execve (const char *path,
ACE_NOTSUP_RETURN (-1);
#elif defined (ACE_WIN32)
-# if defined (__BORLANDC__) /* VSB */
+# if defined (__BORLANDC__)
return ::execve (path, argv, envp);
# elif defined (__MINGW32__)
return ::_execve (path, (char *const *) argv, (char *const *) envp);
@@ -332,7 +332,7 @@ ACE_OS::execvp (const char *file,
ACE_NOTSUP_RETURN (-1);
#elif defined (ACE_WIN32)
-# if defined (__BORLANDC__) /* VSB */
+# if defined (__BORLANDC__)
return ::execvp (file, argv);
# elif defined (__MINGW32__)
return ::_execvp (file, (char *const *) argv);
@@ -478,7 +478,7 @@ ACE_OS::getpgid (pid_t pid)
#if defined (ACE_LACKS_GETPGID)
ACE_UNUSED_ARG (pid);
ACE_NOTSUP_RETURN (-1);
-#elif defined (linux) && __GLIBC__ > 1 && __GLIBC_MINOR__ >= 0
+#elif defined (ACE_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
@@ -763,7 +763,6 @@ 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 = static_cast<DWORD> (len);
@@ -772,6 +771,7 @@ ACE_OS::read (ACE_HANDLE handle, void *buf, size_t len,
else
ACE_FAIL_RETURN (-1);
#else
+ ACE_UNUSED_ARG (overlapped);
return ACE_OS::read (handle, buf, len);
#endif /* ACE_WIN32 */
}
@@ -955,13 +955,9 @@ ACE_OS::sleep (const ACE_Time_Value &tv)
// Copy the timeval, because this platform doesn't declare the timeval
// as a pointer to const.
timeval tv_copy = tv;
-# if defined(ACE_TANDEM_T1248_PTHREADS)
- ACE_OSCALL_RETURN (::spt_select (0, 0, 0, 0, &tv_copy), int, -1);
-# else
- //FUZZ: disable check_for_lack_ACE_OS
- ACE_OSCALL_RETURN (::select (0, 0, 0, 0, &tv_copy), int, -1);
- //FUZZ: enable check_for_lack_ACE_OS
-# endif
+ //FUZZ: disable check_for_lack_ACE_OS
+ ACE_OSCALL_RETURN (::select (0, 0, 0, 0, &tv_copy), int, -1);
+ //FUZZ: enable check_for_lack_ACE_OS
# else /* ! ACE_HAS_NONCONST_SELECT_TIMEVAL */
const timeval *tvp = tv;
//FUZZ: disable check_for_lack_ACE_OS
@@ -1114,7 +1110,11 @@ ACE_OS::ualarm (useconds_t usecs, useconds_t interval)
return ::ualarm (usecs, interval);
#elif !defined (ACE_LACKS_UNIX_SIGNALS)
ACE_UNUSED_ARG (interval);
+# if defined (ACE_VXWORKS) && ACE_VXWORKS >= 0x690 && defined (_WRS_CONFIG_LP64)
+ return ::alarm (static_cast<unsigned int> (usecs * ACE_ONE_SECOND_IN_USECS));
+# else
return ::alarm (usecs * ACE_ONE_SECOND_IN_USECS);
+#endif
#else
ACE_UNUSED_ARG (usecs);
ACE_UNUSED_ARG (interval);
@@ -1135,7 +1135,11 @@ ACE_OS::ualarm (const ACE_Time_Value &tv,
return ::ualarm (usecs, interval);
#elif !defined (ACE_LACKS_UNIX_SIGNALS)
ACE_UNUSED_ARG (tv_interval);
+# if defined (ACE_VXWORKS) && ACE_VXWORKS >= 0x690 && defined (_WRS_CONFIG_LP64)
+ return ::alarm (static_cast<unsigned int> (tv.sec ()));
+# else
return ::alarm (tv.sec ());
+# endif
#else
ACE_UNUSED_ARG (tv_interval);
ACE_UNUSED_ARG (tv);
@@ -1209,7 +1213,6 @@ ACE_OS::write (ACE_HANDLE handle,
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.
@@ -1219,6 +1222,7 @@ ACE_OS::write (ACE_HANDLE handle,
else
ACE_FAIL_RETURN (-1);
#else
+ ACE_UNUSED_ARG (overlapped);
return ACE_OS::write (handle, buf, nbyte);
#endif /* ACE_WIN32 */
}
diff --git a/dep/acelite/ace/OS_NS_wchar.cpp b/dep/acelite/ace/OS_NS_wchar.cpp
index b0a5075ac9c..9592a385456 100644
--- a/dep/acelite/ace/OS_NS_wchar.cpp
+++ b/dep/acelite/ace/OS_NS_wchar.cpp
@@ -1,9 +1,7 @@
-// $Id: OS_NS_wchar.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: OS_NS_wchar.cpp 92712 2010-11-25 12:22:13Z johnnyw $
#include "ace/OS_NS_wchar.h"
-
-
#if !defined (ACE_HAS_INLINED_OSCALLS)
# include "ace/OS_NS_wchar.inl"
#endif /* ACE_HAS_INLINED_OSCALLS */
diff --git a/dep/acelite/ace/OS_Thread_Adapter.cpp b/dep/acelite/ace/OS_Thread_Adapter.cpp
index e5bf95b239b..17713e6f655 100644
--- a/dep/acelite/ace/OS_Thread_Adapter.cpp
+++ b/dep/acelite/ace/OS_Thread_Adapter.cpp
@@ -1,4 +1,4 @@
-// $Id: OS_Thread_Adapter.cpp 91368 2010-08-16 13:03:34Z mhengstmengel $
+// $Id: OS_Thread_Adapter.cpp 92682 2010-11-23 23:41:19Z shuston $
#include "ace/OS_Thread_Adapter.h"
@@ -17,13 +17,15 @@ ACE_OS_Thread_Adapter::ACE_OS_Thread_Adapter (
, ACE_SEH_EXCEPT_HANDLER selector
, ACE_SEH_EXCEPT_HANDLER handler
# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
+ , long cancel_flags
)
: ACE_Base_Thread_Adapter (user_func, arg, entry_point
-# if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
, 0
+# if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
, selector
, handler
# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
+ , cancel_flags
)
{
}
@@ -44,6 +46,9 @@ ACE_OS_Thread_Adapter::invoke (void)
reinterpret_cast<ACE_THR_FUNC_INTERNAL> (this->user_func_);
void *arg = this->arg_;
+ // Pick up the cancel-related flags before deleting this.
+ long cancel_flags = this->flags_;
+
// Delete ourselves since we don't need <this> anymore. Make sure
// not to access <this> anywhere below this point.
delete this;
@@ -65,6 +70,18 @@ ACE_OS_Thread_Adapter::invoke (void)
#endif /* ACE_NEEDS_LWP_PRIO_SET */
+ if (cancel_flags != 0)
+ {
+ // If both flags are set, ignore this.
+ int old = 0;
+ int val = cancel_flags & (THR_CANCEL_ENABLE | THR_CANCEL_DISABLE);
+ if (val == THR_CANCEL_ENABLE || val == THR_CANCEL_DISABLE)
+ ACE_OS::thr_setcancelstate (val, &old);
+ val = cancel_flags & (THR_CANCEL_DEFERRED | THR_CANCEL_ASYNCHRONOUS);
+ if (val == THR_CANCEL_DEFERRED || val == THR_CANCEL_ASYNCHRONOUS)
+ ACE_OS::thr_setcanceltype (val, &old);
+ }
+
ACE_THR_FUNC_RETURN status = 0;
ACE_SEH_TRY
diff --git a/dep/acelite/ace/OS_Thread_Adapter.h b/dep/acelite/ace/OS_Thread_Adapter.h
index 4dc3cee0911..401a3df9ce2 100644
--- a/dep/acelite/ace/OS_Thread_Adapter.h
+++ b/dep/acelite/ace/OS_Thread_Adapter.h
@@ -4,7 +4,7 @@
/**
* @file OS_Thread_Adapter.h
*
- * $Id: OS_Thread_Adapter.h 85341 2009-05-14 11:07:37Z johnnyw $
+ * $Id: OS_Thread_Adapter.h 92682 2010-11-23 23:41:19Z shuston $
*
* @author Carlos O'Ryan <coryan@uci.edu>
*/
@@ -50,6 +50,7 @@ public:
, ACE_SEH_EXCEPT_HANDLER selector = 0
, ACE_SEH_EXCEPT_HANDLER handler = 0
# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
+ , long cancel_flags = 0
);
/**
diff --git a/dep/acelite/ace/Obchunk.cpp b/dep/acelite/ace/Obchunk.cpp
index 50ac21fa0da..98b33e5244f 100644
--- a/dep/acelite/ace/Obchunk.cpp
+++ b/dep/acelite/ace/Obchunk.cpp
@@ -1,4 +1,4 @@
-// $Id: Obchunk.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: Obchunk.cpp 92580 2010-11-15 09:48:02Z johnnyw $
#include "ace/Obchunk.h"
@@ -6,8 +6,6 @@
#include "ace/Obchunk.inl"
#endif /* __ACE_INLINE__ */
-
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_Obchunk)
diff --git a/dep/acelite/ace/Object_Manager.cpp b/dep/acelite/ace/Object_Manager.cpp
index 3966fd31261..92ef37f4fa0 100644
--- a/dep/acelite/ace/Object_Manager.cpp
+++ b/dep/acelite/ace/Object_Manager.cpp
@@ -1,4 +1,4 @@
-// $Id: Object_Manager.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: Object_Manager.cpp 93159 2011-01-25 10:52:44Z mcorino $
#include "ace/Object_Manager.h"
#if !defined (ACE_LACKS_ACE_TOKEN)
@@ -30,13 +30,9 @@
#include "ace/Null_Mutex.h"
#include "ace/Mutex.h"
#include "ace/RW_Thread_Mutex.h"
-#if defined (ACE_DISABLE_WIN32_ERROR_WINDOWS) && \
- defined (ACE_WIN32) && !defined (ACE_HAS_WINCE) \
- && (_MSC_VER >= 1400) // VC++ 8.0 and above.
+#if defined (ACE_DISABLE_WIN32_ERROR_WINDOWS) && !defined (ACE_HAS_WINCE)
#include "ace/OS_NS_stdlib.h"
-#endif // ACE_DISABLE_WIN32_ERROR_WINDOWS && ACE_WIN32 && !ACE_HAS_WINCE && (_MSC_VER >= 1400)
-
-
+#endif // ACE_DISABLE_WIN32_ERROR_WINDOWS
#if ! defined (ACE_APPLICATION_PREALLOCATED_OBJECT_DEFINITIONS)
# define ACE_APPLICATION_PREALLOCATED_OBJECT_DEFINITIONS
@@ -58,15 +54,13 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// Note the following fix was derived from that proposed by Jochen Kalmbach
// http://blog.kalmbachnet.de/?postid=75
-#if defined (ACE_DISABLE_WIN32_ERROR_WINDOWS) && \
- defined (ACE_WIN32) && !defined (ACE_HAS_WINCE) && \
- (_MSC_VER >= 1400) && defined (_M_IX86)
+#if defined (ACE_DISABLE_WIN32_ERROR_WINDOWS) && !defined (ACE_HAS_WINCE)
LPTOP_LEVEL_EXCEPTION_FILTER WINAPI ACEdisableSetUnhandledExceptionFilter (
- LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter)
+ LPTOP_LEVEL_EXCEPTION_FILTER /*lpTopLevelExceptionFilter*/)
{
return 0;
}
-#endif // ACE_DISABLE_WIN32_ERROR_WINDOWS && ACE_WIN32 && !ACE_HAS_WINCE && (_MSC_VER >= 1400) && _M_IX86
+#endif // ACE_DISABLE_WIN32_ERROR_WINDOWS
// Singleton pointer.
ACE_Object_Manager *ACE_Object_Manager::instance_ = 0;
@@ -260,14 +254,13 @@ ACE_Object_Manager::init (void)
}
# endif /* ACE_HAS_TSS_EMULATION */
-#if defined (ACE_DISABLE_WIN32_ERROR_WINDOWS) && \
- defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)
-#if defined (_DEBUG) && (defined (_MSC_VER) || defined (__INTEL_COMPILER))
+#if defined (ACE_DISABLE_WIN32_ERROR_WINDOWS) && !defined (ACE_HAS_WINCE)
+#if defined (_DEBUG) && (defined (_MSC_VER) || defined (__INTEL_COMPILER) || defined (__MINGW32__))
_CrtSetReportMode( _CRT_ERROR, _CRTDBG_MODE_FILE );
_CrtSetReportFile( _CRT_ERROR, _CRTDBG_FILE_STDERR );
_CrtSetReportMode( _CRT_ASSERT, _CRTDBG_MODE_FILE );
_CrtSetReportFile( _CRT_ASSERT, _CRTDBG_FILE_STDERR );
-#endif /* _DEBUG && _MSC_VER || __INTEL_COMPILER */
+#endif /* _DEBUG && _MSC_VER || __INTEL_COMPILER || __MINGW32__ */
// The system does not display the critical-error-handler message box
SetErrorMode(SEM_FAILCRITICALERRORS);
@@ -275,10 +268,10 @@ ACE_Object_Manager::init (void)
// And this will catch all unhandled exceptions.
SetUnhandledExceptionFilter (&ACE_UnhandledExceptionFilter);
-# if (_MSC_VER >= 1400) // VC++ 8.0 and above.
+# if (_MSC_VER >= 1400) // VC++ 8.0 and above
// And this will stop the abort system call from being treated as a crash
_set_abort_behavior( 0, _CALL_REPORTFAULT);
-
+# endif
// Note the following fix was derived from that proposed by Jochen Kalmbach
// http://blog.kalmbachnet.de/?postid=75
// See also:
@@ -293,18 +286,22 @@ ACE_Object_Manager::init (void)
// from calling SetUnhandledExceptionFilter() after we have done so above.
// NOTE this only works for intel based windows builds.
+# if (_MSC_VER >= 1400) \
+ || (__MINGW32_MAJOR_VERSION > 3) || \
+ ((__MINGW32_MAJOR_VERSION == 3) && \
+ (__MINGW32_MINOR_VERSION >= 15)) // VC++ 8.0 and above || MingW32 >= 3.15
# ifdef _M_IX86
HMODULE hKernel32 = ACE_TEXT_LoadLibrary (ACE_TEXT ("kernel32.dll"));
if (hKernel32)
{
void *pOrgEntry =
- GetProcAddress (hKernel32, "SetUnhandledExceptionFilter");
+ reinterpret_cast<void*> (GetProcAddress (hKernel32, "SetUnhandledExceptionFilter"));
if (pOrgEntry)
{
unsigned char newJump[ 100 ];
DWORD dwOrgEntryAddr = reinterpret_cast<DWORD> (pOrgEntry);
dwOrgEntryAddr += 5; // add 5 for 5 op-codes for jmp far
- void *pNewFunc = &ACEdisableSetUnhandledExceptionFilter;
+ void *pNewFunc = reinterpret_cast<void*> (&ACEdisableSetUnhandledExceptionFilter);
DWORD dwNewEntryAddr = reinterpret_cast<DWORD> (pNewFunc);
DWORD dwRelativeAddr = dwNewEntryAddr - dwOrgEntryAddr;
@@ -321,7 +318,7 @@ ACE_Object_Manager::init (void)
}
# endif // _M_IX86
# endif // (_MSC_VER >= 1400) // VC++ 8.0 and above.
-#endif /* ACE_DISABLE_WIN32_ERROR_WINDOWS && ACE_WIN32 && !ACE_HAS_WINCE */
+#endif /* ACE_DISABLE_WIN32_ERROR_WINDOWS */
# if !defined (ACE_LACKS_ACE_SVCCONF)
diff --git a/dep/acelite/ace/Object_Manager_Base.cpp b/dep/acelite/ace/Object_Manager_Base.cpp
index fbc5864a93c..e62b0567658 100644
--- a/dep/acelite/ace/Object_Manager_Base.cpp
+++ b/dep/acelite/ace/Object_Manager_Base.cpp
@@ -1,9 +1,6 @@
-// $Id: Object_Manager_Base.cpp 92069 2010-09-28 11:38:59Z johnnyw $
+// $Id: Object_Manager_Base.cpp 92580 2010-11-15 09:48:02Z johnnyw $
#include "ace/Object_Manager_Base.h"
-
-
-
#include "ace/OS_Memory.h"
#include "ace/OS_NS_Thread.h"
#include "ace/OS_NS_sys_socket.h"
diff --git a/dep/acelite/ace/Ping_Socket.h b/dep/acelite/ace/Ping_Socket.h
index 213f37fbd47..b063681ddce 100644
--- a/dep/acelite/ace/Ping_Socket.h
+++ b/dep/acelite/ace/Ping_Socket.h
@@ -4,7 +4,7 @@
/**
* @file Ping_Socket.h
*
- * $Id: Ping_Socket.h 81737 2008-05-20 09:46:39Z johnnyw $
+ * $Id: Ping_Socket.h 93597 2011-03-21 12:54:52Z johnnyw $
*
* @author Robert S. Iakobashvili <coroberti@gmail.com> <coroberti@walla.co.il>
* @author Gonzalo A. Diethelm <gonzalo.diethelm@aditiva.com>
@@ -60,7 +60,7 @@ public:
int protocol = IPPROTO_ICMP,
int reuse_addr = 0);
- /// @a toConnect = 1 - makes connect to remote address
+ /// @a to_connect = true - makes connect to remote address
int send_echo_check (ACE_INET_Addr & remote_addr,
bool to_connect = false);
@@ -68,7 +68,7 @@ public:
/// sending @c ICMP_ECHO.
int process_incoming_dgram (char * ptr, ssize_t len);
- /// @a toConnect = 1 - makes connect to remote address
+ /// @a to_connect = true - makes connect to remote address
int make_echo_check (ACE_INET_Addr & remote_addr,
bool to_connect = false,
ACE_Time_Value const * timeout = &time_default_);
diff --git a/dep/acelite/ace/Proactor.cpp b/dep/acelite/ace/Proactor.cpp
index 983b8eabb7d..dffacd2184d 100644
--- a/dep/acelite/ace/Proactor.cpp
+++ b/dep/acelite/ace/Proactor.cpp
@@ -1,4 +1,4 @@
-// $Id: Proactor.cpp 91368 2010-08-16 13:03:34Z mhengstmengel $
+// $Id: Proactor.cpp 95368 2011-12-19 13:38:49Z mcorino $
#include "ace/config-lite.h"
#include "ace/Proactor.h"
@@ -58,11 +58,6 @@ bool ACE_Proactor::delete_proactor_ = false;
*/
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);
@@ -75,6 +70,11 @@ public:
/// <destroy> does. <destroy> make sure the thread exits properly.
int destroy (void);
+ /// Proactor calls this to refresh the timer event thread, to wake
+ /// up the thread from a sleep. This is needed to make the thread
+ /// recompute its sleep time after changes to the timer queue.
+ int signal (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
@@ -100,6 +100,12 @@ ACE_Proactor_Timer_Handler::ACE_Proactor_Timer_Handler (ACE_Proactor &proactor)
ACE_Proactor_Timer_Handler::~ACE_Proactor_Timer_Handler (void)
{
+ this->destroy();
+}
+
+int
+ACE_Proactor_Timer_Handler::destroy (void)
+{
// Mark for closing down.
this->shutting_down_ = 1;
@@ -108,6 +114,13 @@ ACE_Proactor_Timer_Handler::~ACE_Proactor_Timer_Handler (void)
// Wait for the Timer Handler thread to exit.
this->wait ();
+ return 0;
+}
+
+int
+ACE_Proactor_Timer_Handler::signal (void)
+{
+ return this->timer_event_.signal ();
}
int
@@ -127,7 +140,8 @@ ACE_Proactor_Timer_Handler::svc (void)
// 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 ();
+ ACE_Time_Value cur_time =
+ this->proactor_.timer_queue ()->gettimeofday ();
// Compare absolute time with curent time received from the
// timer queue.
@@ -172,15 +186,16 @@ ACE_Proactor_Handle_Timeout_Upcall::ACE_Proactor_Handle_Timeout_Upcall (void)
}
int
-ACE_Proactor_Handle_Timeout_Upcall::registration (TIMER_QUEUE &,
- ACE_Handler *,
+ACE_Proactor_Handle_Timeout_Upcall::registration (ACE_Proactor_Timer_Queue &,
+ ACE_Handler * handler,
const void *)
{
+ handler->proactor(proactor_);
return 0;
}
int
-ACE_Proactor_Handle_Timeout_Upcall::preinvoke (TIMER_QUEUE &,
+ACE_Proactor_Handle_Timeout_Upcall::preinvoke (ACE_Proactor_Timer_Queue &,
ACE_Handler *,
const void *,
int,
@@ -191,7 +206,7 @@ ACE_Proactor_Handle_Timeout_Upcall::preinvoke (TIMER_QUEUE &,
}
int
-ACE_Proactor_Handle_Timeout_Upcall::postinvoke (TIMER_QUEUE &,
+ACE_Proactor_Handle_Timeout_Upcall::postinvoke (ACE_Proactor_Timer_Queue &,
ACE_Handler *,
const void *,
int,
@@ -202,7 +217,7 @@ ACE_Proactor_Handle_Timeout_Upcall::postinvoke (TIMER_QUEUE &,
}
int
-ACE_Proactor_Handle_Timeout_Upcall::timeout (TIMER_QUEUE &,
+ACE_Proactor_Handle_Timeout_Upcall::timeout (ACE_Proactor_Timer_Queue &,
ACE_Handler *handler,
const void *act,
int,
@@ -248,7 +263,7 @@ ACE_Proactor_Handle_Timeout_Upcall::timeout (TIMER_QUEUE &,
}
int
-ACE_Proactor_Handle_Timeout_Upcall::cancel_type (TIMER_QUEUE &,
+ACE_Proactor_Handle_Timeout_Upcall::cancel_type (ACE_Proactor_Timer_Queue &,
ACE_Handler *,
int,
int &)
@@ -258,7 +273,7 @@ ACE_Proactor_Handle_Timeout_Upcall::cancel_type (TIMER_QUEUE &,
}
int
-ACE_Proactor_Handle_Timeout_Upcall::cancel_timer (TIMER_QUEUE &,
+ACE_Proactor_Handle_Timeout_Upcall::cancel_timer (ACE_Proactor_Timer_Queue &,
ACE_Handler *,
int,
int)
@@ -268,7 +283,7 @@ ACE_Proactor_Handle_Timeout_Upcall::cancel_timer (TIMER_QUEUE &,
}
int
-ACE_Proactor_Handle_Timeout_Upcall::deletion (TIMER_QUEUE &,
+ACE_Proactor_Handle_Timeout_Upcall::deletion (ACE_Proactor_Timer_Queue &,
ACE_Handler *,
const void *)
{
@@ -295,7 +310,7 @@ ACE_Proactor_Handle_Timeout_Upcall::proactor (ACE_Proactor &proactor)
ACE_Proactor::ACE_Proactor (ACE_Proactor_Impl *implementation,
bool delete_implementation,
- TIMER_QUEUE *tq)
+ ACE_Proactor_Timer_Queue *tq)
: implementation_ (0),
delete_implementation_ (delete_implementation),
timer_handler_ (0),
@@ -623,6 +638,11 @@ ACE_Proactor::close (void)
this->timer_queue_ = 0;
this->delete_timer_queue_ = 0;
}
+ else if (this->timer_queue_)
+ {
+ this->timer_queue_->close ();
+ this->timer_queue_ = 0;
+ }
return 0;
}
@@ -666,42 +686,15 @@ ACE_Proactor::schedule_timer (ACE_Handler &handler,
// 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));
-
- // Remember the old proactor.
- ACE_Proactor *old_proactor = handler.proactor ();
-
- // Assign *this* Proactor to the handler.
- handler.proactor (this);
-
- // 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;
- }
- }
-
- if (result == -1)
- {
- // Reset the old proactor in case of failures.
- handler.proactor (old_proactor);
+ // Signal the timer thread to make sure that new events are
+ // dispatched and the sleep time is updated.
+ (void) this->timer_handler_->signal ();
}
return result;
@@ -765,14 +758,14 @@ ACE_Proactor::number_of_threads (size_t threads)
this->implementation ()->number_of_threads (threads);
}
-ACE_Proactor::TIMER_QUEUE *
+ACE_Proactor_Timer_Queue *
ACE_Proactor::timer_queue (void) const
{
return this->timer_queue_;
}
void
-ACE_Proactor::timer_queue (TIMER_QUEUE *tq)
+ACE_Proactor::timer_queue (ACE_Proactor_Timer_Queue *tq)
{
// Cleanup old timer queue.
if (this->delete_timer_queue_)
@@ -780,6 +773,10 @@ ACE_Proactor::timer_queue (TIMER_QUEUE *tq)
delete this->timer_queue_;
this->delete_timer_queue_ = 0;
}
+ else if (this->timer_queue_)
+ {
+ this->timer_queue_->close ();
+ }
// New timer queue.
if (tq == 0)
@@ -795,7 +792,14 @@ ACE_Proactor::timer_queue (TIMER_QUEUE *tq)
}
// Set the proactor in the timer queue's functor
- this->timer_queue_->upcall_functor ().proactor (*this);
+ typedef ACE_Timer_Queue_Upcall_Base<ACE_Handler*,ACE_Proactor_Handle_Timeout_Upcall> TQ_Base;
+
+ TQ_Base * tqb = dynamic_cast<TQ_Base*> (this->timer_queue_);
+
+ if (tqb != 0)
+ {
+ tqb->upcall_functor ().proactor (*this);
+ }
}
ACE_HANDLE
diff --git a/dep/acelite/ace/Proactor.h b/dep/acelite/ace/Proactor.h
index 6b3f34f358f..4288aef6b76 100644
--- a/dep/acelite/ace/Proactor.h
+++ b/dep/acelite/ace/Proactor.h
@@ -4,7 +4,7 @@
/**
* @file Proactor.h
*
- * $Id: Proactor.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: Proactor.h 95332 2011-12-15 11:09:41Z mcorino $
*
* @author Irfan Pyarali <irfan@cs.wustl.edu>
* @author Tim Harrison <harrison@cs.wustl.edu>
@@ -43,6 +43,9 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
class ACE_Proactor_Impl;
class ACE_Proactor_Timer_Handler;
+/// Type def for the timer queue.
+typedef ACE_Abstract_Timer_Queue<ACE_Handler *> ACE_Proactor_Timer_Queue;
+
/**
* @class ACE_Proactor_Handle_Timeout_Upcall
*
@@ -51,15 +54,8 @@ class ACE_Proactor_Timer_Handler;
* This class implements the functor required by the Timer
* Queue to call <handle_timeout> on ACE_Handlers.
*/
-class ACE_Proactor_Handle_Timeout_Upcall
+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;
@@ -68,12 +64,12 @@ public:
ACE_Proactor_Handle_Timeout_Upcall (void);
/// This method is called when a timer is registered.
- int registration (TIMER_QUEUE &timer_queue,
+ int registration (ACE_Proactor_Timer_Queue &timer_queue,
ACE_Handler *handler,
const void *arg);
/// This method is called before the timer expires.
- int preinvoke (TIMER_QUEUE &timer_queue,
+ int preinvoke (ACE_Proactor_Timer_Queue &timer_queue,
ACE_Handler *handler,
const void *arg,
int recurring_timer,
@@ -81,14 +77,14 @@ public:
const void *&upcall_act);
/// This method is called when the timer expires.
- int timeout (TIMER_QUEUE &timer_queue,
+ int timeout (ACE_Proactor_Timer_Queue &timer_queue,
ACE_Handler *handler,
const void *arg,
int recurring_timer,
const ACE_Time_Value &cur_time);
/// This method is called after the timer expires.
- int postinvoke (TIMER_QUEUE &timer_queue,
+ int postinvoke (ACE_Proactor_Timer_Queue &timer_queue,
ACE_Handler *handler,
const void *arg,
int recurring_timer,
@@ -96,20 +92,20 @@ public:
const void *upcall_act);
/// This method is called when a handler is canceled.
- int cancel_type (TIMER_QUEUE &timer_queue,
+ int cancel_type (ACE_Proactor_Timer_Queue &timer_queue,
ACE_Handler *handler,
int dont_call_handle_close,
int &requires_reference_counting);
/// This method is called when a timer is canceled.
- int cancel_timer (TIMER_QUEUE &timer_queue,
+ int cancel_timer (ACE_Proactor_Timer_Queue &timer_queue,
ACE_Handler *handler,
int dont_call_handle_close,
int requires_reference_counting);
/// This method is called when the timer queue is destroyed and the
/// timer is still contained in it.
- int deletion (TIMER_QUEUE &timer_queue,
+ int deletion (ACE_Proactor_Timer_Queue &timer_queue,
ACE_Handler *handler,
const void *arg);
@@ -135,10 +131,8 @@ 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_Queue_Iterator_T<ACE_Handler *>
+ TIMER_QUEUE_ITERATOR;
typedef ACE_Timer_List_T<ACE_Handler *,
ACE_Proactor_Handle_Timeout_Upcall,
ACE_SYNCH_RECURSIVE_MUTEX>
@@ -171,12 +165,6 @@ class ACE_Export ACE_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 @a implementation is 0, the correct implementation
* object will be created. @a delete_implementation flag determines
@@ -185,7 +173,7 @@ public:
*/
ACE_Proactor (ACE_Proactor_Impl *implementation = 0,
bool delete_implementation = false,
- TIMER_QUEUE *tq = 0);
+ ACE_Proactor_Timer_Queue *tq = 0);
/// Destruction.
~ACE_Proactor (void);
@@ -323,8 +311,8 @@ public:
const void *act,
const ACE_Time_Value &interval);
- // Same as above except @a interval it is used to reschedule the
- // @a handler automatically.
+ /// Same as above except @a interval it is used to reschedule the
+ /// @a handler automatically.
/// This combines the above two methods into one. Mostly for backward
/// compatibility.
@@ -357,7 +345,7 @@ public:
* @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.
+ * @return Returns 0 if no events occur before the @a wait_time expires.
* Returns 1 when a completion is dispatched. On error, returns -1
* and sets errno accordingly.
*/
@@ -383,10 +371,10 @@ public:
void number_of_threads (size_t threads);
/// Get timer queue.
- TIMER_QUEUE *timer_queue (void) const;
+ ACE_Proactor_Timer_Queue *timer_queue (void) const;
/// Set timer queue.
- void timer_queue (TIMER_QUEUE *timer_queue);
+ void timer_queue (ACE_Proactor_Timer_Queue *timer_queue);
/**
* Get the event handle.
@@ -614,7 +602,7 @@ protected:
ACE_Thread_Manager thr_mgr_;
/// Timer Queue.
- TIMER_QUEUE *timer_queue_;
+ ACE_Proactor_Timer_Queue *timer_queue_;
/// Flag on whether to delete the timer queue.
int delete_timer_queue_;
diff --git a/dep/acelite/ace/Process.cpp b/dep/acelite/ace/Process.cpp
index 5198023592e..22a49a4a97c 100644
--- a/dep/acelite/ace/Process.cpp
+++ b/dep/acelite/ace/Process.cpp
@@ -1,4 +1,4 @@
-// $Id: Process.cpp 92218 2010-10-14 13:18:15Z mcorino $
+// $Id: Process.cpp 95567 2012-02-28 14:36:02Z johnnyw $
#include "ace/Process.h"
@@ -24,13 +24,11 @@
#include "ace/Vector_T.h"
#include "ace/Tokenizer_T.h"
-#if defined (ACE_VXWORKS) && (ACE_VXWORKS > 0x600) && defined (__RTP__)
+#if defined (ACE_VXWORKS) && defined (__RTP__)
# include <rtpLib.h>
# include <taskLib.h>
#endif
-
-
// 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.
@@ -255,7 +253,7 @@ ACE_Process::spawn (ACE_Process_Options &options)
}
return this->child_id_;
-#elif (defined (ACE_VXWORKS) && (ACE_VXWORKS > 0x600)) && defined (__RTP__)
+#elif defined (ACE_VXWORKS) && defined (__RTP__)
if (ACE_BIT_ENABLED (options.creation_flags (),
ACE_Process_Options::NO_EXEC))
ACE_NOTSUP_RETURN (ACE_INVALID_PID);
@@ -519,13 +517,7 @@ ACE_Process::spawn (ACE_Process_Options &options)
}
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 (procname, procargv, procenv);
-# endif /* ghs */
}
if (result == -1)
{
@@ -624,7 +616,7 @@ ACE_Process::wait (const ACE_Time_Value &tv,
# if defined (ACE_VXWORKS)
{
pid_t retv;
- while ( (retv = this->wait (status)) == ACE_INVALID_PID && errno == EINTR ) ;
+ while ((retv = this->wait (status)) == ACE_INVALID_PID && errno == EINTR);
return retv;
}
# else
@@ -1231,7 +1223,10 @@ ACE_Process_Options::command_line (const ACE_TCHAR *format, ...)
va_start (argp, format);
if (command_line_buf_len_ < 1)
- return -1;
+ {
+ va_end (argp);
+ return -1;
+ }
#if !defined (ACE_LACKS_VSNPRINTF) || defined (ACE_HAS_TRIO)
// vsnprintf the format and args into command_line_buf__.
@@ -1325,7 +1320,7 @@ ACE_Process_Options::command_line_argv (void)
do
command_line_argv_[x] = parser.next ();
while (command_line_argv_[x] != 0
- // substract one for the ending zero.
+ // subtract one for the ending zero.
&& ++x < max_command_line_args_ - 1);
command_line_argv_[x] = 0;
diff --git a/dep/acelite/ace/Process.h b/dep/acelite/ace/Process.h
index 61a3802ecc6..ba5f7018581 100644
--- a/dep/acelite/ace/Process.h
+++ b/dep/acelite/ace/Process.h
@@ -4,7 +4,7 @@
/**
* @file Process.h
*
- * $Id: Process.h 92218 2010-10-14 13:18:15Z mcorino $
+ * $Id: Process.h 93506 2011-03-09 10:42:51Z vzykov $
*
* @author Tim Harrison <harrison@cs.wustl.edu>
*/
diff --git a/dep/acelite/ace/Process_Manager.cpp b/dep/acelite/ace/Process_Manager.cpp
index e9be7773a8b..7687e1ed839 100644
--- a/dep/acelite/ace/Process_Manager.cpp
+++ b/dep/acelite/ace/Process_Manager.cpp
@@ -1,4 +1,4 @@
-// $Id: Process_Manager.cpp 91688 2010-09-09 11:21:50Z johnnyw $
+// $Id: Process_Manager.cpp 94454 2011-09-08 17:36:56Z johnnyw $
// Process_Manager.cpp
#include "ace/Process_Manager.h"
@@ -347,8 +347,7 @@ ACE_Process_Manager::handle_signal (int,
#if defined (ACE_WIN32)
ACE_HANDLE proc = si->si_handle_;
ACE_exitcode status = 0;
- BOOL result = ::GetExitCodeProcess (proc,
- &status);
+ BOOL result = ::GetExitCodeProcess (proc, &status);
if (result)
{
if (status != STILL_ACTIVE)
@@ -843,7 +842,7 @@ ACE_Process_Manager::wait (pid_t pid,
// 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__) || defined (_MSC_VER)
+# if defined (__MINGW32__) || defined (_MSC_VER)
ACE_ASSERT (result < WAIT_OBJECT_0 + this->current_count_);
# else
ACE_ASSERT (result >= WAIT_OBJECT_0
@@ -917,7 +916,7 @@ ACE_Process_Manager::wait (pid_t pid,
for (ACE_Countdown_Time time_left (&tmo); ; time_left.update ())
{
pid = ACE_OS::waitpid (-1, status, WNOHANG);
-# if defined (ACE_VXWORKS) && (ACE_VXWORKS >= 0x600)
+# if defined (ACE_VXWORKS)
if (pid > 0 || (pid == ACE_INVALID_PID && errno != EINTR))
# else
if (pid > 0 || pid == ACE_INVALID_PID)
diff --git a/dep/acelite/ace/Process_Manager.h b/dep/acelite/ace/Process_Manager.h
index 3956c18d0b6..2f50e761882 100644
--- a/dep/acelite/ace/Process_Manager.h
+++ b/dep/acelite/ace/Process_Manager.h
@@ -4,7 +4,7 @@
/**
* @file Process_Manager.h
*
- * $Id: Process_Manager.h 91688 2010-09-09 11:21:50Z johnnyw $
+ * $Id: Process_Manager.h 92489 2010-11-05 00:33:37Z shuston $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
*/
@@ -210,6 +210,9 @@ public:
*
* @note This call is potentially dangerous to use since the process
* being terminated may not have a chance to cleanup before it shuts down.
+ * The process's entry is also not removed from this class's process
+ * table. Calling either wait() or remove() after terminate() is
+ * advisable.
*
* @retval 0 on success and -1 on failure.
*/
@@ -290,10 +293,9 @@ public:
/**
* Remove process @a pid from the ACE_Process_Manager's internal records.
- * This is called automatically by the reap() method after it successfully
- * reaps a process. It's also possible to call this method
- * directly from a signal handler, but don't call both reap() and
- * remove()!
+ * This is called automatically by the wait() method if the waited process
+ * exits. This method can also be called after calling terminate() if
+ * there's no need to wait() for the terminated process.
*/
int remove (pid_t pid);
diff --git a/dep/acelite/ace/Process_Semaphore.h b/dep/acelite/ace/Process_Semaphore.h
index ea614bf691c..fddaf8aecda 100644
--- a/dep/acelite/ace/Process_Semaphore.h
+++ b/dep/acelite/ace/Process_Semaphore.h
@@ -4,7 +4,7 @@
/**
* @file Process_Semaphore.h
*
- * $Id: Process_Semaphore.h 86731 2009-09-17 12:23:48Z johnnyw $
+ * $Id: Process_Semaphore.h 93359 2011-02-11 11:33:12Z mcorino $
*
* Wrapper for Dijkstra style general semaphores that work
* across processes.
@@ -71,14 +71,14 @@ public:
int release (void);
/**
- * Acquire semaphore ownership. This calls <acquire> and is only
+ * 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
+ * Acquire semaphore ownership. This calls acquire() and is only
* here to make the ACE_Process_Semaphore interface consistent
* with the other synchronization APIs.
*/
@@ -86,7 +86,7 @@ public:
/**
* Conditionally acquire semaphore (i.e., won't block). This calls
- * <tryacquire> and is only here to make the ACE_Process_Semaphore
+ * 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, @c errno is set to @c EBUSY.
@@ -95,7 +95,7 @@ public:
/**
* Conditionally acquire semaphore (i.e., won't block). This calls
- * <tryacquire> and is only here to make the ACE_Process_Semaphore
+ * 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, @c errno is set to @c EBUSY.
@@ -138,7 +138,7 @@ template <class T> class ACE_Malloc_Lock_Adapter_T;
* @brief Template specialization of ACE_Malloc_Lock_Adapter_T for
* ACE_Process_Semaphore.
*
- * This is needed since the ctor for ACE_Process_Semaphore doesn't match
+ * This is needed since the constructor for ACE_Process_Semaphore doesn't match
* the standard form used by other lock strategy classes.
*/
template<>
diff --git a/dep/acelite/ace/Profile_Timer.cpp b/dep/acelite/ace/Profile_Timer.cpp
index 767638a5411..013d40e08c3 100644
--- a/dep/acelite/ace/Profile_Timer.cpp
+++ b/dep/acelite/ace/Profile_Timer.cpp
@@ -1,4 +1,4 @@
-// $Id: Profile_Timer.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: Profile_Timer.cpp 95761 2012-05-15 18:23:04Z johnnyw $
#include "ace/Profile_Timer.h"
@@ -308,11 +308,7 @@ ACE_Profile_Timer::elapsed_time (ACE_Elapsed_Time &et)
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);
diff --git a/dep/acelite/ace/Profile_Timer.h b/dep/acelite/ace/Profile_Timer.h
index 247c2796ff1..e21c397969b 100644
--- a/dep/acelite/ace/Profile_Timer.h
+++ b/dep/acelite/ace/Profile_Timer.h
@@ -4,7 +4,7 @@
/**
* @file Profile_Timer.h
*
- * $Id: Profile_Timer.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: Profile_Timer.h 93359 2011-02-11 11:33:12Z mcorino $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
*/
@@ -101,14 +101,14 @@ private:
ACE_Profile_Timer::Rusage last_usage_;
#if defined (ACE_HAS_PRUSAGE_T)
- /// Substract two timestructs and store their difference.
+ /// Subtract 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.
+ /// Subtract two timestructs and store their difference.
void subtract (timeval &tdiff,
timeval &t0,
timeval &t1);
diff --git a/dep/acelite/ace/QoS/README b/dep/acelite/ace/QoS/README
index ce7fac62937..e7f533c8187 100644
--- a/dep/acelite/ace/QoS/README
+++ b/dep/acelite/ace/QoS/README
@@ -1,4 +1,4 @@
-$Id: README 80826 2008-03-04 14:51:23Z wotte $
+$Id: README 94641 2011-10-06 15:06:16Z johnnyw $
ACE QoS API (AQoSA)
===================
@@ -13,7 +13,7 @@ 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
+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
@@ -35,9 +35,9 @@ 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
+1. Compile AQoSA with
+
+ make rapi=1
More information about RAPI can be found at:
diff --git a/dep/acelite/ace/QtReactor/ACE_QtReactor_export.h b/dep/acelite/ace/QtReactor/ACE_QtReactor_export.h
new file mode 100644
index 00000000000..29494c9213f
--- /dev/null
+++ b/dep/acelite/ace/QtReactor/ACE_QtReactor_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id: ACE_QtReactor_export.h 80826 2008-03-04 14:51:23Z wotte $
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl -s ACE_QtReactor
+// ------------------------------
+#ifndef ACE_QTREACTOR_EXPORT_H
+#define ACE_QTREACTOR_EXPORT_H
+
+#include /**/ "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ACE_QTREACTOR_HAS_DLL)
+# define ACE_QTREACTOR_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ACE_QTREACTOR_HAS_DLL */
+
+#if !defined (ACE_QTREACTOR_HAS_DLL)
+# define ACE_QTREACTOR_HAS_DLL 1
+#endif /* ! ACE_QTREACTOR_HAS_DLL */
+
+#if defined (ACE_QTREACTOR_HAS_DLL) && (ACE_QTREACTOR_HAS_DLL == 1)
+# if defined (ACE_QTREACTOR_BUILD_DLL)
+# define ACE_QtReactor_Export ACE_Proper_Export_Flag
+# define ACE_QTREACTOR_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ACE_QTREACTOR_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ACE_QTREACTOR_BUILD_DLL */
+# define ACE_QtReactor_Export ACE_Proper_Import_Flag
+# define ACE_QTREACTOR_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ACE_QTREACTOR_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ACE_QTREACTOR_BUILD_DLL */
+#else /* ACE_QTREACTOR_HAS_DLL == 1 */
+# define ACE_QtReactor_Export
+# define ACE_QTREACTOR_SINGLETON_DECLARATION(T)
+# define ACE_QTREACTOR_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ACE_QTREACTOR_HAS_DLL == 1 */
+
+// Set ACE_QTREACTOR_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ACE_QTREACTOR_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ACE_QTREACTOR_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ACE_QTREACTOR_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ACE_QTREACTOR_NTRACE */
+
+#if (ACE_QTREACTOR_NTRACE == 1)
+# define ACE_QTREACTOR_TRACE(X)
+#else /* (ACE_QTREACTOR_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ACE_QTREACTOR_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ACE_QTREACTOR_NTRACE == 1) */
+
+#endif /* ACE_QTREACTOR_EXPORT_H */
+
+// End of auto generated file.
diff --git a/dep/acelite/ace/QtReactor/QtReactor.cpp b/dep/acelite/ace/QtReactor/QtReactor.cpp
new file mode 100644
index 00000000000..eb0dc70b651
--- /dev/null
+++ b/dep/acelite/ace/QtReactor/QtReactor.cpp
@@ -0,0 +1,644 @@
+//$Id: QtReactor.cpp 82723 2008-09-16 09:35:44Z johnnyw $
+
+#include "ace/QtReactor/QtReactor.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+ACE_ALLOC_HOOK_DEFINE (ACE_QtReactor)
+
+// Must be called with lock held
+
+ACE_QtReactor::ACE_QtReactor (QApplication *qapp ,
+ ACE_Sig_Handler *sh,
+ ACE_Timer_Queue *tq,
+ int disable_notify_pipe,
+ ACE_Reactor_Notify *notify,
+ bool mask_signals,
+ int s_queue ):
+ ACE_Select_Reactor( sh, tq, disable_notify_pipe,
+ notify, mask_signals, s_queue),
+ qapp_(qapp),
+ qtime_ (0)
+{
+ reopen_notification_pipe();
+}
+
+// Must be called with lock held
+ACE_QtReactor::ACE_QtReactor (size_t size,
+ QApplication *qapp,
+ bool restart,
+ ACE_Sig_Handler *sh,
+ ACE_Timer_Queue *tq,
+ int disable_notify_pipe,
+ ACE_Reactor_Notify *notify,
+ bool mask_signals,
+ int s_queue):
+ ACE_Select_Reactor( size, restart, sh, tq,
+ disable_notify_pipe, notify, mask_signals,
+ s_queue ),
+ qapp_(qapp),
+ qtime_ (0)
+
+{
+ reopen_notification_pipe();
+}
+
+void ACE_QtReactor::reopen_notification_pipe( void)
+{
+ // 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)
+ if ( initialized_ )
+ {
+ 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)
+{
+ // iterate over QSocketNotifiers for read and release them
+ MAP::ITERATOR iter = this->read_notifier_.begin ();
+ MAP::ITERATOR iterEnd = this->read_notifier_.end ();
+ while( iter != iterEnd )
+ {
+ MAP::ENTRY &entry = *iter;
+ // QOBject destructor notifies qapplication (hopefully) on delete
+ delete entry.int_id_;
+ ++iter;
+ }
+
+ // iterate over QSocketNotifiers for write and release them
+ this->write_notifier_.begin ();
+ this->write_notifier_.end ();
+ while( iter != iterEnd )
+ {
+ MAP::ENTRY &entry = *iter;
+ // QOBject destructor notifies qapplication (hopefully) on delete
+ delete entry.int_id_;
+ ++iter;
+ }
+
+ // iterate over QSocketNotifiers for exceptions and release them
+ this->exception_notifier_.begin ();
+ this->exception_notifier_.end ();
+ while( iter != iterEnd )
+ {
+ MAP::ENTRY &entry = *iter;
+ // QOBject destructor notifies qapplication (hopefully) on delete
+ delete entry.int_id_;
+ ++iter;
+ }
+
+ // QOBject destructor notifies qapplication (hopefully) on delete
+ delete qtime_;
+}
+
+void
+ACE_QtReactor::qapplication (QApplication *qapp)
+{
+ // reparent QSocketNotifiers and QTimer
+ qapp_ = qapp ;
+}
+
+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 p_handle)
+{
+ ACE_TRACE ("ACE_QtReactor::read_event");
+
+ ACE_HANDLE handle = ACE_HANDLE( p_handle );
+
+#ifdef ACE_QTREACTOR_CLEAR_PENDING_EVENTS
+ // disable socket notifier to clear pending events
+ QSocketNotifier *qsock_notifier = 0;
+ if ( ( this->read_notifier_.find( handle,
+ qsock_notifier) != -1) )
+ qsock_notifier->setEnabled( false );
+#endif /* ACE_QTREACTOR_CLEAR_PENDING_EVENTS */
+
+ // The core of read event handling
+ ACE_Select_Reactor_Handle_Set dispatch_set;
+
+ dispatch_set.rd_mask_.set_bit ( handle );
+ this->dispatch (1, dispatch_set);
+
+#ifdef ACE_QTREACTOR_CLEAR_PENDING_EVENTS
+ // enable socket notifier according to current mask
+ ACE_Reactor_Mask mask = 0;
+ mask = mask_ops( handle, mask, ACE_Reactor::GET_MASK );
+ if ( -1 != mask )
+ set_enable_flag_by_mask ( 1, handle, mask);
+#endif /* ACE_QTREACTOR_CLEAR_PENDING_EVENTS */
+}
+
+void
+ACE_QtReactor::write_event (int p_handle)
+{
+ ACE_TRACE ("ACE_QtReactor::write_event");
+
+ ACE_HANDLE handle = ACE_HANDLE( p_handle );
+
+#ifdef ACE_QTREACTOR_CLEAR_PENDING_EVENTS
+ // disable socket notifier to clear pending events
+ QSocketNotifier *qsock_notifier = 0;
+ if ( ( this->write_notifier_.find( handle, qsock_notifier) != -1) )
+ qsock_notifier->setEnabled( false );
+#endif /* ACE_QTREACTOR_CLEAR_PENDING_EVENTS */
+
+ // The core of write event handling
+ ACE_Select_Reactor_Handle_Set dispatch_set;
+
+ dispatch_set.wr_mask_.set_bit( handle );
+ this->dispatch (1, dispatch_set);
+
+#ifdef ACE_QTREACTOR_CLEAR_PENDING_EVENTS
+ // enable socket notifier according to current mask
+ ACE_Reactor_Mask mask = 0;
+ mask = mask_ops( handle, mask, ACE_Reactor::GET_MASK );
+ if ( -1 != mask )
+ set_enable_flag_by_mask ( 1, handle, mask);
+#endif /* ACE_QTREACTOR_CLEAR_PENDING_EVENTS */
+}
+
+void
+ACE_QtReactor::exception_event (int p_handle)
+{
+ ACE_TRACE ("ACE_QtReactor::exception_event");
+
+ ACE_HANDLE handle = ACE_HANDLE( p_handle );
+
+
+#ifdef ACE_QTREACTOR_CLEAR_PENDING_EVENTS
+ // disable socket notifier to clear pending events
+ QSocketNotifier *qsock_notifier = 0;
+ if ( ( this->exception_notifier_.find( handle, qsock_notifier) != -1) )
+ qsock_notifier->setEnabled( false );
+#endif /* ACE_QTREACTOR_CLEAR_PENDING_EVENTS */
+
+ // The core of exception event handling
+ ACE_Select_Reactor_Handle_Set dispatch_set;
+
+ dispatch_set.ex_mask_.set_bit( handle );
+ dispatch (1, dispatch_set);
+
+#ifdef ACE_QTREACTOR_CLEAR_PENDING_EVENTS
+ // enable socket notifier according to current mask
+ ACE_Reactor_Mask mask = 0;
+ mask = mask_ops( handle, mask, ACE_Reactor::GET_MASK );
+ if ( -1 != mask )
+ set_enable_flag_by_mask ( 1, handle, mask);
+#endif /* ACE_QTREACTOR_CLEAR_PENDING_EVENTS */
+}
+
+int
+ACE_QtReactor::set_enable_flag_by_mask (int flag_value,
+ ACE_HANDLE handle,
+ ACE_Reactor_Mask mask)
+{
+ QSocketNotifier *qs_not;
+
+ if (ACE_BIT_ENABLED(mask, ACE_Event_Handler::READ_MASK) ||
+ ACE_BIT_ENABLED( mask, ACE_Event_Handler::ACCEPT_MASK))
+ {
+ // Find the current notifier
+ qs_not = 0;
+ if ((this->read_notifier_.find (handle, qs_not) == -1))
+ return -1;
+
+ qs_not->setEnabled (flag_value);
+ }
+
+ 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))
+ {
+ qs_not = 0;
+ if ((this->write_notifier_.find (handle, qs_not) == -1))
+ return -1;
+
+ qs_not->setEnabled (flag_value);
+ }
+
+ if (ACE_BIT_ENABLED( mask,
+ ACE_Event_Handler::EXCEPT_MASK))
+ {
+ qs_not = 0;
+ if ((this->exception_notifier_.find (handle, qs_not) == -1))
+ return -1;
+
+ qs_not->setEnabled (flag_value);
+ }
+
+ return 0;
+}
+
+int
+ACE_QtReactor::bit_ops (ACE_HANDLE handle,
+ ACE_Reactor_Mask mask,
+ ACE_Select_Reactor_Handle_Set &handle_set,
+ int ops)
+{
+ int result;
+ ACE_Select_Reactor_Handle_Set preserved_handle_set = handle_set;
+
+ // Call regular bit_ops
+ if ((result = ACE_Select_Reactor::bit_ops (handle, mask, handle_set, ops)) == -1)
+ return -1;
+
+ // disable or enable the notifiers based on handle_set and mask
+ int enableFlag = -1;
+ if (&handle_set == &this->suspend_set_)
+ enableFlag = 0;
+ else if (&handle_set == &this->wait_set_)
+ enableFlag = 1;
+ else
+ // We have no work to do here, so just return
+ return result;
+
+ switch (ops)
+ {
+ case ACE_Reactor::SET_MASK:
+ case ACE_Reactor::ADD_MASK:
+ // Enable or disable notifiers based on the specified masks
+ if (this->set_enable_flag_by_mask (enableFlag, handle, mask) == -1)
+ {
+ // We can't just return -1 here because we'll have half-changed things.
+ // So, we need to restore the old handle_set, then return -1.
+ handle_set = preserved_handle_set;
+ return -1;
+ }
+ break;
+
+ case ACE_Reactor::CLR_MASK:
+ if (this->set_enable_flag_by_mask (!enableFlag, handle, mask) == -1)
+ {
+ handle_set = preserved_handle_set;
+ return -1;
+ }
+ break;
+
+ default:
+ // we take no action for any other operations
+ break;
+ }
+
+ return result;
+}
+
+void
+ACE_QtReactor::create_notifiers_for_handle (ACE_HANDLE handle)
+{
+ QSocketNotifier *qsock_notifier = 0;
+
+ // if there is already a read socket notifier for this handle, do nothing
+ // otherwise create read notifier
+ if ( ( this->read_notifier_.find (handle,
+ qsock_notifier) == -1) )
+ {
+ ACE_NEW (qsock_notifier,
+ QSocketNotifier (int(handle), QSocketNotifier::Read, this));
+ this->read_notifier_.bind (handle,
+ qsock_notifier);
+ QObject::connect (qsock_notifier,
+ SIGNAL (activated (int)),
+ this,
+ SLOT (read_event (int))) ;
+ // disable; it will be enabled by the regular register_handler_i if
+ // necessary
+ qsock_notifier->setEnabled (0);
+ }
+
+ qsock_notifier = 0;
+
+
+ // if there is already a write socket notifier for this handle, do nothing
+ // otherwise create read notifier
+ if ((this->write_notifier_.find (handle,
+ qsock_notifier) == -1))
+ {
+ ACE_NEW (qsock_notifier,
+ QSocketNotifier (int(handle), QSocketNotifier::Write, this));
+
+ this->write_notifier_.bind (handle,
+ qsock_notifier);
+
+ QObject::connect (qsock_notifier,
+ SIGNAL (activated (int)),
+ this,
+ SLOT (write_event (int)));
+ // disable; it will be enabled by the regular register_handler_i if
+ // necessary
+ qsock_notifier->setEnabled (0);
+ }
+
+
+ qsock_notifier = 0;
+
+ // if there is already a write socket notifier for this handle, do nothing
+ // otherwise create read notifier
+ if ((this->exception_notifier_.find (handle,
+ qsock_notifier) == -1))
+ {
+
+ ACE_NEW (qsock_notifier,
+ QSocketNotifier (int(handle), QSocketNotifier::Exception, this));
+
+ this->exception_notifier_.bind (handle,
+ qsock_notifier);
+
+ QObject::connect (qsock_notifier,
+ SIGNAL (activated (int)),
+ this,
+ SLOT (exception_event (int))) ;
+ // disable; it will be enabled by the regular register_handler_i if
+ // necessary
+ qsock_notifier->setEnabled (0);
+ }
+}
+
+void
+ACE_QtReactor::destroy_notifiers_for_handle (ACE_HANDLE handle)
+{
+ QSocketNotifier *qsock_notifier = 0;
+
+ // Looks for the handle in the maps and removes them.
+
+ if ((this->read_notifier_.find (handle,
+ qsock_notifier) != -1))
+ {
+ this->read_notifier_.unbind (handle,
+ qsock_notifier);
+ delete qsock_notifier;
+ }
+
+ if ((this->write_notifier_.find (handle,
+ qsock_notifier) != -1))
+ {
+ this->write_notifier_.unbind (handle,
+ qsock_notifier);
+ delete qsock_notifier;
+ }
+
+
+ if ((this->exception_notifier_.find (handle,
+ qsock_notifier) != -1))
+ {
+ this->exception_notifier_.unbind (handle,
+ qsock_notifier);
+ delete qsock_notifier;
+ }
+}
+
+int
+ACE_QtReactor::register_handler_i (ACE_HANDLE handle ,
+ ACE_Event_Handler *handler,
+ ACE_Reactor_Mask mask)
+{
+ ACE_TRACE ("ACE_QtReactor::register_handler_i");
+
+ this->create_notifiers_for_handle (handle);
+
+ int result;
+ if ((result = ACE_Select_Reactor::register_handler_i(handle,
+ handler,
+ mask ))
+ == -1)
+ {
+ // destroy notifiers only when there is no handler for handle
+ if ( !ACE_Select_Reactor::find_handler( handle ) )
+ this->destroy_notifiers_for_handle (handle);
+ return -1;
+ }
+
+ 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");
+
+ int result = ACE_Select_Reactor::remove_handler_i (handle, mask);
+ // destroy notifiers only when there is no handler for handle
+ if ( !ACE_Select_Reactor::find_handler( handle ) )
+ this->destroy_notifiers_for_handle (handle);
+ return result;
+}
+
+
+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 ()));
+
+#if QT_VERSION >= 0x040000
+ qtime_->setSingleShot (1);
+ qtime_->start(max_wait_time->msec());
+#else
+ qtime_->start(max_wait_time->msec(), 1);
+#endif
+ }
+
+}
+
+
+long
+ACE_QtReactor::schedule_timer (ACE_Event_Handler *handler,
+ const void *arg,
+ const ACE_Time_Value &delay_time,
+ 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(handler,
+ arg,
+ delay_time,
+ 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 ;
+ }
+}
+
+// mbrudka: who needs QtWaitForMultipleEvents? It seems it's cargo load now!
+int
+ACE_QtReactor::QtWaitForMultipleEvents (int width,
+ ACE_Select_Reactor_Handle_Set &wait_set,
+ ACE_Time_Value * /*max_wait_time*/)
+{
+ // Keep a copy of the wait set in case the wait_set be changed
+ // between the two select calls in this function. It could happen
+ // while waiting for an event, another event is handled and dispatched
+ // which changes the dispatch_set_/wait_set.
+ ACE_Select_Reactor_Handle_Set orig_wait_set = wait_set;
+
+ // 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.
+#if QT_VERSION >= 0x040000
+ this->qapp_->processEvents();
+#else
+ this->qapp_->processOneEvent ();
+#endif
+
+ // 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,
+ orig_wait_set.rd_mask_,
+ orig_wait_set.wr_mask_,
+ orig_wait_set.ex_mask_,
+ (ACE_Time_Value *) &ACE_Time_Value::zero);
+}
+
+// mbrudka: who needs wait_for_multiple_events? It seems it's cargo load now!
+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
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/QtReactor/QtReactor.h b/dep/acelite/ace/QtReactor/QtReactor.h
new file mode 100644
index 00000000000..72fe6d984e4
--- /dev/null
+++ b/dep/acelite/ace/QtReactor/QtReactor.h
@@ -0,0 +1,226 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file QtReactor.h
+ *
+ * $Id: QtReactor.h 94053 2011-05-11 13:44:41Z mhengstmengel $
+ *
+ * @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/QtReactor/ACE_QtReactor_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Select_Reactor.h"
+#include "ace/Map_Manager.h"
+
+#if defined (ACE_HAS_QT4)
+# include "QtCore/qglobal.h"
+#endif
+
+// QT toolkit specific includes.
+#include /**/ <QtGui/QApplication>
+#include /**/ <QtCore/QObject>
+#include /**/ <QtCore/QSocketNotifier>
+#include /**/ <QtCore/QTimer>
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+/**
+ * @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.
+ *
+ * \note Marek Brudka <mbrudka@elka.pw.edu.pl>: ACE_QtReactor was
+ * quickly bugfixed to meet ACE 5.4.2 (6.0.0?) deadline.
+ * While it passes QtReactor_Test now, there is a great
+ * room for improvements as the implementation is rather inefficient
+ * and obfuscated
+ * To be more specific:
+ * - reset_timeout always creates and removes qtimer after each
+ * timeout event! Obviously, for fast triggering timers this may
+ * lead to excessive memory management.
+ * - create/destroy_notifiers_for_handle may also be reworked to
+ * establish more clean relations between handles and QSocketNotifiers.
+ * - read/write_exception_event disable now SocketNotifier for a while
+ * to clear pending events. The cost of this operation is high: two hash
+ * acces in ACE and at least two next ones in Qt. This makes QtReator slow,
+ * but how clear pending events another way ?
+ * - there is qapplication() mutator, which sets new qapplication for
+ * QtReactor. This mutator violates implicit assumption about the
+ * relations between QTimer and QSocketNotifiers and QApplication for
+ * this reactor, namely one may expect that after qapplication(), none
+ * of QtReactor artifacts is bound to old qapplication. That's not true
+ * now, as QTimer and QSocketNotifiers are not reparent to new
+ * QApplication. As a result, the sequence:
+ * QApplication *old_qapp = new QApplication(..);
+ * QtReactor qreactor( old_qapp);
+ * // .. register handlers, schedule_timers etc
+ * QApplication *new_qapp = new QApplication(..);
+ * qreactor.qpplication( new_qapp );
+ * delete old_qapp;
+ * almost always leads to problems and memory violation, because
+ * QSocketNotifiers are released by old_qapp. Therefore QtReactor
+ * should not be reparent now by setting new qapplication.
+ * - the lifecycle of Qt objects in ACE contects is rather mysterious
+ * and should be made more explicit.
+ * - valgrind reports a small memory leak in QtReactor_Test, though as for now
+ * it is not clear if the leak is introduced by QtReactor, or rather incorrect
+ * memory management in QtReactor_Test.
+ */
+class ACE_QtReactor_Export ACE_QtReactor
+ : public QObject,
+ public ACE_Select_Reactor
+{
+
+ Q_OBJECT
+
+public:
+ /** \brief Constructor follows @ACE_Select_Reactor
+ \param QApplication *qapp, qapplication which runs events loop
+ */
+ ACE_QtReactor (QApplication *qapp = 0,
+ ACE_Sig_Handler * = 0,
+ ACE_Timer_Queue * = 0,
+ int disable_notify_pipe = 0,
+ ACE_Reactor_Notify *notify = 0,
+ bool mask_signals = true,
+ int s_queue = ACE_SELECT_TOKEN::FIFO);
+
+ /** \brief Constructor follows @ACE_Select_Reactor
+ \param QApplication *qapp, qapplication which runs events loop
+ */
+ ACE_QtReactor (size_t size,
+ QApplication *qapp = 0,
+ bool restart = false,
+ ACE_Sig_Handler * = 0,
+ ACE_Timer_Queue * = 0,
+ int disable_notify_pipe = 0,
+ ACE_Reactor_Notify *notify = 0,
+ bool mask_signals = true,
+ int s_queue = ACE_SELECT_TOKEN::FIFO);
+
+ virtual ~ACE_QtReactor (void);
+
+ void qapplication (QApplication *qapp);
+
+ // = Timer operations.
+ virtual long schedule_timer (ACE_Event_Handler *handler,
+ const void *arg,
+ const ACE_Time_Value &delay_time,
+ 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 @a 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 @a 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);
+
+ virtual int bit_ops (ACE_HANDLE handle,
+ ACE_Reactor_Mask mask,
+ ACE_Select_Reactor_Handle_Set &handle_set,
+ int ops);
+
+ int set_enable_flag_by_mask (int flag_value, ACE_HANDLE handle, ACE_Reactor_Mask mask);
+ void create_notifiers_for_handle (ACE_HANDLE handle);
+ void destroy_notifiers_for_handle (ACE_HANDLE handle);
+
+ // 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);
+ /// reopens notification pipe to create SocketNotifier for it
+ void reopen_notification_pipe(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);
+
+ /// Dispatch a timeout event
+ void timeout_event (void);
+};
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#include /**/ "ace/post.h"
+#endif /* ACE_QTREACTOR_H */
diff --git a/dep/acelite/ace/RB_Tree.cpp b/dep/acelite/ace/RB_Tree.cpp
index 0a6c8a08c8d..e9953b3ac68 100644
--- a/dep/acelite/ace/RB_Tree.cpp
+++ b/dep/acelite/ace/RB_Tree.cpp
@@ -1,4 +1,4 @@
-// $Id: RB_Tree.cpp 91813 2010-09-17 07:52:52Z johnnyw $
+// $Id: RB_Tree.cpp 94171 2011-06-09 01:49:08Z schmidt $
#ifndef ACE_RB_TREE_CPP
#define ACE_RB_TREE_CPP
@@ -49,8 +49,7 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree (ACE_Allocator
: root_ (0),
current_size_ (0)
{
- ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::"
- "ACE_RB_Tree (ACE_Allocator *alloc)");
+ ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree (ACE_Allocator *alloc)");
allocator_ = alloc;
if (this->open (alloc) == -1)
ACE_ERROR ((LM_ERROR,
@@ -64,8 +63,7 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree (const ACE_RB_T
: 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_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_);
allocator_ = rbt.allocator_;
@@ -85,6 +83,8 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree (
ACE_Allocator *alloc
)
{
+ ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::ACE_RB_Tree (void *, ACE_Allocator *)");
+
if (location != this)
{
this->root_ = 0;
@@ -728,8 +728,7 @@ 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)");
+ ACE_TRACE ("ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::insert_i");
// Find the closest matching node, if there is one.
RB_SearchResult result = LEFT;
diff --git a/dep/acelite/ace/RB_Tree.inl b/dep/acelite/ace/RB_Tree.inl
index 7de889abf5b..6f085fd624e 100644
--- a/dep/acelite/ace/RB_Tree.inl
+++ b/dep/acelite/ace/RB_Tree.inl
@@ -1,6 +1,6 @@
// -*- C++ -*-
//
-// $Id: RB_Tree.inl 80826 2008-03-04 14:51:23Z wotte $
+// $Id: RB_Tree.inl 94310 2011-07-09 19:10:06Z schmidt $
#include "ace/Guard_T.h"
#include "ace/Malloc_Base.h"
@@ -194,8 +194,7 @@ 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_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);
@@ -238,8 +237,7 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::trybind (const EXT_ID &ext_
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_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);
@@ -290,8 +288,7 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_i
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_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);
@@ -318,8 +315,7 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_i
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_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;
@@ -347,8 +343,7 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_i
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_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);
@@ -380,8 +375,7 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_i
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_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;
@@ -411,9 +405,7 @@ ACE_RB_Tree<EXT_ID, INT_ID, COMPARE_KEYS, ACE_LOCK>::rebind (const EXT_ID &ext_i
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_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);
diff --git a/dep/acelite/ace/README b/dep/acelite/ace/README
index 6afb534a2bf..56321ab2aa4 100644
--- a/dep/acelite/ace/README
+++ b/dep/acelite/ace/README
@@ -1,4 +1,4 @@
-// $Id: README 92182 2010-10-08 08:21:27Z olli $
+// $Id: README 93588 2011-03-18 05:18:06Z olli $
ACE Portability Macros
----------------------
@@ -173,8 +173,6 @@ ACE_HAS_NONRECURSIVE_MUTEXES In addition to recursive mutexes,
platform has non-recursive ones also.
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
@@ -201,19 +199,12 @@ ACE_SCANDIR_CMP_USES_CONST_VOIDPTR The OS's scandir() comparator function
const void*).
ACE_SCANDIR_SEL_LACKS_CONST The OS's scandir() selector function
is int (*selector)(ACE_DIRENT*)
-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_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
@@ -261,9 +252,6 @@ ACE_HAS_BROKEN_NESTED_TEMPLATES MSVC has trouble with defining
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_T_ERROR Compiler/platform has the wrong
prototype for t_error(), i.e.,
t_error(char *) rather than
@@ -353,8 +341,6 @@ ACE_USES_IPV4_IPV6_MIGRATION Enable IPv6 support in ACE on
turned on by default.
ACE_HAS_IPV6_V6ONLY Platform supports the IPPROTO_IPV6
level IPV6_V6ONLY socket option.
-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
@@ -482,12 +468,6 @@ ACE_HAS_PTHREADS Platform supports POSIX
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 (rwlocks)
ACE_HAS_PTHREAD_ATTR_SETCREATESUSPEND_NP Platform has
@@ -694,9 +674,6 @@ ACE_HAS_UCONTEXT_T Platform supports ucontext_t
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_VALGRIND Running with valgrind
ACE_HAS_VERBOSE_NOTSUP Prints out console message in
ACE_NOTSUP. Useful for
@@ -969,7 +946,6 @@ ACE_LACKS_PWD_REENTRANT_FUNCTIONS Platform lacks getpwnam_r()
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
diff --git a/dep/acelite/ace/RW_Mutex.h b/dep/acelite/ace/RW_Mutex.h
index aaaabdc0b96..99ba4c0d3fc 100644
--- a/dep/acelite/ace/RW_Mutex.h
+++ b/dep/acelite/ace/RW_Mutex.h
@@ -4,7 +4,7 @@
/**
* @file RW_Mutex.h
*
- * $Id: RW_Mutex.h 83934 2008-12-01 13:47:06Z johnnyw $
+ * $Id: RW_Mutex.h 93359 2011-02-11 11:33:12Z mcorino $
*
* Moved from Synch.h.
*
@@ -92,7 +92,7 @@ public:
/**
* Note, for interface uniformity with other synchronization
- * wrappers we include the <tryacquire> method. This is implemented
+ * 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, @c errno is
* set to @c EBUSY.
@@ -115,11 +115,11 @@ 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
+ /// 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...
+ /// remove() on the same object, which is a bad idea anyway...
bool removed_;
private:
diff --git a/dep/acelite/ace/Reactor.h b/dep/acelite/ace/Reactor.h
index 6198b4ebcfc..57d2ec7ea91 100644
--- a/dep/acelite/ace/Reactor.h
+++ b/dep/acelite/ace/Reactor.h
@@ -4,7 +4,7 @@
/**
* @file Reactor.h
*
- * $Id: Reactor.h 92345 2010-10-24 12:39:33Z johnnyw $
+ * $Id: Reactor.h 95774 2012-05-17 15:45:58Z shuston $
*
* @author Irfan Pyarali <irfan@cs.wustl.edu>
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
@@ -110,11 +110,11 @@ public:
// i.e., the one returned from ACE_Reactor::instance().
/**
* Run the event loop until the
- * <ACE_Reactor::handle_events/ACE_Reactor::alertable_handle_events>
+ * 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>.
+ * ACE_Reactor::run_reactor_event_loop().
*
* @deprecated Use ACE_Reactor::instance()->run_reactor_event_loop() instead
*/
@@ -178,18 +178,23 @@ public:
// 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.
+ * Run the event loop until the ACE_Reactor::handle_events() or
+ * ACE_Reactor::alertable_handle_events() method returns -1 or
+ * the end_reactor_event_loop() method is invoked.
*/
int run_reactor_event_loop (REACTOR_EVENT_HOOK = 0);
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
+ * ACE_Reactor::alertable_handle_events() method returns -1, the
* end_reactor_event_loop() method is invoked, or the ACE_Time_Value
- * expires.
+ * expires while the underlying event demultiplexer is waiting for
+ * events.
+ * Note that it is possible for events to continuously be available,
+ * avoiding the need to wait for events. In this situation the timeout
+ * value will not have an opportunity to expire until the next time
+ * the underlying event demultiplexer waits for events.
*/
int run_reactor_event_loop (ACE_Time_Value &tv,
REACTOR_EVENT_HOOK = 0);
@@ -559,13 +564,19 @@ public:
* @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
+ * @param event_handler Event handler to schedule on reactor. The handler's
+ * handle_timeout() method will be called when this
+ * scheduled timer expires.
+ * @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 for which the timer will be
+ * automatically rescheduled if the handle_timeout()
+ * callback does not return a value less than 0.
+ *
+ * @retval timer id, on success. The id can be used to
+ * cancel or reschedule this timer.
+ * @retval -1 on failure, with errno set.
*/
virtual long schedule_timer (ACE_Event_Handler *event_handler,
const void *arg,
diff --git a/dep/acelite/ace/Recursive_Thread_Mutex.h b/dep/acelite/ace/Recursive_Thread_Mutex.h
index 6ddd04bd6bf..240d9ce60a0 100644
--- a/dep/acelite/ace/Recursive_Thread_Mutex.h
+++ b/dep/acelite/ace/Recursive_Thread_Mutex.h
@@ -4,7 +4,7 @@
/**
* @file Recursive_Thread_Mutex.h
*
- * $Id: Recursive_Thread_Mutex.h 91688 2010-09-09 11:21:50Z johnnyw $
+ * $Id: Recursive_Thread_Mutex.h 93359 2011-02-11 11:33:12Z mcorino $
*
* Moved from Synch.h.
*
@@ -72,7 +72,7 @@ public:
int acquire (ACE_Time_Value &tv);
/**
- * If @a tv == 0 the call <acquire()> directly. Otherwise, Block the
+ * If @a tv == 0 the call acquire() directly. Otherwise, Block the
* thread until we acquire the mutex or until @a tv times out, in
* which case -1 is returned with @c errno == @c ETIME. Note that
* <*tv> is assumed to be in "absolute" rather than "relative" time.
@@ -89,14 +89,14 @@ public:
int tryacquire (void);
/**
- * Acquire mutex ownership. This calls <acquire> and is only
+ * 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
+ * Acquire mutex ownership. This calls acquire() and is only
* here to make the ACE_Recusive_Thread_Mutex interface consistent
* with the other synchronization APIs.
*/
@@ -104,7 +104,7 @@ public:
/**
* Conditionally acquire mutex (i.e., won't block). This calls
- * <tryacquire> and is only here to make the
+ * 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, @c errno is set to
@@ -114,7 +114,7 @@ public:
/**
* Conditionally acquire mutex (i.e., won't block). This calls
- * <tryacquire> and is only here to make the
+ * 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, @c errno is set to
@@ -169,11 +169,11 @@ protected:
/// Recursive mutex.
ACE_recursive_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
+ /// 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...
+ /// remove() on the same object, which is a bad idea anyway...
bool removed_;
private:
diff --git a/dep/acelite/ace/Registry_Name_Space.h b/dep/acelite/ace/Registry_Name_Space.h
index eb9f77587f6..289e61039fa 100644
--- a/dep/acelite/ace/Registry_Name_Space.h
+++ b/dep/acelite/ace/Registry_Name_Space.h
@@ -4,7 +4,7 @@
/**
* @file Registry_Name_Space.h
*
- * $Id: Registry_Name_Space.h 92345 2010-10-24 12:39:33Z johnnyw $
+ * $Id: Registry_Name_Space.h 93359 2011-02-11 11:33:12Z mcorino $
*
* @author Irfan Pyarali (irfan@cs.wustl.edu)
*/
@@ -67,13 +67,13 @@ public:
/**
* 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).
+ * exist yet. (Wide character 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
+ /// Delete a name from a ACE_Name_Space (Wide character strings
/// Interface).
int unbind (const ACE_NS_WString &name_in);
diff --git a/dep/acelite/ace/Remote_Name_Space.h b/dep/acelite/ace/Remote_Name_Space.h
index 683f36c7963..73c9272f07d 100644
--- a/dep/acelite/ace/Remote_Name_Space.h
+++ b/dep/acelite/ace/Remote_Name_Space.h
@@ -4,7 +4,7 @@
/**
* @file Remote_Name_Space.h
*
- * $Id: Remote_Name_Space.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: Remote_Name_Space.h 93359 2011-02-11 11:33:12Z mcorino $
*
* @author Prashant Jain
*/
@@ -77,18 +77,18 @@ public:
/**
* 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).
+ * didn't exist yet. (Wide character 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
+ /// Delete a name from a ACE_Remote_Name_Space (Wide character 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>!
+ /// caller is responsible for deleting both @a value_out and @a type_out!
virtual int resolve (const ACE_NS_WString &name_in,
ACE_NS_WString &value_out,
char *&type_out);
diff --git a/dep/acelite/ace/Remote_Tokens.h b/dep/acelite/ace/Remote_Tokens.h
index 3c9ed94f561..3d09f7f2fc4 100644
--- a/dep/acelite/ace/Remote_Tokens.h
+++ b/dep/acelite/ace/Remote_Tokens.h
@@ -4,7 +4,7 @@
/**
* @file Remote_Tokens.h
*
- * $Id: Remote_Tokens.h 92345 2010-10-24 12:39:33Z johnnyw $
+ * $Id: Remote_Tokens.h 93359 2011-02-11 11:33:12Z mcorino $
*
* @author Douglas C. Schmidt (schmidt@cs.wustl.edu)
* @author Tim Harrison (harrison@cs.wustl.edu)
@@ -42,7 +42,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* distributed token operations. It is similar to the
* ACE_Token_Proxy.
* @todo
- * Distributed sleep_hooks have not been implemented. <owner_id>
+ * Distributed sleep_hooks have not been implemented. <owner_id>
* is not implemented.
*/
class ACE_Export ACE_Remote_Token_Proxy : public ACE_Token_Proxy
diff --git a/dep/acelite/ace/SOCK_Dgram.cpp b/dep/acelite/ace/SOCK_Dgram.cpp
index 0530584b059..3706d780ad5 100644
--- a/dep/acelite/ace/SOCK_Dgram.cpp
+++ b/dep/acelite/ace/SOCK_Dgram.cpp
@@ -1,4 +1,4 @@
-// $Id: SOCK_Dgram.cpp 91622 2010-09-06 08:26:30Z sma $
+// $Id: SOCK_Dgram.cpp 95533 2012-02-14 22:59:17Z wotte $
#include "ace/SOCK_Dgram.h"
@@ -320,7 +320,7 @@ ACE_SOCK_Dgram::send (const iovec iov[],
// Determine the total length of all the buffers in <iov>.
for (i = 0; i < n; i++)
-#if ! (defined(__BORLANDC__) || defined(linux) || defined(ACE_HAS_RTEMS))
+#if ! (defined(__BORLANDC__) || defined(ACE_LINUX) || defined(ACE_HAS_RTEMS))
// The iov_len is unsigned on Linux, RTEMS and with Borland. If we go
// ahead and try the if, it will emit a warning.
if (iov[i].iov_len < 0)
@@ -369,7 +369,7 @@ ACE_SOCK_Dgram::recv (iovec iov[],
int i;
for (i = 0; i < n; i++)
-#if ! (defined(__BORLANDC__) || defined(linux) || defined(ACE_HAS_RTEMS))
+#if ! (defined(__BORLANDC__) || defined(ACE_LINUX) || defined(ACE_HAS_RTEMS))
// The iov_len is unsigned on Linux, RTEMS and with Borland. If we go
// ahead and try the if, it will emit a warning.
if (iov[i].iov_len < 0)
@@ -596,7 +596,7 @@ ACE_SOCK_Dgram::make_multicast_ifaddr6 (ipv6_mreq *ret_mreq,
0,
sizeof (lmreq));
-#if defined(__linux__)
+#if defined(ACE_LINUX)
if (net_if != 0)
{
lmreq.ipv6mr_interface = ACE_OS::if_nametoindex (ACE_TEXT_ALWAYS_CHAR(net_if));
@@ -674,6 +674,6 @@ ACE_SOCK_Dgram::make_multicast_ifaddr6 (ipv6_mreq *ret_mreq,
return 0;
}
-#endif /* __linux__ && ACE_HAS_IPV6 */
+#endif /* ACE_LINUX && ACE_HAS_IPV6 */
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/SOCK_Dgram.h b/dep/acelite/ace/SOCK_Dgram.h
index c26c5ff2c35..3a8eba63da7 100644
--- a/dep/acelite/ace/SOCK_Dgram.h
+++ b/dep/acelite/ace/SOCK_Dgram.h
@@ -4,7 +4,7 @@
/**
* @file SOCK_Dgram.h
*
- * $Id: SOCK_Dgram.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: SOCK_Dgram.h 92580 2010-11-15 09:48:02Z johnnyw $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
*/
@@ -206,8 +206,7 @@ public:
protected:
/// Open is shared by this and by <LSOCK_Dgram>.
- int shared_open (const ACE_Addr &local,
- int protocol_family);
+ int shared_open (const ACE_Addr &local, int protocol_family);
/// Create a multicast addr/if pair, in format useful for system calls.
/// If mreq param is NULL, just verify the passed addr/interface specs.
diff --git a/dep/acelite/ace/SOCK_Dgram_Bcast.cpp b/dep/acelite/ace/SOCK_Dgram_Bcast.cpp
index fec4c39a259..f6226665e25 100644
--- a/dep/acelite/ace/SOCK_Dgram_Bcast.cpp
+++ b/dep/acelite/ace/SOCK_Dgram_Bcast.cpp
@@ -1,4 +1,4 @@
-// $Id: SOCK_Dgram_Bcast.cpp 91685 2010-09-09 09:35:14Z johnnyw $
+// $Id: SOCK_Dgram_Bcast.cpp 93359 2011-02-11 11:33:12Z mcorino $
#include "ace/SOCK_Dgram_Bcast.h"
@@ -181,7 +181,7 @@ ACE_SOCK_Dgram_Bcast::mk_broadcast (const ACE_TCHAR *host_name)
// Silently skip link interfaces
if (ifr->ifr_addr.sa_family == AF_LINK)
continue;
-#endif /* __QNX__ */
+#endif /* __QNX__ || ACE_VXWORKS */
// Compare host ip address with interface ip address.
if (host_name)
{
diff --git a/dep/acelite/ace/SOCK_Dgram_Mcast.cpp b/dep/acelite/ace/SOCK_Dgram_Mcast.cpp
index 5f31771b0f1..91167e0ac14 100644
--- a/dep/acelite/ace/SOCK_Dgram_Mcast.cpp
+++ b/dep/acelite/ace/SOCK_Dgram_Mcast.cpp
@@ -1,4 +1,4 @@
-// $Id: SOCK_Dgram_Mcast.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: SOCK_Dgram_Mcast.cpp 95679 2012-04-03 22:55:46Z shuston $
#include "ace/SOCK_Dgram_Mcast.h"
@@ -8,14 +8,22 @@
#include "ace/os_include/net/os_if.h"
#include "ace/os_include/arpa/os_inet.h"
-#if defined (__linux__) && defined (ACE_HAS_IPV6)
+#if defined (ACE_LINUX) && defined (ACE_HAS_IPV6)
#include "ace/OS_NS_sys_socket.h"
#endif
-#if defined (ACE_HAS_IPV6) && defined (ACE_WIN32)
+#if defined (ACE_WIN32)
#include /**/ <iphlpapi.h>
#endif
+#if defined (ACE_HAS_GETIFADDRS)
+# if defined (ACE_VXWORKS)
+# include /**/ <net/ifaddrs.h>
+# else
+# include /**/ <ifaddrs.h>
+# endif /*ACE_VXWORKS */
+#endif /* ACE_HAS_GETIFADDRS */
+
#if !defined (__ACE_INLINE__)
#include "ace/SOCK_Dgram_Mcast.inl"
#endif /* __ACE_INLINE__ */
@@ -253,135 +261,135 @@ ACE_SOCK_Dgram_Mcast::subscribe_ifs (const ACE_INET_Addr &mcast_addr,
if (ACE_BIT_ENABLED (this->opts_, OPT_NULLIFACE_ALL)
&& net_if == 0)
{
-#if defined (ACE_HAS_IPV6)
- if (mcast_addr.get_type () == AF_INET6)
- {
- size_t nr_subscribed = 0;
-# if defined(__linux__)
- struct if_nameindex *intf;
-
- intf = ACE_OS::if_nameindex ();
-
- if (intf == 0)
- return -1;
-
- int index = 0;
- while (intf[index].if_index != 0 || intf[index].if_name != 0)
- {
- if (this->join (mcast_addr, reuse_addr,
- ACE_TEXT_CHAR_TO_TCHAR(intf[index].if_name)) == 0)
- ++nr_subscribed;
-
- ++index;
- }
+ int family = mcast_addr.get_type ();
+ size_t nr_subscribed = 0;
- ACE_OS::if_freenameindex (intf);
+#if defined (ACE_HAS_GETIFADDRS)
-# elif defined (ACE_WIN32)
+ // Take advantage of the BSD getifaddrs function that simplifies
+ // access to connected interfaces.
+ struct ifaddrs *ifap = 0;
+ struct ifaddrs *p_if = 0;
- IP_ADAPTER_ADDRESSES tmp_addrs;
- // Initial call to determine actual memory size needed
- DWORD dwRetVal;
- ULONG bufLen = 0;
- if ((dwRetVal = ::GetAdaptersAddresses (AF_INET6,
- 0,
- 0,
- &tmp_addrs,
- &bufLen)) != ERROR_BUFFER_OVERFLOW)
- return -1; // With output bufferlength 0 this can't be right.
+ if (::getifaddrs (&ifap) != 0)
+ return -1;
- // Get required output buffer and retrieve info for real.
- PIP_ADAPTER_ADDRESSES pAddrs;
- char *buf;
- ACE_NEW_RETURN (buf,
- char[bufLen],
- -1);
- pAddrs = reinterpret_cast<PIP_ADAPTER_ADDRESSES> (buf);
- if ((dwRetVal = ::GetAdaptersAddresses (AF_INET6,
- 0,
- 0,
- pAddrs,
- &bufLen)) != NO_ERROR)
+ // Not every interface is for IP, and not all are up and multicast.
+ for (p_if = ifap;
+ p_if != 0;
+ p_if = p_if->ifa_next)
+ {
+ // Some OSes can return interfaces with no ifa_addr if the
+ // interface has no assigned address.
+ // If there is an address but it's not the family we want, ignore it.
+ if (p_if->ifa_addr == 0 || p_if->ifa_addr->sa_family != family)
+ continue;
+
+ // Check to see if it's up and supports multicast.
+ unsigned int wanted = IFF_UP | IFF_MULTICAST;
+ if ((p_if->ifa_flags & wanted) != wanted)
+ continue;
+
+ // Sometimes the kernel returns 0.0.0.0 as the interface
+ // address, skip those...
+ if (p_if->ifa_addr->sa_family == PF_INET)
{
- delete[] buf; // clean up
- return -1;
- }
+ struct sockaddr_in *addr =
+ reinterpret_cast<sockaddr_in *> (p_if->ifa_addr);
- while (pAddrs)
+ if (addr->sin_addr.s_addr == INADDR_ANY)
+ continue;
+ }
+# if defined (ACE_HAS_IPV6)
+ else if (p_if->ifa_addr->sa_family == AF_INET6)
{
- if (this->join (mcast_addr, reuse_addr,
- ACE_TEXT_CHAR_TO_TCHAR(pAddrs->AdapterName)) == 0)
- ++nr_subscribed;
+ struct sockaddr_in6 *addr =
+ reinterpret_cast<sockaddr_in6 *> (p_if->ifa_addr);
- pAddrs = pAddrs->Next;
+ // Skip the ANY address
+ if (IN6_IS_ADDR_UNSPECIFIED(&addr->sin6_addr))
+ continue;
}
+# endif /* ACE_HAS_IPV6 */
- delete[] buf; // clean up
+ // Ok, now join on this interface.
+ if (this->join (mcast_addr,
+ reuse_addr,
+ ACE_TEXT_CHAR_TO_TCHAR(p_if->ifa_name)) == 0)
+ ++nr_subscribed;
+ }
-# endif /* ACE_WIN32 */
+ ::freeifaddrs (ifap);
- if (nr_subscribed == 0)
- {
- errno = ENODEV;
- return -1;
- }
+# elif defined (ACE_WIN32)
- return 1;
- }
- else
+ IP_ADAPTER_ADDRESSES tmp_addrs;
+ // Initial call to determine actual memory size needed
+ DWORD dwRetVal;
+ ULONG bufLen = 0;
+ // Note... GetAdaptersAddresses returns different bufLen values depending
+ // on how many multicast joins there are on the system. To avoid this,
+ // specify that we don't want to know about multicast addresses. This
+ // does not avoid multicastable interfaces and makes the size-check
+ // more reliable across varying conditions.
+ DWORD flags = GAA_FLAG_SKIP_MULTICAST;
+ if ((dwRetVal = ::GetAdaptersAddresses (family,
+ flags,
+ 0,
+ &tmp_addrs,
+ &bufLen)) != ERROR_BUFFER_OVERFLOW)
{
- // 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;
+ errno = dwRetVal;
+ return -1; // With output bufferlength 0 this can't be right.
+ }
- if (ACE::get_ip_interfaces (if_cnt, if_addrs) != 0)
- return -1;
+ // Get required output buffer and retrieve info for real.
+ PIP_ADAPTER_ADDRESSES pAddrs;
+ char *buf;
+ ACE_NEW_RETURN (buf,
+ char[bufLen],
+ -1);
+ pAddrs = reinterpret_cast<PIP_ADAPTER_ADDRESSES> (buf);
+ if ((dwRetVal = ::GetAdaptersAddresses (family,
+ flags,
+ 0,
+ pAddrs,
+ &bufLen)) != NO_ERROR)
+ {
+ delete[] buf; // clean up
+ errno = dwRetVal;
+ return -1;
+ }
- size_t nr_subscribed = 0;
+ for (; pAddrs; pAddrs = pAddrs->Next)
+ {
+ if (pAddrs->OperStatus != IfOperStatusUp)
+ continue;
- if (if_cnt < 2)
+ // The ACE_SOCK_Dgram::make_multicast_ifaddr (IPv4), called by join(),
+ // can only deal with a dotted-decimal address, not an interface name.
+ if (family == AF_INET)
{
- if (this->join (mcast_addr,
- reuse_addr,
- ACE_TEXT ("0.0.0.0")) == 0)
+ ACE_INET_Addr intf_addr ((sockaddr_in*)(pAddrs->FirstUnicastAddress->Address.lpSockaddr),
+ pAddrs->FirstUnicastAddress->Address.iSockaddrLength);
+ char intf_addr_str[INET_ADDRSTRLEN];
+ intf_addr.get_host_addr (intf_addr_str, sizeof (intf_addr_str));
+ if (this->join (mcast_addr, reuse_addr,
+ ACE_TEXT_CHAR_TO_TCHAR(intf_addr_str)) == 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_type () != AF_INET || if_addrs[if_cnt].is_loopback ())
- continue;
- char addr_buf[INET6_ADDRSTRLEN];
- if (this->join (mcast_addr,
- reuse_addr,
- ACE_TEXT_CHAR_TO_TCHAR
- (if_addrs[if_cnt].get_host_addr (addr_buf, INET6_ADDRSTRLEN))) == 0)
- ++nr_subscribed;
- }
+ if (this->join (mcast_addr, reuse_addr,
+ ACE_TEXT_CHAR_TO_TCHAR(pAddrs->AdapterName)) == 0)
+ ++nr_subscribed;
}
+ }
- delete [] if_addrs;
+ delete[] buf; // clean up
- if (nr_subscribed == 0)
- {
- errno = ENODEV;
- return -1;
- }
+# else
- // 1 indicates a "short-circuit" return. This handles the
- // recursive behavior of checking all the interfaces.
- return 1;
-
- }
-#else
// Subscribe on all local multicast-capable network interfaces, by
// doing recursive calls with specific interfaces.
@@ -391,8 +399,6 @@ ACE_SOCK_Dgram_Mcast::subscribe_ifs (const ACE_INET_Addr &mcast_addr,
if (ACE::get_ip_interfaces (if_cnt, if_addrs) != 0)
return -1;
- size_t nr_subscribed = 0;
-
if (if_cnt < 2)
{
if (this->join (mcast_addr,
@@ -409,7 +415,7 @@ ACE_SOCK_Dgram_Mcast::subscribe_ifs (const ACE_INET_Addr &mcast_addr,
--if_cnt;
// Convert to 0-based for indexing, next loop check.
- if (if_addrs[if_cnt].is_loopback ())
+ if (if_addrs[if_cnt].get_type () != family || if_addrs[if_cnt].is_loopback ())
continue;
char addr_buf[INET6_ADDRSTRLEN];
if (this->join (mcast_addr,
@@ -422,18 +428,19 @@ ACE_SOCK_Dgram_Mcast::subscribe_ifs (const ACE_INET_Addr &mcast_addr,
delete [] if_addrs;
+# endif /* ACE_WIN32 */
+
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;
-#endif /* ACE_HAS_IPV6 */
}
+ // Subscribe on a specific interface, or on the default interface.
+
#if defined (ACE_HAS_IPV6)
if (mcast_addr.get_type () == AF_INET6)
{
@@ -441,6 +448,7 @@ ACE_SOCK_Dgram_Mcast::subscribe_ifs (const ACE_INET_Addr &mcast_addr,
return -1;
}
else
+#endif /* ACE_HAS_IPV6 - Fall into IPv4-only case */
{
// Validate passed multicast addr and iface specifications.
if (this->make_multicast_ifaddr (0,
@@ -448,13 +456,6 @@ ACE_SOCK_Dgram_Mcast::subscribe_ifs (const ACE_INET_Addr &mcast_addr,
net_if) == -1)
return -1;
}
-#else
- // Validate passed multicast addr and iface specifications.
- if (this->make_multicast_ifaddr (0,
- mcast_addr,
- net_if) == -1)
- return -1;
-#endif /* ACE_HAS_IPV6 */
return 0;
@@ -552,7 +553,7 @@ ACE_SOCK_Dgram_Mcast::subscribe_i (const ACE_INET_Addr &mcast_addr,
ip_mreq mreq;
#if defined (ACE_HAS_IPV6)
ipv6_mreq mreq6;
-#endif /* __linux__ && ACE_HAS_IPV6 */
+#endif /* ACE_LINUX && ACE_HAS_IPV6 */
// Open the socket IFF this is the first ::subscribe and ::open
// was not explicitly invoked.
@@ -616,7 +617,7 @@ ACE_SOCK_Dgram_Mcast::unsubscribe_ifs (const ACE_INET_Addr &mcast_addr,
if (mcast_addr.get_type () == AF_INET6)
{
size_t nr_unsubscribed = 0;
-# if defined(__linux__)
+# if defined(ACE_LINUX)
struct if_nameindex *intf;
diff --git a/dep/acelite/ace/SOCK_Dgram_Mcast.h b/dep/acelite/ace/SOCK_Dgram_Mcast.h
index 7c42e46e78a..a2e7def0fe6 100644
--- a/dep/acelite/ace/SOCK_Dgram_Mcast.h
+++ b/dep/acelite/ace/SOCK_Dgram_Mcast.h
@@ -4,7 +4,7 @@
/**
* @file SOCK_Dgram_Mcast.h
*
- * $Id: SOCK_Dgram_Mcast.h 91626 2010-09-07 10:59:20Z johnnyw $
+ * $Id: SOCK_Dgram_Mcast.h 96014 2012-08-08 15:30:01Z sma $
*
* @author Irfan Pyrali <irfan@cs.wustl.edu>
* @author Tim Harrison <harrison@cs.wustl.edu>
@@ -46,50 +46,56 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
*
* 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.
+ * specifications. Constructor arguments determine per-instance optional
+ * functionality.
*
- * Note that multicast semantics and implementation details are _very_
+ * Note that multicast semantics and implementation details are @i 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
+ * - Send and receive addresses and network interfaces, but not port number,
+ * are independent. While this instance is open, one send interface (and a
+ * default send address) is in effect and 0, 1, or multiple receive
+ * 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').
+ * port number and optionally the multicast address bound to the underlying
+ * socket, and defines the (one) port number that is used for all subscribes
+ * (subsequent subscribes must pass the same port number 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).
+ * determine the default state. Note that some environments (e.g. some
+ * Windows versions) 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
+ * 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.
+ * Interface specification notes (for subscribe() and unsubscribe()):
+ * - If @a net_if == 0, the @c OPT_NULLIFACE_ALL and @c OPT_NULLIFACE_ONE
+ * options determine whether only the system default interface
+ * (if @c OPT_NULLIFACE_ONE is set) or all interfaces (if
+ * @c OPT_NULLIFACE_ALL is set) is affected. Specifying all interfaces
+ * functions correctly only on:
+ * + Windows
+ * + Platforms with the ACE_HAS_GETIFADDRS config setting (includes Linux)
+ * + Platforms which accept the IP address as an interface
+ * name/specification
+ * + Systems with only one non-loopback interface.
+ * Other platforms require additional supporting code.
* - 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.
+ * - The @a 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().
+ * string form and join() will convert them into numbers.
*/
class ACE_Export ACE_SOCK_Dgram_Mcast : public ACE_SOCK_Dgram
{
@@ -99,78 +105,88 @@ public:
* @brief Option parameters.
*
* These control per-instance optional functionality. They are set via
- * optional constructor arguments.
+ * an optional constructor argument.
+ *
* @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.
- //
+ /* Define whether a specific multicast address (in addition to the port
+ * number) is bound to the socket.
+ * @note:
+ * - 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 number.
+ * - Some IP stacks (e.g. some Windows) 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
+ * without 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 information.
+ * - The address (and port number) passed to open() (or the first
+ * join(), 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." ;-)
+ /// @note This might seem odd, but we need a way to distinguish between
+ /// default behavior, which might or might not be to bind, and explicitly
+ /// 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.
+ /// 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.
+ /// 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:
+
+ /*
+ * Define the interpretation of NULL as a join 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.
+ * @note
+ * - The @c OPT_NULLIFACE_ALL option can be used only in the following
+ * environments:
+ * + Windows
+ * + Platforms with the ACE_HAS_GETIFADDRS config setting (includes
+ * Linux)
+ * + Platforms which accept the IP address as an interface
+ * name/specification and for which
+ * ACE_Sock_Connect::get_ip_interfaces() is fully implemented
+ * + Systems with only one non-loopback interface.
+ * Other platforms require additional supporting code.
+ * - 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." ;-)
+ /// @note This might seem odd, but we need a way to distinguish between
+ /// default behavior, which might or might not be to bind, and explicitly
+ /// 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).
+ /// This is the (ad-hoc) legacy behavior for Win32/WinSock.
+ /// @note 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).
+ /// General-purpose default behavior (as per legacy behavior).
DEFOPT_NULLIFACE = OPT_NULLIFACE_ONE,
#endif /* ACE_WIN32 */
/// All default options.
@@ -179,48 +195,53 @@ public:
// = Initialization routines.
- /// Ctor - Create an unitialized instance and define per-instance optional
+ /// Create an unitialized instance and define per-instance optional
/// functionality.
/**
- * You must invoke <open> or <subscribe>, to create/bind a socket and define
+ * You must invoke open() or join(), 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
+ /// Release all resources and implicitly or explicitly unsubscribe
/// from all currently subscribed groups.
/**
- * The OPT_DTORUNSUB_YES_ option defines whether an explicit <unsusbcribe> is
+ * The OPT_DTORUNSUB_YES_ option defines whether an explicit unsubscribe() 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.
/**
+ * 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
+ * the first join(), using the subscribed address/port number and network
* interface parameters.
- * The @a 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 environment.)
- * The port# in <mcast_addr> may be 0, in which case a system-assigned
- * (ephemeral) port# is used for sending and receiving.
- * If @a 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()
+ * @param mcast_addr Defines the default send address/port number and,
+ * if the @c OPT_BINDADDR_YES option is used, the multicast address
+ * that is bound to this socket. The port number in @a mcast_addr
+ * may be 0, in which case a system-assigned (ephemeral) port number
+ * is used for sending and receiving.
+ *
+ * @param net_if If @a net_if is not 0, it defines the network interface
+ * used for all sends by this instance, otherwise the system default
+ * interface is used. (The @a net_if parameter is ignored if this
+ * feature is not supported by the environment.)
+ *
+ * @param reuse_addr If @a reuse_addr is not 0, the @c SO_REUSEADDR option
+ * and, if it is supported, the SO_REUSEPORT option are enabled.
+ *
+ * @retval 0 on success
+ * @retval -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.
+ int open (const ACE_INET_Addr &mcast_addr,
+ const ACE_TCHAR *net_if = 0,
+ int reuse_addr = 1);
// = Multicast group subscribe/unsubscribe routines.
@@ -228,27 +249,27 @@ public:
/// 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
+ * OPT_NULLIFACE_ALL is used and @a 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>.
+ * If this is the first invocation of subscribe(), and open() was not
+ * previously invoked, open() will be invoked using @a mcast_addr for binding
+ * the socket and @a 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
+ * 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
+ * option OPT_NULLIFACE_ALL is used, @a net_if is NULL, and
+ * ACE_Sock_Connect::get_ip_interfaces() is not implemented in this
* environment.
*
* Note that the optional @a reuse_addr parameter does not apply to
- * subscriptions; it is only used if <open> is implicitly invoked (see above).
+ * subscriptions; it is only used if open() is implicitly invoked (see above).
*
* Uses the mcast_addr to determine protocol_family, and protocol which
* we always pass as 0 anyway.
@@ -262,15 +283,15 @@ public:
/// supported).
/**
* The specified group/interface combination is unsubscribed. If option
- * OPT_NULLIFACE_ALL is used and <net_if> is = 0, the group is unsubscribed
+ * OPT_NULLIFACE_ALL is used and @a 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>).
+ * @a 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 @a net_if).
*
* leave() replaces unsubscribe() and uses mcast_addr to determine
* protocol_family, and protocol which we always pass as 0 anyway.
@@ -281,13 +302,13 @@ public:
// = Data transfer routines.
/// Send @a n bytes in @a buf, using the multicast address and network interface
- /// defined by the first <open> or <subscribe>.
+ /// defined by the first open() or subscribe().
ssize_t send (const void *buf,
size_t n,
int flags = 0) const;
- /// Send @a n <iovecs>, using the multicast address and network interface
- /// defined by the first <open> or <subscribe>.
+ /// Send @a 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;
@@ -318,6 +339,14 @@ public:
/// Declare the dynamic allocation hooks.
ACE_ALLOC_HOOK_DECLARE;
+ /// Override write acessor for the constructor options (@see enum options above)
+ /// This class is typically default instantiated in a connection handler templated
+ /// framework so these cannot be specified on construction.
+ void opts (int opts);
+
+ /// Read acessor for the constructor options (@see enum options above)
+ int opts () const;
+
private:
/// Subscribe to a multicast address on one or more network interface(s).
@@ -356,9 +385,9 @@ private:
/// Per-instance options..
int opts_;
- /// Multicast address to which local <send> methods send datagrams.
+ /// Multicast address to which local send() methods send datagrams.
ACE_INET_Addr send_addr_;
- /// Network interface to which all <send> methods send multicast datagrams.
+ /// Network interface to which all send() methods send multicast datagrams.
ACE_TCHAR *send_net_if_;
#if defined (ACE_SOCK_DGRAM_MCAST_DUMPABLE)
diff --git a/dep/acelite/ace/SOCK_Dgram_Mcast.inl b/dep/acelite/ace/SOCK_Dgram_Mcast.inl
index 75457d32d92..d5f1ecbd17d 100644
--- a/dep/acelite/ace/SOCK_Dgram_Mcast.inl
+++ b/dep/acelite/ace/SOCK_Dgram_Mcast.inl
@@ -1,6 +1,6 @@
// -*- C++ -*-
//
-// $Id: SOCK_Dgram_Mcast.inl 80826 2008-03-04 14:51:23Z wotte $
+// $Id: SOCK_Dgram_Mcast.inl 96014 2012-08-08 15:30:01Z sma $
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -49,4 +49,16 @@ ACE_SOCK_Dgram_Mcast::send (const iovec iov[],
flags);
}
+ACE_INLINE void
+ACE_SOCK_Dgram_Mcast::opts (int opts)
+{
+ this->opts_ = opts;
+}
+
+ACE_INLINE int
+ACE_SOCK_Dgram_Mcast::opts () const
+{
+ return this->opts_;
+}
+
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/SOCK_Stream.h b/dep/acelite/ace/SOCK_Stream.h
index a96d7e664ef..97dc8f70858 100644
--- a/dep/acelite/ace/SOCK_Stream.h
+++ b/dep/acelite/ace/SOCK_Stream.h
@@ -4,7 +4,7 @@
/**
* @file SOCK_Stream.h
*
- * $Id: SOCK_Stream.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: SOCK_Stream.h 92956 2010-12-29 16:12:31Z shuston $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
*/
@@ -78,7 +78,10 @@ public:
* wait indefinitely or until an error occurs for the
* specified number of bytes to be transferred.
* To avoid any waiting, specify a timeout value with
- * 0 seconds.
+ * 0 seconds. Note that the timeout period restarts on
+ * each retried operation issued; therefore, an operation
+ * that requires multiples retries may take longer than the
+ * specified timeout to complete.
* @param bytes_transferred If non-0, points to a location which receives
* the total number of bytes transferred before the method
* returns, even if it's less than the number requested.
diff --git a/dep/acelite/ace/SPIPE_Acceptor.h b/dep/acelite/ace/SPIPE_Acceptor.h
index 84529c76582..a804670d061 100644
--- a/dep/acelite/ace/SPIPE_Acceptor.h
+++ b/dep/acelite/ace/SPIPE_Acceptor.h
@@ -4,7 +4,7 @@
/**
* @file SPIPE_Acceptor.h
*
- * $Id: SPIPE_Acceptor.h 82723 2008-09-16 09:35:44Z johnnyw $
+ * $Id: SPIPE_Acceptor.h 94007 2011-04-27 09:01:45Z johnnyw $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
* @author Prashant Jain <pjain@cs.wustl.edu>
@@ -148,7 +148,7 @@ private:
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
+ // 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
diff --git a/dep/acelite/ace/SPIPE_Stream.inl b/dep/acelite/ace/SPIPE_Stream.inl
index d490f88f145..0aa53269079 100644
--- a/dep/acelite/ace/SPIPE_Stream.inl
+++ b/dep/acelite/ace/SPIPE_Stream.inl
@@ -1,6 +1,6 @@
// -*- C++ -*-
//
-// $Id: SPIPE_Stream.inl 88707 2010-01-25 18:49:25Z johnnyw $
+// $Id: SPIPE_Stream.inl 93061 2011-01-12 21:06:07Z wotte $
#include "ace/OS_NS_sys_uio.h"
#include "ace/OS_NS_errno.h"
@@ -139,7 +139,7 @@ ACE_SPIPE_Stream::send_handle (ACE_HANDLE handle) const
}
return 0;
#else
- handle = handle;
+ ACE_UNUSED_ARG (handle);
ACE_NOTSUP_RETURN (-1);
#endif /* ACE_HAS_STREAM_PIPES */
}
@@ -195,7 +195,7 @@ ACE_SPIPE_Stream::recv_handle (ACE_HANDLE &handle) const
}
return 0;
#else
- handle = handle;
+ ACE_UNUSED_ARG (handle);
ACE_NOTSUP_RETURN (-1);
#endif /* ACE_HAS_STREAM_PIPES */
}
diff --git a/dep/acelite/ace/SSL/SSL_Context.cpp b/dep/acelite/ace/SSL/SSL_Context.cpp
index 992cdeff921..c6cf6adcdf8 100644
--- a/dep/acelite/ace/SSL/SSL_Context.cpp
+++ b/dep/acelite/ace/SSL/SSL_Context.cpp
@@ -1,4 +1,4 @@
-// $Id: SSL_Context.cpp 91368 2010-08-16 13:03:34Z mhengstmengel $
+// $Id: SSL_Context.cpp 93497 2011-03-07 09:43:36Z vzykov $
#include "SSL_Context.h"
#include "sslconf.h"
@@ -202,9 +202,6 @@ ACE_SSL_Context::ssl_library_fini (void)
--ssl_library_init_count;
if (ssl_library_init_count == 0)
{
- // Explicitly close the singleton
- ACE_Unmanaged_Singleton<ACE_SSL_Context, ACE_SYNCH_MUTEX>::close();
-
::ERR_free_strings ();
::EVP_cleanup ();
@@ -216,7 +213,6 @@ ACE_SSL_Context::ssl_library_fini (void)
delete [] this->locks_;
this->locks_ = 0;
-
#endif /* ACE_HAS_THREADS */
}
}
@@ -645,8 +641,8 @@ ACE_SSL_Context::dh_params (const char *file_name,
#if defined (ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION)
-template ACE_Singleton<ACE_SSL_Context, ACE_SYNCH_MUTEX> *
- ACE_Singleton<ACE_SSL_Context, ACE_SYNCH_MUTEX>::singleton_;
+template ACE_Unmanaged_Singleton<ACE_SSL_Context, ACE_SYNCH_MUTEX> *
+ ACE_Unmanaged_Singleton<ACE_SSL_Context, ACE_SYNCH_MUTEX>::singleton_;
#endif /* ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION */
diff --git a/dep/acelite/ace/SSL/SSL_Context.h b/dep/acelite/ace/SSL/SSL_Context.h
index 003d6042c5b..4ad127557a1 100644
--- a/dep/acelite/ace/SSL/SSL_Context.h
+++ b/dep/acelite/ace/SSL/SSL_Context.h
@@ -1,17 +1,15 @@
// -*- C++ -*-
-
//=============================================================================
/**
* @file SSL_Context.h
*
- * $Id: SSL_Context.h 83916 2008-11-28 16:32:21Z johnnyw $
+ * $Id: SSL_Context.h 96087 2012-08-21 12:26:44Z sma $
*
* @author Carlos O'Ryan <coryan@ece.uci.edu>
* @author Ossama Othman <ossama@dre.vanderbilt.edu>
*/
//=============================================================================
-
#ifndef ACE_SSL_CONTEXT_H
#define ACE_SSL_CONTEXT_H
@@ -31,13 +29,11 @@
#include <openssl/ssl.h>
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
class ACE_SSL_Export ACE_SSL_Data_File
{
public:
-
/// Default constructor
ACE_SSL_Data_File (void);
@@ -52,7 +48,6 @@ public:
int type (void) const;
private:
-
/// The file name
ACE_CString file_name_;
@@ -62,6 +57,34 @@ private:
// ****************************************************************
+// NOTE: Solaris studio compilers amongst others will issue warnings if the
+// the correct type of function pointer (i.e. extern "C" ) is not stored/used
+// of the form:
+// Warning (Anachronism): Formal argument callback of type
+// extern "C" int(*)(int,x509_store_ctx_st*) in call to
+// SSL_CTX_set_verify(ssl_ctx_st*, int, extern "C" int(*)(int,x509_store_ctx_st*))
+// is being passed int(*)(int,x509_store_ctx_st*)
+// when C library routines are passed CallBack functions pointers that are
+// actually C++ functions.
+//
+// Unfortunatly you can not specify extern "C" linkage anywhere inside a class
+// declaration or inside a function prototype for individual parameters. I.e:
+// class { extern "C" int (*callback_) (int, void *); };
+// to store a function pointer as a data member of the class is illegal as is:
+// void function (extern "C" int (*callback) (int, void *);
+// to declare function (or a class member) that takes a extern "C" function
+// pointer as a parameter.
+//
+// Since we need an extern "C" function pointer as a parameter to be stored
+// in the class and handled by member functions, we are forced to declare
+// a typedef of that extern "C" function pointer that we can then use.
+// Again unfortunatly you also are not allowed to simply add the extern "C"
+// to the typedef itself, instead you have to place the typedef declaration
+// inside an extern "C" block, thus:
+
+extern "C" {
+ typedef int (*extern_C_CallBackVerify_t) (int, X509_STORE_CTX *);
+}
/**
* @class ACE_SSL_Context
@@ -75,7 +98,6 @@ private:
class ACE_SSL_Export ACE_SSL_Context
{
public:
-
#ifdef ACE_HAS_THREADS
typedef ACE_SYNCH_MUTEX lock_type;
#endif /* ACE_HAS_THREADS */
@@ -235,7 +257,6 @@ public:
*/
int have_trusted_ca (void) const;
-
/**
* @todo Complete this documentation where elipses(...) are used
*
@@ -284,8 +305,8 @@ public:
* inherited by all the ACE_SSL objects created using the context.
* It can be overriden on a per-ACE_SSL object.
*/
- void default_verify_callback (int (*callback) (int, X509_STORE_CTX *));
- int (*default_verify_callback(void) const) (int,X509_STORE_CTX *);
+ void default_verify_callback (extern_C_CallBackVerify_t);
+ extern_C_CallBackVerify_t default_verify_callback (void) const;
/**
* @name OpenSSL Random Number Generator Seed Related Methods
@@ -339,7 +360,6 @@ public:
//@}
private:
-
/// Verify if the context has been initialized or not.
void check_context (void);
@@ -354,7 +374,6 @@ private:
//@}
private:
-
/// The SSL_CTX structure
SSL_CTX *context_;
@@ -370,7 +389,7 @@ private:
int default_verify_mode_;
/// The default verify callback.
- int (*default_verify_callback_)(int, X509_STORE_CTX *);
+ extern_C_CallBackVerify_t default_verify_callback_;
/// count of successful CA load attempts
int have_ca_;
@@ -380,7 +399,6 @@ private:
/// application is multithreaded.
static lock_type * locks_;
#endif /* ACE_HAS_THREADS */
-
};
ACE_END_VERSIONED_NAMESPACE_DECL
@@ -390,5 +408,4 @@ ACE_END_VERSIONED_NAMESPACE_DECL
#endif /* __ACE_INLINE__ */
#include /**/ "ace/post.h"
-
#endif /* ACE_SSL_CONTEXT_H */
diff --git a/dep/acelite/ace/SSL/SSL_Context.inl b/dep/acelite/ace/SSL/SSL_Context.inl
index 7ecb3e0627e..65370672a8e 100644
--- a/dep/acelite/ace/SSL/SSL_Context.inl
+++ b/dep/acelite/ace/SSL/SSL_Context.inl
@@ -1,6 +1,6 @@
// -*- C++ -*-
//
-// $Id: SSL_Context.inl 83916 2008-11-28 16:32:21Z johnnyw $
+// $Id: SSL_Context.inl 96087 2012-08-21 12:26:44Z sma $
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -100,12 +100,12 @@ ACE_SSL_Context::default_verify_mode (void) const
}
ACE_INLINE void
-ACE_SSL_Context::default_verify_callback (int (*callback) (int, X509_STORE_CTX*))
+ACE_SSL_Context::default_verify_callback (extern_C_CallBackVerify_t callback)
{
this->default_verify_callback_ = callback;
}
-ACE_INLINE int (*ACE_SSL_Context::default_verify_callback(void) const)(int,X509_STORE_CTX *)
+ACE_INLINE extern_C_CallBackVerify_t ACE_SSL_Context::default_verify_callback(void) const
{
return this->default_verify_callback_;
}
diff --git a/dep/acelite/ace/SSL/SSL_Initializer.cpp b/dep/acelite/ace/SSL/SSL_Initializer.cpp
new file mode 100644
index 00000000000..4903e60815c
--- /dev/null
+++ b/dep/acelite/ace/SSL/SSL_Initializer.cpp
@@ -0,0 +1,44 @@
+// $Id: SSL_Initializer.cpp 93497 2011-03-07 09:43:36Z vzykov $
+
+#include "SSL_Initializer.h"
+#include "SSL_Context.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+int
+ACE_SSL_Initializer::static_init (void)
+{
+ ACE_Service_Config::process_directive (ace_svc_desc_ACE_SSL_Initializer);
+ return 0;
+}
+
+int
+ACE_SSL_Initializer::init (int, ACE_TCHAR *[])
+{
+ // Initialize ACE_SSL_Context singleton.
+ ACE_SSL_Context * ssl_ctx = ACE_SSL_Context::instance ();
+ ACE_ASSERT (ssl_ctx != 0);
+ ACE_UNUSED_ARG (ssl_ctx);
+
+ return 0;
+}
+
+int
+ACE_SSL_Initializer::fini (void)
+{
+ // Explicitly close the ACE_SSL_Context singleton.
+ ACE_Unmanaged_Singleton<ACE_SSL_Context, ACE_SYNCH_MUTEX>::close();
+
+ return 0;
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+ACE_STATIC_SVC_DEFINE (ACE_SSL_Initializer,
+ ACE_TEXT ("ACE_SSL_Initializer"),
+ ACE_SVC_OBJ_T,
+ &ACE_SVC_NAME (ACE_SSL_Initializer),
+ ACE_Service_Type::DELETE_THIS |
+ ACE_Service_Type::DELETE_OBJ,
+ 0)
+ACE_FACTORY_DEFINE (ACE_SSL, ACE_SSL_Initializer)
diff --git a/dep/acelite/ace/SSL/SSL_Initializer.h b/dep/acelite/ace/SSL/SSL_Initializer.h
new file mode 100644
index 00000000000..1d15a73159c
--- /dev/null
+++ b/dep/acelite/ace/SSL/SSL_Initializer.h
@@ -0,0 +1,52 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file SSL_Initializer.h
+ *
+ * $Id: SSL_Initializer.h 93497 2011-03-07 09:43:36Z vzykov $
+ *
+ * @author Vladimir Zykov <vz@prismtech.com>
+ */
+//=============================================================================
+
+#ifndef ACE_SSL_INITIALIZER_H
+#define ACE_SSL_INITIALIZER_H
+
+#include /**/ "ace/pre.h"
+
+#include "SSL_Export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Service_Config.h"
+#include "ace/Service_Object.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+class ACE_SSL_Export ACE_SSL_Initializer
+ : public ACE_Service_Object
+{
+public:
+ /// Used to force the initialization of ACE_SSL.
+ static int static_init (void);
+
+ /// Create ACE_SSL_Context singleton.
+ virtual int init (int argc, ACE_TCHAR *argv[]);
+
+ /// Do cleanup of SSL library.
+ virtual int fini (void);
+};
+
+static int ACE_Force_ACE_SSL_Initializer = ACE_SSL_Initializer::static_init ();
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+ACE_STATIC_SVC_DECLARE (ACE_SSL_Initializer)
+ACE_FACTORY_DECLARE (ACE_SSL, ACE_SSL_Initializer)
+
+#include /**/ "ace/post.h"
+
+#endif /* ACE_SSL_INITIALIZER_H */
diff --git a/dep/acelite/ace/SString.cpp b/dep/acelite/ace/SString.cpp
index 5a087e3e0a9..db66850fda4 100644
--- a/dep/acelite/ace/SString.cpp
+++ b/dep/acelite/ace/SString.cpp
@@ -1,4 +1,4 @@
-// $Id: SString.cpp 91368 2010-08-16 13:03:34Z mhengstmengel $
+// $Id: SString.cpp 92580 2010-11-15 09:48:02Z johnnyw $
#include "ace/Malloc_T.h"
#include "ace/OS_Memory.h"
@@ -79,7 +79,7 @@ ACE_NS_WString::char_rep (void) const
}
}
-ACE_USHORT16 *
+ACE_UINT16 *
ACE_NS_WString::ushort_rep (void) const
{
ACE_TRACE ("ACE_NS_WString::ushort_rep");
@@ -87,16 +87,16 @@ ACE_NS_WString::ushort_rep (void) const
return 0;
else
{
- ACE_USHORT16 *t = 0;
+ ACE_UINT16 *t = 0;
ACE_NEW_RETURN (t,
- ACE_USHORT16[this->len_ + 1],
+ ACE_UINT16[this->len_ + 1],
0);
for (size_type 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[i] = (ACE_UINT16)this->rep_[i];
t[this->len_] = 0;
return t;
@@ -125,7 +125,7 @@ ACE_NS_WString::ACE_NS_WString (const char *s,
}
#if defined (ACE_WSTRING_HAS_USHORT_SUPPORT)
-ACE_NS_WString::ACE_NS_WString (const ACE_USHORT16 *s,
+ACE_NS_WString::ACE_NS_WString (const ACE_UINT16 *s,
size_type len,
ACE_Allocator *alloc)
: ACE_WString (alloc)
diff --git a/dep/acelite/ace/SString.h b/dep/acelite/ace/SString.h
index e7ff8ea7872..3c5f9957be7 100644
--- a/dep/acelite/ace/SString.h
+++ b/dep/acelite/ace/SString.h
@@ -4,7 +4,7 @@
/**
* @file SString.h
*
- * $Id: SString.h 91058 2010-07-12 08:20:09Z johnnyw $
+ * $Id: SString.h 92580 2010-11-15 09:48:02Z johnnyw $
*
* @author Douglas C. Schmidt (schmidt@cs.wustl.edu)
*/
@@ -75,7 +75,7 @@ public:
#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,
+ ACE_NS_WString (const ACE_UINT16 *s,
size_type len,
ACE_Allocator *alloc = 0);
#endif /* ACE_WSTRING_HAS_USHORT_SUPPORT */
@@ -102,7 +102,7 @@ public:
/// 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_UINT16 *ushort_rep (void) const;
};
ACE_Export
diff --git a/dep/acelite/ace/Sample_History.cpp b/dep/acelite/ace/Sample_History.cpp
index 78a7558703f..5c9e24417d3 100644
--- a/dep/acelite/ace/Sample_History.cpp
+++ b/dep/acelite/ace/Sample_History.cpp
@@ -1,4 +1,4 @@
-// $Id: Sample_History.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: Sample_History.cpp 95747 2012-05-13 17:14:12Z johnnyw $
#include "ace/Sample_History.h"
@@ -10,9 +10,6 @@
#include "ace/Log_Msg.h"
#include "ace/OS_Memory.h"
-
-
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_Sample_History::ACE_Sample_History (size_t max_samples)
@@ -27,21 +24,10 @@ 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
+ACE_Sample_History::dump_samples (
+ const ACE_TCHAR *msg,
+ ACE_Sample_History::scale_factor_type scale_factor) const
{
#ifndef ACE_NLOGGING
for (size_t i = 0; i != this->sample_count_; ++i)
diff --git a/dep/acelite/ace/Sample_History.h b/dep/acelite/ace/Sample_History.h
index 730deea4fab..c31c5692360 100644
--- a/dep/acelite/ace/Sample_History.h
+++ b/dep/acelite/ace/Sample_History.h
@@ -4,7 +4,7 @@
/**
* @file Sample_History.h
*
- * $Id: Sample_History.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: Sample_History.h 95747 2012-05-13 17:14:12Z johnnyw $
*
* @author Carlos O'Ryan <coryan@uci.edu>
*/
@@ -34,6 +34,12 @@ class ACE_Basic_Stats;
class ACE_Export ACE_Sample_History
{
public:
+#if !defined (ACE_WIN32)
+ typedef ACE_UINT32 scale_factor_type;
+#else
+ typedef ACE_UINT64 scale_factor_type;
+#endif
+
/// Constructor
/**
* The number of samples is pre-allocated, and cannot changes once
@@ -62,7 +68,7 @@ public:
* message.
*/
void dump_samples (const ACE_TCHAR *msg,
- ACE_UINT32 scale_factor) const;
+ scale_factor_type scale_factor) const;
/// Collect the summary for all the samples
void collect_basic_stats (ACE_Basic_Stats &) const;
diff --git a/dep/acelite/ace/Sample_History.inl b/dep/acelite/ace/Sample_History.inl
index 9945bfe14ec..8d7d7c9b5f7 100644
--- a/dep/acelite/ace/Sample_History.inl
+++ b/dep/acelite/ace/Sample_History.inl
@@ -1,6 +1,5 @@
// -*- C++ -*-
-//
-// $Id: Sample_History.inl 80826 2008-03-04 14:51:23Z wotte $
+// $Id: Sample_History.inl 95747 2012-05-13 17:14:12Z johnnyw $
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -23,4 +22,16 @@ ACE_Sample_History::get_sample (size_t i) const
return this->samples_[i];
}
+ACE_INLINE size_t
+ACE_Sample_History::max_samples (void) const
+{
+ return this->max_samples_;
+}
+
+ACE_INLINE size_t
+ACE_Sample_History::sample_count (void) const
+{
+ return this->sample_count_;
+}
+
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/Sched_Params.cpp b/dep/acelite/ace/Sched_Params.cpp
index 5002f52a797..8aee95bfc58 100644
--- a/dep/acelite/ace/Sched_Params.cpp
+++ b/dep/acelite/ace/Sched_Params.cpp
@@ -3,7 +3,7 @@
/**
* @file Sched_Params.cpp
*
- * $Id: Sched_Params.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+ * $Id: Sched_Params.cpp 95761 2012-05-15 18:23:04Z johnnyw $
*
* @author David Levine
*/
@@ -84,9 +84,7 @@ ACE_Sched_Params::priority_min (const Policy policy,
}
}
#elif defined(ACE_HAS_PTHREADS) && \
- (!defined(ACE_LACKS_SETSCHED) || defined (ACE_TANDEM_T1248_PTHREADS) || \
- defined (ACE_HAS_PTHREAD_SCHEDPARAM))
-
+ (!defined(ACE_LACKS_SETSCHED))
switch (scope)
{
case ACE_SCOPE_THREAD:
@@ -192,7 +190,7 @@ ACE_Sched_Params::priority_max (const Policy policy,
}
}
#elif defined(ACE_HAS_PTHREADS) && \
- (!defined(ACE_LACKS_SETSCHED) || defined (ACE_TANDEM_T1248_PTHREADS) || \
+ (!defined(ACE_LACKS_SETSCHED) || \
defined (ACE_HAS_PTHREAD_SCHEDPARAM))
switch (scope)
@@ -274,7 +272,7 @@ ACE_Sched_Params::next_priority (const Policy policy,
return priority; // unknown priority: should never get here
}
#elif defined(ACE_HAS_THREADS) && \
- (!defined(ACE_LACKS_SETSCHED) || defined (ACE_TANDEM_T1248_PTHREADS) || \
+ (!defined(ACE_LACKS_SETSCHED) || \
defined (ACE_HAS_PTHREAD_SCHEDPARAM))
// including STHREADS, and PTHREADS
int const max = priority_max (policy, scope);
@@ -318,7 +316,7 @@ ACE_Sched_Params::previous_priority (const Policy policy,
return priority; // unknown priority: should never get here
}
#elif defined(ACE_HAS_THREADS) && \
- (!defined(ACE_LACKS_SETSCHED) || defined (ACE_TANDEM_T1248_PTHREADS) || \
+ (!defined(ACE_LACKS_SETSCHED) || \
defined (ACE_HAS_PTHREAD_SCHEDPARAM))
// including STHREADS and PTHREADS
int const min = priority_min (policy, scope);
diff --git a/dep/acelite/ace/Select_Reactor_Base.cpp b/dep/acelite/ace/Select_Reactor_Base.cpp
index 2165d6e16c2..d160c5c122e 100644
--- a/dep/acelite/ace/Select_Reactor_Base.cpp
+++ b/dep/acelite/ace/Select_Reactor_Base.cpp
@@ -1,4 +1,4 @@
-// $Id: Select_Reactor_Base.cpp 91368 2010-08-16 13:03:34Z mhengstmengel $
+// $Id: Select_Reactor_Base.cpp 95574 2012-02-29 07:26:08Z johnnyw $
#include "ace/Select_Reactor_Base.h"
#include "ace/Reactor.h"
@@ -530,7 +530,8 @@ ACE_Select_Reactor_Handler_Repository::dump (void) const
ACE_ALLOC_HOOK_DEFINE(ACE_Select_Reactor_Handler_Repository_Iterator)
ACE_Select_Reactor_Notify::ACE_Select_Reactor_Notify (void)
- : max_notify_iterations_ (-1)
+ : select_reactor_ (0)
+ , max_notify_iterations_ (-1)
{
}
@@ -599,8 +600,7 @@ ACE_Select_Reactor_Notify::open (ACE_Reactor_Impl *r,
if (disable_notify_pipe == 0)
{
- this->select_reactor_ =
- dynamic_cast<ACE_Select_Reactor_Impl *> (r);
+ this->select_reactor_ = dynamic_cast<ACE_Select_Reactor_Impl *> (r);
if (select_reactor_ == 0)
{
diff --git a/dep/acelite/ace/Select_Reactor_Base.h b/dep/acelite/ace/Select_Reactor_Base.h
index 7902791624b..851fea0d662 100644
--- a/dep/acelite/ace/Select_Reactor_Base.h
+++ b/dep/acelite/ace/Select_Reactor_Base.h
@@ -4,7 +4,7 @@
/**
* @file Select_Reactor_Base.h
*
- * $Id: Select_Reactor_Base.h 87252 2009-10-28 20:03:48Z cleeland $
+ * $Id: Select_Reactor_Base.h 93792 2011-04-07 11:48:50Z mcorino $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
*/
@@ -92,7 +92,6 @@ public:
class ACE_Event_Tuple
{
public:
-
/// Default constructor.
ACE_Event_Tuple (void);
@@ -106,7 +105,6 @@ public:
bool operator!= (const ACE_Event_Tuple &rhs) const;
public:
-
/// Handle.
ACE_HANDLE handle_;
diff --git a/dep/acelite/ace/Select_Reactor_T.cpp b/dep/acelite/ace/Select_Reactor_T.cpp
index b70b2d427c3..fde3ea3fcd1 100644
--- a/dep/acelite/ace/Select_Reactor_T.cpp
+++ b/dep/acelite/ace/Select_Reactor_T.cpp
@@ -1,4 +1,4 @@
-// $Id: Select_Reactor_T.cpp 92201 2010-10-11 19:07:59Z johnnyw $
+// $Id: Select_Reactor_T.cpp 95533 2012-02-14 22:59:17Z wotte $
#ifndef ACE_SELECT_REACTOR_T_CPP
#define ACE_SELECT_REACTOR_T_CPP
@@ -461,7 +461,14 @@ template <class ACE_SELECT_REACTOR_TOKEN> int
ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::timer_queue
(ACE_Timer_Queue *tq)
{
- delete this->timer_queue_;
+ if (this->delete_timer_queue_)
+ {
+ delete this->timer_queue_;
+ }
+ else if (this->timer_queue_)
+ {
+ this->timer_queue_->close ();
+ }
this->timer_queue_ = tq;
this->delete_timer_queue_ = false;
return 0;
@@ -495,6 +502,9 @@ ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::ACE_Select_Reactor_T
// determine the size at run-time by checking the process file
// descriptor limit on platforms that support this feature.
+ // reset the errno so that subsequent checks are valid
+ errno = 0;
+
// 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.
@@ -573,6 +583,11 @@ ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::close (void)
this->timer_queue_ = 0;
this->delete_timer_queue_ = false;
}
+ else if (this->timer_queue_)
+ {
+ this->timer_queue_->close ();
+ this->timer_queue_ = 0;
+ }
if (this->notify_handler_ != 0)
this->notify_handler_->close ();
@@ -764,14 +779,14 @@ 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 defined (linux) && defined (ERESTARTNOHAND)
+#if defined (ACE_LINUX) && defined (ERESTARTNOHAND)
int const error = errno; // Avoid multiple TSS accesses.
if (error == EINTR || error == ERESTARTNOHAND)
return this->restart_;
#else
if (errno == EINTR)
return this->restart_;
-#endif /* linux && ERESTARTNOHAND */
+#endif /* ACE_LINUX && ERESTARTNOHAND */
#if defined (__MVS__) || defined (ACE_WIN32) || defined (ACE_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
@@ -1402,15 +1417,25 @@ ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::handle_events
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;
+ if (ACE_OS::thr_equal (ACE_Thread::self (), this->owner_) == 0)
+ {
+ errno = EACCES;
+ return -1;
+ }
+ if (this->deactivated_)
+ {
+ errno = ESHUTDOWN;
+ return -1;
+ }
// Update the countdown to reflect time waiting for the mutex.
countdown.update ();
#else
if (this->deactivated_)
- return -1;
+ {
+ errno = ESHUTDOWN;
+ return -1;
+ }
#endif /* ACE_MT_SAFE */
return this->handle_events_i (max_wait_time);
diff --git a/dep/acelite/ace/Select_Reactor_T.h b/dep/acelite/ace/Select_Reactor_T.h
index 9e7411ef985..a9737c1e872 100644
--- a/dep/acelite/ace/Select_Reactor_T.h
+++ b/dep/acelite/ace/Select_Reactor_T.h
@@ -4,7 +4,7 @@
/**
* @file Select_Reactor_T.h
*
- * $Id: Select_Reactor_T.h 86495 2009-08-13 19:35:25Z johnnyw $
+ * $Id: Select_Reactor_T.h 93359 2011-02-11 11:33:12Z mcorino $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
*/
@@ -60,7 +60,7 @@ public:
/// If @a 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 @a mask_signals is
+ /// but will elide the notify() feature. If @a mask_signals is
/// true the reactor is "signal-safe" when dispatching handlers to
/// signal events, whereas if @a mask_signals is false the reactor will
/// be more efficient, but not signal-safe (which may be perfectly
@@ -106,7 +106,7 @@ public:
* 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
+ * @note On Unix platforms, the @a 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
@@ -148,6 +148,7 @@ public:
*/
virtual int work_pending (const ACE_Time_Value &max_wait_time = ACE_Time_Value::zero);
+ //@{
/**
* This event loop driver that blocks for @a max_wait_time before
* returning. It will return earlier if timer events, I/O events,
@@ -165,12 +166,14 @@ public:
* that were dispatched, 0 if the @a max_wait_time elapsed without
* dispatching any handlers, or -1 if something goes wrong.
*
- * Current <alertable_handle_events> is identical to
- * <handle_events>.
+ * 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
* @a max_wait_time value is a reference and can therefore never be
@@ -181,6 +184,7 @@ public:
*/
virtual int handle_events (ACE_Time_Value &max_wait_time);
virtual int alertable_handle_events (ACE_Time_Value &max_wait_time);
+ //@}
// = Event handling control.
@@ -599,7 +603,7 @@ protected:
virtual int any_ready (ACE_Select_Reactor_Handle_Set &handle_set);
/// Implement the <any_ready> method, assuming that the Sig_Guard is
- /// beign held
+ /// being held
virtual int any_ready_i (ACE_Select_Reactor_Handle_Set &handle_set);
/// Take corrective action when errors occur.
diff --git a/dep/acelite/ace/Select_Reactor_T.inl b/dep/acelite/ace/Select_Reactor_T.inl
index 30c8cbc6b7d..54542427f79 100644
--- a/dep/acelite/ace/Select_Reactor_T.inl
+++ b/dep/acelite/ace/Select_Reactor_T.inl
@@ -1,6 +1,6 @@
// -*- C++ -*-
//
-// $Id: Select_Reactor_T.inl 82723 2008-09-16 09:35:44Z johnnyw $
+// $Id: Select_Reactor_T.inl 96017 2012-08-08 22:18:09Z mitza $
#include "ace/Reactor.h"
#include "ace/Signal.h"
@@ -221,7 +221,7 @@ ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::deactivate (int do_stop)
ACE_MT (ACE_GUARD (ACE_SELECT_REACTOR_TOKEN,
ace_mon,
this->token_));
- this->deactivated_ = do_stop;
+ this->deactivated_ = static_cast<sig_atomic_t> (do_stop);
}
this->wakeup_all_threads ();
diff --git a/dep/acelite/ace/Service_Config.cpp b/dep/acelite/ace/Service_Config.cpp
index d63f46c1b86..9149e98e43d 100644
--- a/dep/acelite/ace/Service_Config.cpp
+++ b/dep/acelite/ace/Service_Config.cpp
@@ -1,4 +1,4 @@
-// $Id: Service_Config.cpp 91693 2010-09-09 12:57:54Z johnnyw $
+// $Id: Service_Config.cpp 96017 2012-08-08 22:18:09Z mitza $
#include "ace/Service_Config.h"
@@ -601,7 +601,8 @@ void
ACE_Service_Config::reconfig_occurred (int config_occurred)
{
ACE_TRACE ("ACE_Service_Config::reconfig_occurred");
- ACE_Service_Config::reconfig_occurred_ = config_occurred;
+ ACE_Service_Config::reconfig_occurred_ =
+ static_cast<sig_atomic_t> (config_occurred);
}
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/Service_Config.h b/dep/acelite/ace/Service_Config.h
index 5269d8f367e..56be51fde10 100644
--- a/dep/acelite/ace/Service_Config.h
+++ b/dep/acelite/ace/Service_Config.h
@@ -4,7 +4,7 @@
/**
* @file Service_Config.h
*
- * $Id: Service_Config.h 89501 2010-03-17 08:59:56Z vzykov $
+ * $Id: Service_Config.h 94385 2011-08-10 12:19:36Z johnnyw $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
*/
@@ -159,8 +159,8 @@ template<>
class ACE_Export ACE_Threading_Helper<ACE_Thread_Mutex>
{
public:
- ACE_Threading_Helper ();
- ~ACE_Threading_Helper ();
+ ACE_Threading_Helper (void);
+ ~ACE_Threading_Helper (void);
void set (void*);
void* get (void);
@@ -178,8 +178,8 @@ template<>
class ACE_Export ACE_Threading_Helper<ACE_Null_Mutex>
{
public:
- ACE_Threading_Helper ();
- ~ACE_Threading_Helper ();
+ ACE_Threading_Helper (void);
+ ~ACE_Threading_Helper (void);
void set (void*);
void* get (void);
diff --git a/dep/acelite/ace/Service_Gestalt.cpp b/dep/acelite/ace/Service_Gestalt.cpp
index 29e2804b4b6..f177260ca4b 100644
--- a/dep/acelite/ace/Service_Gestalt.cpp
+++ b/dep/acelite/ace/Service_Gestalt.cpp
@@ -1,4 +1,4 @@
-// $Id: Service_Gestalt.cpp 92357 2010-10-25 14:11:44Z mesnier_p $
+// $Id: Service_Gestalt.cpp 95610 2012-03-13 11:26:31Z johnnyw $
#include "ace/Svc_Conf.h"
#include "ace/Get_Opt.h"
diff --git a/dep/acelite/ace/Service_Object.cpp b/dep/acelite/ace/Service_Object.cpp
index 912fa39532c..4a9ace4029e 100644
--- a/dep/acelite/ace/Service_Object.cpp
+++ b/dep/acelite/ace/Service_Object.cpp
@@ -1,4 +1,4 @@
-// $Id: Service_Object.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: Service_Object.cpp 93539 2011-03-13 09:40:44Z vzykov $
#include "ace/config-all.h"
@@ -36,9 +36,9 @@ ACE_Service_Type::dump (void) const
// the generated C++ code.
ACE_OS::fprintf(stderr,
"// [ST] dump, this=%p, name=%s, type=%p, so=%p, active=%d\n",
- this,
- this->name_,
- this->type_,
+ static_cast<void const *> (this),
+ ACE_TEXT_ALWAYS_CHAR (this->name_),
+ static_cast<void const *> (this->type_),
(this->type_ != 0) ? this->type_->object () : 0,
this->active_);
diff --git a/dep/acelite/ace/Service_Types.cpp b/dep/acelite/ace/Service_Types.cpp
index b3f7d098054..b743536b304 100644
--- a/dep/acelite/ace/Service_Types.cpp
+++ b/dep/acelite/ace/Service_Types.cpp
@@ -1,4 +1,4 @@
-// $Id: Service_Types.cpp 91813 2010-09-17 07:52:52Z johnnyw $
+// $Id: Service_Types.cpp 95676 2012-04-03 16:32:27Z schmidt $
#include "ace/Service_Types.h"
@@ -165,6 +165,7 @@ ACE_Module_Type::ACE_Module_Type (void *m,
u_int f,
int stype)
: ACE_Service_Type_Impl (m, m_name, f, 0, stype)
+ , link_ (0)
{
ACE_TRACE ("ACE_Module_Type::ACE_Module_Type");
}
@@ -181,12 +182,12 @@ ACE_Module_Type::init (int argc, ACE_TCHAR *argv[]) const
void *obj = this->object ();
MT_Module *mod = (MT_Module *) obj;
//
- // Change the Module's name to what's in the svc.conf file.
- // We must do this so the names match up so everything shuts
- // down properly during the call to ACE_Stream_Type::fini
- // which calls MT_Stream::remove([name]) for all the modules.
- // If the calls to remove fail, we end up with a double delete
- // during shutdown. Bugzilla #3847
+ // Change the Module's name to what's in the svc.conf file. We must
+ // do this so the names match up so everything shuts down properly
+ // during the call to ACE_Stream_Type::fini which calls
+ // MT_Stream::remove([name]) for all the modules. If the calls to
+ // remove fail, we end up with a double delete during
+ // shutdown. Bugzilla #3847
//
mod->name (this->name_);
MT_Task *reader = mod->reader ();
diff --git a/dep/acelite/ace/Signal.h b/dep/acelite/ace/Signal.h
index 736d62e5c08..5dc26ff7146 100644
--- a/dep/acelite/ace/Signal.h
+++ b/dep/acelite/ace/Signal.h
@@ -4,7 +4,7 @@
/**
* @file Signal.h
*
- * $Id: Signal.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: Signal.h 94454 2011-09-08 17:36:56Z johnnyw $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
*/
@@ -45,7 +45,6 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
class ACE_Export ACE_Sig_Set
{
public:
- // = Initialization and termination methods.
/// Initialize <sigset_> with @a sigset. If @a sigset == 0 then fill
/// the set.
ACE_Sig_Set (sigset_t *sigset);
@@ -136,18 +135,6 @@ public:
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 @c sigaction struct and registers
* the @a handler to process all @a signalss via the @c sigaction
@@ -236,7 +223,7 @@ class ACE_Export ACE_Sig_Guard
public:
// = Initialization and termination methods.
/// This is kind of conditional Guard, needed when guard should be
- /// activated only when a spcific condition met. When condition ==
+ /// activated only when a specific condition met. When condition ==
/// true (default), Guard is activated
ACE_Sig_Guard (ACE_Sig_Set *mask = 0, bool condition = true);
diff --git a/dep/acelite/ace/Sock_Connect.cpp b/dep/acelite/ace/Sock_Connect.cpp
index ce2a17d2bf5..77c5e4af93f 100644
--- a/dep/acelite/ace/Sock_Connect.cpp
+++ b/dep/acelite/ace/Sock_Connect.cpp
@@ -1,4 +1,4 @@
-// $Id: Sock_Connect.cpp 91685 2010-09-09 09:35:14Z johnnyw $
+// $Id: Sock_Connect.cpp 95628 2012-03-21 22:10:02Z shuston $
#include "ace/Sock_Connect.h"
#include "ace/INET_Addr.h"
@@ -29,33 +29,16 @@
# endif /* _AIX */
#endif /* ACE_HAS_IPV6 */
-# if defined (ACE_HAS_GETIFADDRS)
-# if defined (ACE_VXWORKS)
-# include /**/ <net/ifaddrs.h>
-# else
-# include /**/ <ifaddrs.h>
-# endif /*ACE_VXWORKS */
-# endif /* ACE_HAS_GETIFADDRS */
-
-#if defined (ACE_VXWORKS) && (ACE_VXWORKS < 0x600)
-#include /**/ <inetLib.h>
-#include /**/ <netinet/in_var.h>
-#if defined (ACE_HAS_IPV6)
-#include /**/ <ifLib.h>
-extern "C" {
- extern struct in_ifaddr* in_ifaddr;
- extern LIST_HEAD(in_ifaddrhashhead, in_ifaddr) *in_ifaddrhashtbl;
-}
-#endif /* ACE_HAS_IPV6 */
-#include "ace/OS_NS_stdio.h"
-#endif /* ACE_VXWORKS < 0x600 */
+#if defined (ACE_HAS_GETIFADDRS)
+# include "ace/os_include/os_ifaddrs.h"
+#endif /* ACE_HAS_GETIFADDRS */
-#if defined (ACE_VXWORKS) && ((ACE_VXWORKS >= 0x630) && (ACE_VXWORKS <= 0x670)) && defined (__RTP__) && defined (ACE_HAS_IPV6)
+#if defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x670) && defined (__RTP__) && defined (ACE_HAS_IPV6)
const struct in6_addr in6addr_any = IN6ADDR_ANY_INIT;
const struct in6_addr in6addr_nodelocal_allnodes = IN6ADDR_NODELOCAL_ALLNODES_INIT;
const struct in6_addr in6addr_linklocal_allnodes = IN6ADDR_LINKLOCAL_ALLNODES_INIT;
const struct in6_addr in6addr_linklocal_allrouters = IN6ADDR_LINKLOCAL_ALLROUTERS_INIT;
-#endif /* ACE_VXWORKS >= 0x630 && <= 0x670 && __RTP__ && ACE_HAS_IPV6 */
+#endif /* ACE_VXWORKS <= 0x670 && __RTP__ && ACE_HAS_IPV6 */
#if defined (ACE_HAS_WINCE)
#include /**/ <iphlpapi.h>
@@ -146,17 +129,6 @@ namespace
# define SA_FAMILY sa_family
#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) && (__IBMCPP__ < 700)
-static ACE_Auto_Array_Ptr<sockaddr> force_compiler_to_include_socket_h;
-#endif /* AIX && __IBMCPP__ >= 500 */
-
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// Bind socket to an unused port.
@@ -805,8 +777,14 @@ get_ip_interfaces_getifaddrs (size_t &count,
p_if != 0;
p_if = p_if->ifa_next)
{
- if (p_if->ifa_addr &&
- p_if->ifa_addr->sa_family == AF_INET)
+ if (p_if->ifa_addr == 0)
+ continue;
+
+ // Check to see if it's up.
+ if ((p_if->ifa_flags & IFF_UP) != IFF_UP)
+ continue;
+
+ if (p_if->ifa_addr->sa_family == AF_INET)
{
struct sockaddr_in *addr =
reinterpret_cast<sockaddr_in *> (p_if->ifa_addr);
@@ -822,8 +800,7 @@ get_ip_interfaces_getifaddrs (size_t &count,
}
}
# if defined (ACE_HAS_IPV6)
- else if (p_if->ifa_addr &&
- p_if->ifa_addr->sa_family == AF_INET6)
+ else if (p_if->ifa_addr->sa_family == AF_INET6)
{
struct sockaddr_in6 *addr =
reinterpret_cast<sockaddr_in6 *> (p_if->ifa_addr);
@@ -1094,64 +1071,7 @@ get_ip_interfaces_aix (size_t &count,
return 0;
}
-#elif defined (ACE_VXWORKS) && (ACE_VXWORKS < 0x600) && !defined (ACE_HAS_VXWORKS551_MEDUSA)
-int
-get_ip_interfaces_vxworks_lt600 (size_t &count,
- ACE_INET_Addr *&addrs)
-{
- count = 0;
- // Loop through each address structure
-
-# if defined (ACE_HAS_IPV6) && defined (TAILQ_ENTRY)
-# define ia_next ia_link.tqe_next
-# endif /* TAILQ_ENTRY */
-
- 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_TEXT ("ACE::get_ip_interface failed\n")
- ACE_TEXT ("Couldnt get the IP Address\n")),
- -1);
- }
- ++count;
- }
- }
- return 0;
-}
-#endif // ACE_WIN32 || ACE_HAS_GETIFADDRS || __hpux || _AIX || ACE_VXWORKS < 0x600
+#endif // ACE_WIN32 || ACE_HAS_GETIFADDRS || __hpux || _AIX
// return an array of all configured IP interfaces on this host, count
@@ -1174,8 +1094,6 @@ ACE::get_ip_interfaces (size_t &count, ACE_INET_Addr *&addrs)
return get_ip_interfaces_hpux (count, addrs);
#elif defined (_AIX)
return get_ip_interfaces_aix (count, addrs);
-#elif defined (ACE_VXWORKS) && (ACE_VXWORKS < 0x600) && !defined (ACE_HAS_VXWORKS551_MEDUSA)
- return get_ip_interfaces_vxworks_lt600 (count, addrs);
#elif (defined (__unix) || defined (__unix__) || defined (ACE_OPENVMS) || (defined (ACE_VXWORKS) && !defined (ACE_HAS_GETIFADDRS)) || defined (ACE_HAS_RTEMS)) && !defined (ACE_LACKS_NETWORKING)
// COMMON (SVR4 and BSD) UNIX CODE
diff --git a/dep/acelite/ace/Stack_Trace.cpp b/dep/acelite/ace/Stack_Trace.cpp
index 6c04e192886..353be81067b 100644
--- a/dep/acelite/ace/Stack_Trace.cpp
+++ b/dep/acelite/ace/Stack_Trace.cpp
@@ -2,7 +2,7 @@
/**
* @file Stack_Trace.cpp
*
- * $Id: Stack_Trace.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+ * $Id: Stack_Trace.cpp 96017 2012-08-08 22:18:09Z mitza $
*
* @brief Encapsulate string representation of stack trace.
*
@@ -197,7 +197,7 @@ ACE_Stack_Trace::generate_trace (ssize_t starting_frame_offset,
// See memEdrLib.c in VxWorks RTP sources for an example of stack tracing.
-static STATUS ace_vx_rtp_pc_validate (INSTR *pc, TRC_OS_CTX *pOsCtx)
+static STATUS ace_vx_rtp_pc_validate (INSTR *pc, TRC_OS_CTX *)
{
return ALIGNED (pc, sizeof (INSTR)) ? OK : ERROR;
}
@@ -222,7 +222,12 @@ ACE_Stack_Trace::generate_trace (ssize_t starting_frame_offset,
TRC_OS_CTX osCtx;
osCtx.stackBase = desc.td_pStackBase;
osCtx.stackEnd = desc.td_pStackEnd;
+#if (ACE_VXWORKS < 0x690)
osCtx.pcValidateRtn = reinterpret_cast<FUNCPTR> (ace_vx_rtp_pc_validate);
+#else
+ // reinterpret_cast causes an error
+ osCtx.pcValidateRtn = ace_vx_rtp_pc_validate;
+#endif
char *fp = _WRS_FRAMEP_FROM_JMP_BUF (regs);
INSTR *pc = _WRS_RET_PC_FROM_JMP_BUF (regs);
@@ -250,8 +255,19 @@ ACE_Stack_Trace::generate_trace (ssize_t starting_frame_offset,
const char *fnName = "(no symbols)";
static const int N_ARGS = 12;
- int buf[N_ARGS];
- int *pArgs = 0;
+#if (ACE_VXWORKS < 0x690)
+# define ACE_VX_USR_ARG_T int
+# define ACE_VX_ARG_FORMAT "%x"
+#else
+# define ACE_VX_USR_ARG_T _Vx_usr_arg_t
+# ifdef _WRS_CONFIG_LP64
+# define ACE_VX_ARG_FORMAT "%lx"
+# else
+# define ACE_VX_ARG_FORMAT "%x"
+# endif
+#endif
+ ACE_VX_USR_ARG_T buf[N_ARGS];
+ ACE_VX_USR_ARG_T *pArgs = 0;
int numArgs =
trcLibFuncs.lvlArgsGet (prevPc, prevFn, prevFp,
buf, N_ARGS, &pArgs);
@@ -262,7 +278,7 @@ ACE_Stack_Trace::generate_trace (ssize_t starting_frame_offset,
size_t len = ACE_OS::strlen (this->buf_);
size_t space = SYMBUFSIZ - len - 1;
char *cursor = this->buf_ + len;
- size_t written = ACE_OS::snprintf (cursor, space, "%x %s",
+ size_t written = ACE_OS::snprintf (cursor, space, "%p %s",
prevFn, fnName);
cursor += written;
space -= written;
@@ -272,7 +288,9 @@ ACE_Stack_Trace::generate_trace (ssize_t starting_frame_offset,
{
if (arg == 0) *cursor++ = '(', --space;
written = ACE_OS::snprintf (cursor, space,
- (arg < numArgs - 1) ? "%x, " : "%x",
+ (arg < numArgs - 1) ?
+ ACE_VX_ARG_FORMAT ", " :
+ ACE_VX_ARG_FORMAT,
pArgs[arg]);
cursor += written;
space -= written;
diff --git a/dep/acelite/ace/Stats.cpp b/dep/acelite/ace/Stats.cpp
index 856d0e04db5..04bba5e86b1 100644
--- a/dep/acelite/ace/Stats.cpp
+++ b/dep/acelite/ace/Stats.cpp
@@ -1,4 +1,4 @@
-// $Id: Stats.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: Stats.cpp 95761 2012-05-15 18:23:04Z johnnyw $
#include "ace/Stats.h"
@@ -68,15 +68,8 @@ ACE_Stats::mean (ACE_Stats_Value &m,
{
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_);
diff --git a/dep/acelite/ace/Strategies.h b/dep/acelite/ace/Strategies.h
deleted file mode 100644
index 484ffa9a510..00000000000
--- a/dep/acelite/ace/Strategies.h
+++ /dev/null
@@ -1,33 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file Strategies.h
- *
- * $Id: Strategies.h 80826 2008-03-04 14:51:23Z wotte $
- *
- * @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/dep/acelite/ace/Strategies_T.cpp b/dep/acelite/ace/Strategies_T.cpp
index fbbc1a5bc93..28d786489ad 100644
--- a/dep/acelite/ace/Strategies_T.cpp
+++ b/dep/acelite/ace/Strategies_T.cpp
@@ -1,4 +1,4 @@
-// $Id: Strategies_T.cpp 89510 2010-03-17 12:21:14Z vzykov $
+// $Id: Strategies_T.cpp 95630 2012-03-22 13:04:47Z johnnyw $
#ifndef ACE_STRATEGIES_T_CPP
#define ACE_STRATEGIES_T_CPP
@@ -1011,12 +1011,15 @@ ACE_Cached_Connect_Strategy<SVC_HANDLER, ACE_PEER_CONNECTOR_2, MUTEX>::connect_s
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);
+ if (entry)
+ {
+ // 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 ();
+ // And increment the refcount
+ entry->ext_id_.increment ();
+ }
return 0;
}
diff --git a/dep/acelite/ace/Stream.cpp b/dep/acelite/ace/Stream.cpp
index 4d7a893a2fe..6f30f863661 100644
--- a/dep/acelite/ace/Stream.cpp
+++ b/dep/acelite/ace/Stream.cpp
@@ -1,5 +1,5 @@
// Stream.cpp
-// $Id: Stream.cpp 90072 2010-05-04 21:34:39Z cbeaulac $
+// $Id: Stream.cpp 96070 2012-08-17 09:07:16Z mcorino $
#ifndef ACE_STREAM_CPP
#define ACE_STREAM_CPP
@@ -25,14 +25,14 @@ 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
+template <ACE_SYNCH_DECL, class TIME_POLICY> void
+ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::dump (void) const
{
#if defined (ACE_HAS_DUMP)
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::dump");
+ ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::dump");
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("-------- module links --------\n")));
- for (ACE_Module<ACE_SYNCH_USE> *mp = this->stream_head_;
+ for (ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *mp = this->stream_head_;
;
mp = mp->next ())
{
@@ -43,7 +43,7 @@ ACE_Stream<ACE_SYNCH_USE>::dump (void) const
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("-------- writer links --------\n")));
- ACE_Task<ACE_SYNCH_USE> *tp;
+ ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *tp;
for (tp = this->stream_head_->writer ();
;
@@ -72,10 +72,10 @@ ACE_Stream<ACE_SYNCH_USE>::dump (void) const
#endif /* ACE_HAS_DUMP */
}
-template <ACE_SYNCH_DECL> int
-ACE_Stream<ACE_SYNCH_USE>::push (ACE_Module<ACE_SYNCH_USE> *new_top)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::push (ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *new_top)
{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::push");
+ ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::push");
if (this->push_module (new_top,
this->stream_head_->next (),
this->stream_head_) == -1)
@@ -84,27 +84,27 @@ ACE_Stream<ACE_SYNCH_USE>::push (ACE_Module<ACE_SYNCH_USE> *new_top)
return 0;
}
-template <ACE_SYNCH_DECL> int
-ACE_Stream<ACE_SYNCH_USE>::put (ACE_Message_Block *mb, ACE_Time_Value *tv)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::put (ACE_Message_Block *mb, ACE_Time_Value *tv)
{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::put");
+ ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::get (ACE_Message_Block *&mb, ACE_Time_Value *tv)
{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::get");
+ ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::top (ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *&m)
{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::top");
+ ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::top");
if (this->stream_head_->next () == this->stream_tail_)
return -1;
else
@@ -114,18 +114,18 @@ ACE_Stream<ACE_SYNCH_USE>::top (ACE_Module<ACE_SYNCH_USE> *&m)
}
}
-template <ACE_SYNCH_DECL> int
-ACE_Stream<ACE_SYNCH_USE>::insert (const ACE_TCHAR *prev_name,
- ACE_Module<ACE_SYNCH_USE> *mod)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::insert (const ACE_TCHAR *prev_name,
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *mod)
{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::insert");
+ ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::insert");
- for (ACE_Module<ACE_SYNCH_USE> *prev_mod = this->stream_head_;
+ for (ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *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 ();
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *next_mod = prev_mod->next ();
// We can't insert a module below <stream_tail_>.
if (next_mod == 0)
@@ -146,20 +146,20 @@ ACE_Stream<ACE_SYNCH_USE>::insert (const ACE_TCHAR *prev_name,
return -1;
}
-template <ACE_SYNCH_DECL> int
-ACE_Stream<ACE_SYNCH_USE>::replace (const ACE_TCHAR *replace_name,
- ACE_Module<ACE_SYNCH_USE> *mod,
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::replace (const ACE_TCHAR *replace_name,
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *mod,
int flags)
{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::replace");
- ACE_Module<ACE_SYNCH_USE> *prev_mod = 0;
+ ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::replace");
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *prev_mod = 0;
- for (ACE_Module<ACE_SYNCH_USE> *rep_mod = this->stream_head_;
+ for (ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *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 ();
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *next_mod = rep_mod->next ();
if (next_mod)
mod->link (next_mod);
@@ -184,7 +184,7 @@ ACE_Stream<ACE_SYNCH_USE>::replace (const ACE_TCHAR *replace_name,
if (mod->writer ()->open (mod->arg ()) == -1)
return -1;
- if (flags != ACE_Module<ACE_SYNCH_USE>::M_DELETE_NONE)
+ if (flags != ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::M_DELETE_NONE)
{
rep_mod->close (flags);
delete rep_mod;
@@ -201,17 +201,17 @@ ACE_Stream<ACE_SYNCH_USE>::replace (const ACE_TCHAR *replace_name,
// 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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::pop (int flags)
{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::pop");
+ ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::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 ();
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *top_mod = this->stream_head_->next ();
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *new_top = top_mod->next ();
this->stream_head_->next (new_top);
@@ -220,7 +220,7 @@ ACE_Stream<ACE_SYNCH_USE>::pop (int flags)
top_mod->close (flags);
// Don't delete the Module unless the flags request this.
- if (flags != ACE_Module<ACE_SYNCH_USE>::M_DELETE_NONE)
+ if (flags != ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::M_DELETE_NONE)
delete top_mod;
this->stream_head_->writer ()->next (new_top->writer ());
@@ -232,14 +232,14 @@ ACE_Stream<ACE_SYNCH_USE>::pop (int flags)
// 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,
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::remove (const ACE_TCHAR *name,
int flags)
{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::remove");
- ACE_Module<ACE_SYNCH_USE> *prev = 0;
+ ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::remove");
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *prev = 0;
- for (ACE_Module<ACE_SYNCH_USE> *mod = this->stream_head_;
+ for (ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *mod = this->stream_head_;
mod != 0;
mod = mod->next ())
{
@@ -247,7 +247,7 @@ ACE_Stream<ACE_SYNCH_USE>::remove (const ACE_TCHAR *name,
if (ACE::debug ())
{
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("ACE_Stream::remove comparing existing module :%s: with :%s:\n"),
+ ACE_TEXT ("ACE_Stream::remove - comparing existing module :%s: with :%s:\n"),
mod->name (),
name));
}
@@ -260,11 +260,13 @@ ACE_Stream<ACE_SYNCH_USE>::remove (const ACE_TCHAR *name,
else
prev->link (mod->next ());
+ // Close down the module.
+ mod->close (flags);
+
// Don't delete the Module unless the flags request this.
- if (flags != ACE_Module<ACE_SYNCH_USE>::M_DELETE_NONE)
+ if (flags != ACE_Module<ACE_SYNCH_USE, TIME_POLICY>::M_DELETE_NONE)
{
- // Close down the module and release the memory.
- mod->close (flags);
+ // Release the memory.
delete mod;
}
@@ -278,11 +280,11 @@ ACE_Stream<ACE_SYNCH_USE>::remove (const ACE_TCHAR *name,
return -1;
}
-template <ACE_SYNCH_DECL> ACE_Module<ACE_SYNCH_USE> *
-ACE_Stream<ACE_SYNCH_USE>::find (const ACE_TCHAR *name)
+template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *
+ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::find (const ACE_TCHAR *name)
{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::find");
- for (ACE_Module<ACE_SYNCH_USE> *mod = this->stream_head_;
+ ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::find");
+ for (ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *mod = this->stream_head_;
mod != 0;
mod = mod->next ())
if (ACE_OS::strcmp (mod->name (), name) == 0)
@@ -293,16 +295,16 @@ ACE_Stream<ACE_SYNCH_USE>::find (const ACE_TCHAR *name)
// 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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::push_module (ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *new_top,
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *current_top,
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *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;
+ ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::push_module");
+ ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *nt_reader = new_top->reader ();
+ ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *nt_writer = new_top->writer ();
+ ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *ct_reader = 0;
+ ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *ct_writer = 0;
if (current_top)
{
@@ -331,47 +333,45 @@ ACE_Stream<ACE_SYNCH_USE>::push_module (ACE_Module<ACE_SYNCH_USE> *new_top,
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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::open (void *a,
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *head,
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *tail)
{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::open");
+ ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::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;
+ ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *h1 = 0, *h2 = 0;
+ ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *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_TEXT ("ACE_Stream_Head"),
- h1, h2,
- a,
- M_DELETE),
- -1);
+ typedef ACE_Stream_Head<ACE_SYNCH_USE, TIME_POLICY> STREAM_HEAD_TYPE;
+ ACE_NEW_NORETURN (h1,
+ STREAM_HEAD_TYPE);
+ ACE_NEW_NORETURN (h2,
+ STREAM_HEAD_TYPE);
+ typedef ACE_Module<ACE_SYNCH_USE, TIME_POLICY> MODULE_TYPE;
+ ACE_NEW_NORETURN (head,
+ MODULE_TYPE (ACE_TEXT ("ACE_Stream_Head"),
+ h1, h2,
+ a,
+ M_DELETE));
}
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_TEXT ("ACE_Stream_Tail"),
- t1, t2,
- a,
- M_DELETE),
- -1);
+ typedef ACE_Stream_Tail<ACE_SYNCH_USE, TIME_POLICY> STREAM_TAIL_TYPE;
+ ACE_NEW_NORETURN (t1,
+ STREAM_TAIL_TYPE);
+ ACE_NEW_NORETURN (t2,
+ STREAM_TAIL_TYPE);
+ typedef ACE_Module<ACE_SYNCH_USE, TIME_POLICY> MODULE_TYPE;
+ ACE_NEW_NORETURN (tail,
+ MODULE_TYPE (ACE_TEXT ("ACE_Stream_Tail"),
+ t1, t2,
+ a,
+ M_DELETE));
}
// Make sure *all* the allocation succeeded!
@@ -401,10 +401,10 @@ ACE_Stream<ACE_SYNCH_USE>::open (void *a,
return 0;
}
-template <ACE_SYNCH_DECL> int
-ACE_Stream<ACE_SYNCH_USE>::close (int flags)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::close (int flags)
{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::close");
+ ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::close");
ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
if (this->stream_head_ != 0
@@ -441,14 +441,14 @@ ACE_Stream<ACE_SYNCH_USE>::close (int flags)
return 0;
}
-template <ACE_SYNCH_DECL> int
-ACE_Stream<ACE_SYNCH_USE>::control (ACE_IO_Cntl_Msg::ACE_IO_Cntl_Cmds cmd,
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::control (ACE_IO_Cntl_Msg::ACE_IO_Cntl_Cmds cmd,
void *a)
{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::control");
+ ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::control");
ACE_IO_Cntl_Msg ioc (cmd);
- ACE_Message_Block *db;
+ ACE_Message_Block *db = 0;
// Try to create a data block that contains the user-supplied data.
ACE_NEW_RETURN (db,
@@ -462,12 +462,11 @@ ACE_Stream<ACE_SYNCH_USE>::control (ACE_IO_Cntl_Msg::ACE_IO_Cntl_Cmds cmd,
// field.
ACE_Message_Block *cb = 0;
- ACE_NEW_RETURN (cb,
- ACE_Message_Block (sizeof ioc,
- ACE_Message_Block::MB_IOCTL,
- db,
- (char *) &ioc),
- -1);
+ ACE_NEW_NORETURN (cb,
+ ACE_Message_Block (sizeof ioc,
+ ACE_Message_Block::MB_IOCTL,
+ db,
+ (char *) &ioc));
// @@ 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).
@@ -501,15 +500,15 @@ ACE_Stream<ACE_SYNCH_USE>::control (ACE_IO_Cntl_Msg::ACE_IO_Cntl_Cmds cmd,
// 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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::link_i (ACE_Stream<ACE_SYNCH_USE, TIME_POLICY> &us)
{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::link_i");
+ ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::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_;
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *my_tail = this->stream_head_;
if (my_tail == 0)
return -1;
@@ -518,7 +517,7 @@ ACE_Stream<ACE_SYNCH_USE>::link_i (ACE_Stream<ACE_SYNCH_USE> &us)
while (my_tail->next () != this->stream_tail_)
my_tail = my_tail->next ();
- ACE_Module<ACE_SYNCH_USE> *other_tail = us.stream_head_;
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *other_tail = us.stream_head_;
if (other_tail == 0)
return -1;
@@ -533,10 +532,10 @@ ACE_Stream<ACE_SYNCH_USE>::link_i (ACE_Stream<ACE_SYNCH_USE> &us)
return 0;
}
-template <ACE_SYNCH_DECL> int
-ACE_Stream<ACE_SYNCH_USE>::link (ACE_Stream<ACE_SYNCH_USE> &us)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::link (ACE_Stream<ACE_SYNCH_USE, TIME_POLICY> &us)
{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::link");
+ ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::link");
ACE_GUARD_RETURN (ACE_SYNCH_MUTEX_T, ace_mon, this->lock_, -1);
@@ -545,16 +544,16 @@ ACE_Stream<ACE_SYNCH_USE>::link (ACE_Stream<ACE_SYNCH_USE> &us)
// Must be called with locks held...
-template <ACE_SYNCH_DECL> int
-ACE_Stream<ACE_SYNCH_USE>::unlink_i (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::unlink_i (void)
{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::unlink_i");
+ ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::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_;
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *my_tail = this->stream_head_;
// Only relink if we still exist!
if (my_tail)
@@ -567,7 +566,7 @@ ACE_Stream<ACE_SYNCH_USE>::unlink_i (void)
my_tail->writer ()->next (this->stream_tail_->writer ());
}
- ACE_Module<ACE_SYNCH_USE> *other_tail =
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *other_tail =
this->linked_us_->stream_head_;
// Only fiddle with the other side if it in fact still remains.
@@ -590,42 +589,48 @@ ACE_Stream<ACE_SYNCH_USE>::unlink_i (void)
return -1;
}
-template <ACE_SYNCH_DECL> int
-ACE_Stream<ACE_SYNCH_USE>::unlink (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::unlink (void)
{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::unlink");
+ ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::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),
+template <ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::ACE_Stream (void * a,
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *head,
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *tail)
+ : stream_head_ (0),
+ stream_tail_ (0),
+ linked_us_ (0),
+#if defined (ACE_HAS_THREADS)
+ final_close_ (lock_, cond_attr_)
+#else
final_close_ (lock_)
+#endif
{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::ACE_Stream");
+ ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::ACE_Stream");
if (this->open (a, head, tail) == -1)
ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("ACE_Stream<ACE_SYNCH_USE>::open (%s, %s)\n"),
+ ACE_TEXT ("ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::open (%s, %s)\n"),
head->name (), tail->name ()));
}
-template <ACE_SYNCH_DECL>
-ACE_Stream<ACE_SYNCH_USE>::~ACE_Stream (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::~ACE_Stream (void)
{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::~ACE_Stream");
+ ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::~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)
+template <ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Stream_Iterator<ACE_SYNCH_USE, TIME_POLICY>::ACE_Stream_Iterator (const ACE_Stream<ACE_SYNCH_USE, TIME_POLICY> &sr)
: next_ (sr.stream_head_)
{
- ACE_TRACE ("ACE_Stream_Iterator<ACE_SYNCH_USE>::ACE_Stream_Iterator");
+ ACE_TRACE ("ACE_Stream_Iterator<ACE_SYNCH_USE, TIME_POLICY>::ACE_Stream_Iterator");
}
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/Stream.h b/dep/acelite/ace/Stream.h
index 9172485c132..a9dc401f046 100644
--- a/dep/acelite/ace/Stream.h
+++ b/dep/acelite/ace/Stream.h
@@ -4,7 +4,7 @@
/**
* @file Stream.h
*
- * $Id: Stream.h 91058 2010-07-12 08:20:09Z johnnyw $
+ * $Id: Stream.h 96070 2012-08-17 09:07:16Z mcorino $
*
* @author Douglas C. Schmidt <schmidt@uci.edu>
*/
@@ -24,11 +24,14 @@
#include "ace/IO_Cntl_Msg.h"
#include "ace/Message_Block.h"
#include "ace/Module.h"
+#if defined (ACE_HAS_THREADS)
+# include "ace/Condition_Attributes.h"
+#endif
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// Forward decls.
-template<ACE_SYNCH_DECL> class ACE_Stream_Iterator;
+template<ACE_SYNCH_DECL, class TIME_POLICY> class ACE_Stream_Iterator;
class ACE_Time_Value;
/**
@@ -45,11 +48,11 @@ class ACE_Time_Value;
* won't be overridden properly unless you call it in a subclass
* destructor.
*/
-template <ACE_SYNCH_DECL>
+template <ACE_SYNCH_DECL, class TIME_POLICY = ACE_System_Time_Policy>
class ACE_Stream
{
public:
- friend class ACE_Stream_Iterator<ACE_SYNCH_USE>;
+ friend class ACE_Stream_Iterator<ACE_SYNCH_USE, TIME_POLICY>;
enum
{
@@ -66,8 +69,8 @@ public:
* @a 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);
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *head = 0,
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *tail = 0);
/**
* Create a Stream consisting of @a head and @a tail as the Stream
@@ -76,8 +79,8 @@ public:
* @a arg is the value past in to the @c open() methods of the tasks.
*/
virtual int open (void *arg,
- ACE_Module<ACE_SYNCH_USE> *head = 0,
- ACE_Module<ACE_SYNCH_USE> *tail = 0);
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *head = 0,
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *tail = 0);
/// Close down the stream and release all the resources.
virtual int close (int flags = M_DELETE);
@@ -90,7 +93,7 @@ public:
/// Add a new module @a mod right below the Stream head. The
/// @c open() hook methods of the @c ACE_Tasks in this ACE_Module
/// are invoked to initialize the tasks.
- virtual int push (ACE_Module<ACE_SYNCH_USE> *mod);
+ virtual int push (ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *mod);
/// Remove the @a mod right below the Stream head and close it down.
// The <close()> hook methods of the <ACE_Tasks> in this ACE_Module
@@ -99,15 +102,15 @@ public:
/// Return the top module on the stream (right below the stream
/// head).
- virtual int top (ACE_Module<ACE_SYNCH_USE> *&mod);
+ virtual int top (ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *&mod);
/// Insert a new module @a mod below the named module @a prev_name.
virtual int insert (const ACE_TCHAR *prev_name,
- ACE_Module<ACE_SYNCH_USE> *mod);
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *mod);
/// Replace the named module @a replace_name with a new module @a mod.
virtual int replace (const ACE_TCHAR *replace_name,
- ACE_Module<ACE_SYNCH_USE> *mod,
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *mod,
int flags = M_DELETE);
/// Remove the named module @a mod from the stream. This bypasses the
@@ -116,16 +119,16 @@ public:
int flags = M_DELETE);
/// Return current stream head.
- virtual ACE_Module<ACE_SYNCH_USE> *head (void);
+ virtual ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *head (void);
/// Return current stream tail.
- virtual ACE_Module<ACE_SYNCH_USE> *tail (void);
+ virtual ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *tail (void);
/// Find a particular ACE_Module.
- virtual ACE_Module<ACE_SYNCH_USE> *find (const ACE_TCHAR *mod);
+ virtual ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *find (const ACE_TCHAR *mod);
/// Create a pipe between two Streams.
- virtual int link (ACE_Stream<ACE_SYNCH_USE> &);
+ virtual int link (ACE_Stream<ACE_SYNCH_USE, TIME_POLICY> &);
/// Remove a pipe formed between two Streams.
virtual int unlink (void);
@@ -168,26 +171,34 @@ private:
/// Actually perform the linking of two Streams (must be called with
/// locks held).
- int link_i (ACE_Stream<ACE_SYNCH_USE> &);
+ int link_i (ACE_Stream<ACE_SYNCH_USE, TIME_POLICY> &);
/// 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);
+ int push_module (ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *,
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> * = 0,
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> * = 0);
/// Pointer to the head of the stream.
- ACE_Module<ACE_SYNCH_USE> *stream_head_;
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *stream_head_;
/// Pointer to the tail of the stream.
- ACE_Module<ACE_SYNCH_USE> *stream_tail_;
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *stream_tail_;
/// Pointer to an adjoining linked stream.
- ACE_Stream<ACE_SYNCH_USE> *linked_us_;
+ ACE_Stream<ACE_SYNCH_USE, TIME_POLICY> *linked_us_;
// = Synchronization objects used for thread-safe streams.
/// Protect the stream against race conditions.
ACE_SYNCH_MUTEX_T lock_;
+#if defined (ACE_HAS_THREADS)
+ /// Attributes to initialize condition with.
+ /* We only need this because some crappy compilers can't
+ properly handle initializing the conditions with
+ temporary objects. */
+ ACE_Condition_Attributes_T<TIME_POLICY> cond_attr_;
+#endif
+
/// Use to tell all threads waiting on the close that we are done.
ACE_SYNCH_CONDITION_T final_close_;
};
@@ -197,18 +208,18 @@ private:
*
* @brief Iterate through an ACE_Stream.
*/
-template <ACE_SYNCH_DECL>
+template <ACE_SYNCH_DECL, class TIME_POLICY = ACE_System_Time_Policy>
class ACE_Stream_Iterator
{
public:
// = Initialization method.
- ACE_Stream_Iterator (const ACE_Stream<ACE_SYNCH_USE> &sr);
+ ACE_Stream_Iterator (const ACE_Stream<ACE_SYNCH_USE, TIME_POLICY> &sr);
// = Iteration methods.
/// Pass back the @a 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);
+ int next (const ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *&next_item);
/// Returns 1 when all items have been seen, else 0.
int done (void) const;
@@ -219,7 +230,7 @@ public:
private:
/// Next ACE_Module that we haven't yet seen.
- ACE_Module<ACE_SYNCH_USE> *next_;
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *next_;
};
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/Stream.inl b/dep/acelite/ace/Stream.inl
index 6263d431147..b1bd92a609f 100644
--- a/dep/acelite/ace/Stream.inl
+++ b/dep/acelite/ace/Stream.inl
@@ -1,49 +1,49 @@
// -*- C++ -*-
//
-// $Id: Stream.inl 80826 2008-03-04 14:51:23Z wotte $
+// $Id: Stream.inl 96061 2012-08-16 09:36:07Z mcorino $
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-template <ACE_SYNCH_DECL> ACE_INLINE ACE_Module<ACE_SYNCH_USE> *
-ACE_Stream<ACE_SYNCH_USE>::head (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *
+ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::head (void)
{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::head");
+ ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::head");
return this->stream_head_;
}
-template <ACE_SYNCH_DECL> ACE_INLINE ACE_Module<ACE_SYNCH_USE> *
-ACE_Stream<ACE_SYNCH_USE>::tail (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *
+ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::tail (void)
{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::tail");
+ ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::tail");
return this->stream_tail_;
}
-template <ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Stream<ACE_SYNCH_USE>::wait (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE int
+ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::wait (void)
{
- ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE>::wait");
+ ACE_TRACE ("ACE_Stream<ACE_SYNCH_USE, TIME_POLICY>::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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE int
+ACE_Stream_Iterator<ACE_SYNCH_USE, TIME_POLICY>::next (const ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *&mod)
{
- ACE_TRACE ("ACE_Stream_Iterator<ACE_SYNCH_USE>::next");
+ ACE_TRACE ("ACE_Stream_Iterator<ACE_SYNCH_USE, TIME_POLICY>::next");
mod = this->next_;
return this->next_ != 0;
}
-template <ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Stream_Iterator<ACE_SYNCH_USE>::done (void) const
+template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE int
+ACE_Stream_Iterator<ACE_SYNCH_USE, TIME_POLICY>::done (void) const
{
- ACE_TRACE ("ACE_Stream_Iterator<ACE_SYNCH_USE>::done");
+ ACE_TRACE ("ACE_Stream_Iterator<ACE_SYNCH_USE, TIME_POLICY>::done");
return this->next_ == 0;
}
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Iterator<ACE_SYNCH_USE>::advance (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream_Iterator<ACE_SYNCH_USE, TIME_POLICY>::advance (void)
{
- ACE_TRACE ("ACE_Stream_Iterator<ACE_SYNCH_USE>::advance");
+ ACE_TRACE ("ACE_Stream_Iterator<ACE_SYNCH_USE, TIME_POLICY>::advance");
this->next_ = this->next_->next ();
return this->next_ != 0;
}
diff --git a/dep/acelite/ace/Stream_Modules.cpp b/dep/acelite/ace/Stream_Modules.cpp
index 8d11e5da1da..a071aa19f1d 100644
--- a/dep/acelite/ace/Stream_Modules.cpp
+++ b/dep/acelite/ace/Stream_Modules.cpp
@@ -1,4 +1,4 @@
-// $Id: Stream_Modules.cpp 80826 2008-03-04 14:51:23Z wotte $
+// $Id: Stream_Modules.cpp 96061 2012-08-16 09:36:07Z mcorino $
#ifndef ACE_STREAM_MODULES_CPP
#define ACE_STREAM_MODULES_CPP
@@ -15,53 +15,53 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_Stream_Head)
-template <ACE_SYNCH_DECL>
-ACE_Stream_Head<ACE_SYNCH_USE>::ACE_Stream_Head (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Stream_Head<ACE_SYNCH_USE, TIME_POLICY>::ACE_Stream_Head (void)
{
- ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE>::ACE_Stream_Head");
+ ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE, TIME_POLICY>::ACE_Stream_Head");
}
-template <ACE_SYNCH_DECL>
-ACE_Stream_Head<ACE_SYNCH_USE>::~ACE_Stream_Head (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Stream_Head<ACE_SYNCH_USE, TIME_POLICY>::~ACE_Stream_Head (void)
{
- ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE>::~ACE_Stream_Head");
+ ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE, TIME_POLICY>::~ACE_Stream_Head");
}
-template <ACE_SYNCH_DECL> void
-ACE_Stream_Head<ACE_SYNCH_USE>::dump (void) const
+template <ACE_SYNCH_DECL, class TIME_POLICY> void
+ACE_Stream_Head<ACE_SYNCH_USE, TIME_POLICY>::dump (void) const
{
#if defined (ACE_HAS_DUMP)
- ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE>::dump");
+ ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE, TIME_POLICY>::dump");
#endif /* ACE_HAS_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 *)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream_Head<ACE_SYNCH_USE, TIME_POLICY>::open (void *)
{
- ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE>::open");
+ ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE, TIME_POLICY>::open");
return 0;
}
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Head<ACE_SYNCH_USE>::close (u_long)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream_Head<ACE_SYNCH_USE, TIME_POLICY>::close (u_long)
{
- ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE>::close");
+ ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE, TIME_POLICY>::close");
return 0;
}
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Head<ACE_SYNCH_USE>::svc (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream_Head<ACE_SYNCH_USE, TIME_POLICY>::svc (void)
{
- ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE>::svc");
+ ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE, TIME_POLICY>::svc");
return -1;
}
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Head<ACE_SYNCH_USE>::control (ACE_Message_Block *mb)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream_Head<ACE_SYNCH_USE, TIME_POLICY>::control (ACE_Message_Block *mb)
{
- ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE>::control");
+ ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE, TIME_POLICY>::control");
ACE_IO_Cntl_Msg *ioc = (ACE_IO_Cntl_Msg *) mb->rd_ptr ();
ACE_IO_Cntl_Msg::ACE_IO_Cntl_Cmds cmd;
@@ -80,10 +80,10 @@ ACE_Stream_Head<ACE_SYNCH_USE>::control (ACE_Message_Block *mb)
// 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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream_Head<ACE_SYNCH_USE, TIME_POLICY>::canonical_flush (ACE_Message_Block *mb)
{
- ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE>::canonical_flush");
+ ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE, TIME_POLICY>::canonical_flush");
char *cp = mb->rd_ptr ();
if (ACE_BIT_ENABLED (*cp, ACE_Task_Flags::ACE_FLUSHR))
@@ -99,11 +99,11 @@ ACE_Stream_Head<ACE_SYNCH_USE>::canonical_flush (ACE_Message_Block *mb)
return 0;
}
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Head<ACE_SYNCH_USE>::put (ACE_Message_Block *mb,
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream_Head<ACE_SYNCH_USE, TIME_POLICY>::put (ACE_Message_Block *mb,
ACE_Time_Value *tv)
{
- ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE>::put");
+ ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE, TIME_POLICY>::put");
int res = 0;
if (mb->msg_type () == ACE_Message_Block::MB_IOCTL
@@ -126,17 +126,17 @@ ACE_Stream_Head<ACE_SYNCH_USE>::put (ACE_Message_Block *mb,
}
}
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Head<ACE_SYNCH_USE>::init (int, ACE_TCHAR *[])
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream_Head<ACE_SYNCH_USE, TIME_POLICY>::init (int, ACE_TCHAR *[])
{
- ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE>::init");
+ ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE, TIME_POLICY>::init");
return 0;
}
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Head<ACE_SYNCH_USE>::info (ACE_TCHAR **strp, size_t length) const
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream_Head<ACE_SYNCH_USE, TIME_POLICY>::info (ACE_TCHAR **strp, size_t length) const
{
- ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE>::info");
+ ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE, TIME_POLICY>::info");
const ACE_TCHAR *name = this->name ();
if (*strp == 0 && (*strp = ACE_OS::strdup (name)) == 0)
@@ -146,60 +146,60 @@ ACE_Stream_Head<ACE_SYNCH_USE>::info (ACE_TCHAR **strp, size_t length) const
return static_cast<int> (ACE_OS::strlen (name));
}
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Head<ACE_SYNCH_USE>::fini (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream_Head<ACE_SYNCH_USE, TIME_POLICY>::fini (void)
{
- ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE>::fini");
+ ACE_TRACE ("ACE_Stream_Head<ACE_SYNCH_USE, TIME_POLICY>::fini");
return 0;
}
ACE_ALLOC_HOOK_DEFINE(ACE_Stream_Tail)
-template <ACE_SYNCH_DECL>
-ACE_Stream_Tail<ACE_SYNCH_USE>::ACE_Stream_Tail (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Stream_Tail<ACE_SYNCH_USE, TIME_POLICY>::ACE_Stream_Tail (void)
{
- ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::ACE_Stream_Tail");
+ ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE, TIME_POLICY>::ACE_Stream_Tail");
}
-template <ACE_SYNCH_DECL>
-ACE_Stream_Tail<ACE_SYNCH_USE>::~ACE_Stream_Tail (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Stream_Tail<ACE_SYNCH_USE, TIME_POLICY>::~ACE_Stream_Tail (void)
{
- ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::~ACE_Stream_Tail");
+ ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE, TIME_POLICY>::~ACE_Stream_Tail");
}
-template <ACE_SYNCH_DECL> void
-ACE_Stream_Tail<ACE_SYNCH_USE>::dump (void) const
+template <ACE_SYNCH_DECL, class TIME_POLICY> void
+ACE_Stream_Tail<ACE_SYNCH_USE, TIME_POLICY>::dump (void) const
{
#if defined (ACE_HAS_DUMP)
- ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::dump");
+ ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE, TIME_POLICY>::dump");
#endif /* ACE_HAS_DUMP */
}
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Tail<ACE_SYNCH_USE>::open (void *)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream_Tail<ACE_SYNCH_USE, TIME_POLICY>::open (void *)
{
- ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::open");
+ ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE, TIME_POLICY>::open");
return 0;
}
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Tail<ACE_SYNCH_USE>::close (u_long)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream_Tail<ACE_SYNCH_USE, TIME_POLICY>::close (u_long)
{
- ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::close");
+ ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE, TIME_POLICY>::close");
return 0;
}
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Tail<ACE_SYNCH_USE>::svc (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream_Tail<ACE_SYNCH_USE, TIME_POLICY>::svc (void)
{
- ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::svc");
+ ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE, TIME_POLICY>::svc");
return -1;
}
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Tail<ACE_SYNCH_USE>::control (ACE_Message_Block *mb)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream_Tail<ACE_SYNCH_USE, TIME_POLICY>::control (ACE_Message_Block *mb)
{
- ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::control");
+ ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE, TIME_POLICY>::control");
ACE_IO_Cntl_Msg *ioc = (ACE_IO_Cntl_Msg *) mb->rd_ptr ();
ACE_IO_Cntl_Msg::ACE_IO_Cntl_Cmds cmd;
@@ -217,16 +217,17 @@ ACE_Stream_Tail<ACE_SYNCH_USE>::control (ACE_Message_Block *mb)
}
default:
mb->msg_type (ACE_Message_Block::MB_IOCNAK);
+ break;
}
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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream_Tail<ACE_SYNCH_USE, TIME_POLICY>::canonical_flush (ACE_Message_Block *mb)
{
- ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::canonical_flush");
+ ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE, TIME_POLICY>::canonical_flush");
char *cp = mb->rd_ptr ();
if (ACE_BIT_ENABLED (*cp, ACE_Task_Flags::ACE_FLUSHW))
@@ -246,11 +247,11 @@ ACE_Stream_Tail<ACE_SYNCH_USE>::canonical_flush (ACE_Message_Block *mb)
return 0;
}
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Tail<ACE_SYNCH_USE>::put (ACE_Message_Block *mb,
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream_Tail<ACE_SYNCH_USE, TIME_POLICY>::put (ACE_Message_Block *mb,
ACE_Time_Value *)
{
- ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::put");
+ ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE, TIME_POLICY>::put");
if (this->is_writer ())
{
@@ -269,17 +270,17 @@ ACE_Stream_Tail<ACE_SYNCH_USE>::put (ACE_Message_Block *mb,
return -1;
}
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Tail<ACE_SYNCH_USE>::init (int, ACE_TCHAR *[])
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream_Tail<ACE_SYNCH_USE, TIME_POLICY>::init (int, ACE_TCHAR *[])
{
- ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::init");
+ ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE, TIME_POLICY>::init");
return 0;
}
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Tail<ACE_SYNCH_USE>::info (ACE_TCHAR **strp, size_t length) const
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream_Tail<ACE_SYNCH_USE, TIME_POLICY>::info (ACE_TCHAR **strp, size_t length) const
{
- ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::info");
+ ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE, TIME_POLICY>::info");
const ACE_TCHAR *name = this->name ();
if (*strp == 0 && (*strp = ACE_OS::strdup (name)) == 0)
@@ -289,76 +290,76 @@ ACE_Stream_Tail<ACE_SYNCH_USE>::info (ACE_TCHAR **strp, size_t length) const
return static_cast<int> (ACE_OS::strlen (name));
}
-template <ACE_SYNCH_DECL> int
-ACE_Stream_Tail<ACE_SYNCH_USE>::fini (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Stream_Tail<ACE_SYNCH_USE, TIME_POLICY>::fini (void)
{
- ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE>::fini");
+ ACE_TRACE ("ACE_Stream_Tail<ACE_SYNCH_USE, TIME_POLICY>::fini");
return 0;
}
ACE_ALLOC_HOOK_DEFINE(ACE_Thru_Task)
-template <ACE_SYNCH_DECL>
-ACE_Thru_Task<ACE_SYNCH_USE>::ACE_Thru_Task (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Thru_Task<ACE_SYNCH_USE, TIME_POLICY>::ACE_Thru_Task (void)
{
- ACE_TRACE ("ACE_Thru_Task<ACE_SYNCH_USE>::ACE_Thru_Task");
+ ACE_TRACE ("ACE_Thru_Task<ACE_SYNCH_USE, TIME_POLICY>::ACE_Thru_Task");
}
-template <ACE_SYNCH_DECL>
-ACE_Thru_Task<ACE_SYNCH_USE>::~ACE_Thru_Task (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Thru_Task<ACE_SYNCH_USE, TIME_POLICY>::~ACE_Thru_Task (void)
{
- ACE_TRACE ("ACE_Thru_Task<ACE_SYNCH_USE>::~ACE_Thru_Task");
+ ACE_TRACE ("ACE_Thru_Task<ACE_SYNCH_USE, TIME_POLICY>::~ACE_Thru_Task");
}
-template <ACE_SYNCH_DECL> void
-ACE_Thru_Task<ACE_SYNCH_USE>::dump (void) const
+template <ACE_SYNCH_DECL, class TIME_POLICY> void
+ACE_Thru_Task<ACE_SYNCH_USE, TIME_POLICY>::dump (void) const
{
#if defined (ACE_HAS_DUMP)
- ACE_TRACE ("ACE_Thru_Task<ACE_SYNCH_USE>::dump");
+ ACE_TRACE ("ACE_Thru_Task<ACE_SYNCH_USE, TIME_POLICY>::dump");
#endif /* ACE_HAS_DUMP */
}
-template <ACE_SYNCH_DECL> int
-ACE_Thru_Task<ACE_SYNCH_USE>::open (void *)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Thru_Task<ACE_SYNCH_USE, TIME_POLICY>::open (void *)
{
- ACE_TRACE ("ACE_Thru_Task<ACE_SYNCH_USE>::open");
+ ACE_TRACE ("ACE_Thru_Task<ACE_SYNCH_USE, TIME_POLICY>::open");
return 0;
}
-template <ACE_SYNCH_DECL> int
-ACE_Thru_Task<ACE_SYNCH_USE>::close (u_long)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Thru_Task<ACE_SYNCH_USE, TIME_POLICY>::close (u_long)
{
- ACE_TRACE ("ACE_Thru_Task<ACE_SYNCH_USE>::close");
+ ACE_TRACE ("ACE_Thru_Task<ACE_SYNCH_USE, TIME_POLICY>::close");
return 0;
}
-template <ACE_SYNCH_DECL> int
-ACE_Thru_Task<ACE_SYNCH_USE>::svc (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Thru_Task<ACE_SYNCH_USE, TIME_POLICY>::svc (void)
{
- ACE_TRACE ("ACE_Thru_Task<ACE_SYNCH_USE>::svc");
+ ACE_TRACE ("ACE_Thru_Task<ACE_SYNCH_USE, TIME_POLICY>::svc");
return -1;
}
-template <ACE_SYNCH_DECL> int
-ACE_Thru_Task<ACE_SYNCH_USE>::put (ACE_Message_Block *msg,
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Thru_Task<ACE_SYNCH_USE, TIME_POLICY>::put (ACE_Message_Block *msg,
ACE_Time_Value *tv)
{
- ACE_TRACE ("ACE_Thru_Task<ACE_SYNCH_USE>::put");
+ ACE_TRACE ("ACE_Thru_Task<ACE_SYNCH_USE, TIME_POLICY>::put");
return this->put_next (msg, tv);
}
-template <ACE_SYNCH_DECL> int
-ACE_Thru_Task<ACE_SYNCH_USE>::init (int, ACE_TCHAR *[])
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Thru_Task<ACE_SYNCH_USE, TIME_POLICY>::init (int, ACE_TCHAR *[])
{
- ACE_TRACE ("ACE_Thru_Task<ACE_SYNCH_USE>::init");
+ ACE_TRACE ("ACE_Thru_Task<ACE_SYNCH_USE, TIME_POLICY>::init");
return 0;
}
-template <ACE_SYNCH_DECL> int
-ACE_Thru_Task<ACE_SYNCH_USE>::info (ACE_TCHAR **strp,
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Thru_Task<ACE_SYNCH_USE, TIME_POLICY>::info (ACE_TCHAR **strp,
size_t length) const
{
- ACE_TRACE ("ACE_Thru_Task<ACE_SYNCH_USE>::info");
+ ACE_TRACE ("ACE_Thru_Task<ACE_SYNCH_USE, TIME_POLICY>::info");
const ACE_TCHAR *name = this->name ();
if (*strp == 0 && (*strp = ACE_OS::strdup (name)) == 0)
@@ -368,10 +369,10 @@ ACE_Thru_Task<ACE_SYNCH_USE>::info (ACE_TCHAR **strp,
return static_cast<int> (ACE_OS::strlen (name));
}
-template <ACE_SYNCH_DECL> int
-ACE_Thru_Task<ACE_SYNCH_USE>::fini (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> int
+ACE_Thru_Task<ACE_SYNCH_USE, TIME_POLICY>::fini (void)
{
- ACE_TRACE ("ACE_Thru_Task<ACE_SYNCH_USE>::fini");
+ ACE_TRACE ("ACE_Thru_Task<ACE_SYNCH_USE, TIME_POLICY>::fini");
return 0;
}
diff --git a/dep/acelite/ace/Stream_Modules.h b/dep/acelite/ace/Stream_Modules.h
index 5bbc072ad4c..008bdecd52f 100644
--- a/dep/acelite/ace/Stream_Modules.h
+++ b/dep/acelite/ace/Stream_Modules.h
@@ -4,7 +4,7 @@
/**
* @file Stream_Modules.h
*
- * $Id: Stream_Modules.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: Stream_Modules.h 96061 2012-08-16 09:36:07Z mcorino $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
*/
@@ -47,15 +47,15 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* stream.
* - Writer: The block is passed to the next module in the stream.
*/
-template <ACE_SYNCH_DECL>
-class ACE_Stream_Head : public ACE_Task<ACE_SYNCH_USE>
+template <ACE_SYNCH_DECL, class TIME_POLICY = ACE_System_Time_Policy>
+class ACE_Stream_Head : public ACE_Task<ACE_SYNCH_USE, TIME_POLICY>
{
public:
/// Construction
ACE_Stream_Head (void);
/// Destruction
- ~ACE_Stream_Head (void);
+ virtual ~ACE_Stream_Head (void);
// = ACE_Task hooks
virtual int open (void *a = 0);
@@ -85,15 +85,15 @@ private:
*
* @brief Standard module that acts as the head of a stream.
*/
-template <ACE_SYNCH_DECL>
-class ACE_Stream_Tail : public ACE_Task<ACE_SYNCH_USE>
+template <ACE_SYNCH_DECL, class TIME_POLICY = ACE_System_Time_Policy>
+class ACE_Stream_Tail : public ACE_Task<ACE_SYNCH_USE, TIME_POLICY>
{
public:
/// Construction
ACE_Stream_Tail (void);
/// Destruction
- ~ACE_Stream_Tail (void);
+ virtual ~ACE_Stream_Tail (void);
// = ACE_Task hooks
virtual int open (void *a = 0);
@@ -124,15 +124,15 @@ private:
* @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>
+template <ACE_SYNCH_DECL, class TIME_POLICY = ACE_System_Time_Policy>
+class ACE_Thru_Task : public ACE_Task<ACE_SYNCH_USE, TIME_POLICY>
{
public:
/// Construction
ACE_Thru_Task (void);
/// Destruction
- ~ACE_Thru_Task (void);
+ virtual ~ACE_Thru_Task (void);
// = ACE_Task hooks
virtual int open (void *a = 0);
diff --git a/dep/acelite/ace/String_Base.cpp b/dep/acelite/ace/String_Base.cpp
index 8438cc6e59d..2373c578204 100644
--- a/dep/acelite/ace/String_Base.cpp
+++ b/dep/acelite/ace/String_Base.cpp
@@ -1,4 +1,4 @@
-// $Id: String_Base.cpp 88793 2010-02-01 17:50:34Z cleeland $
+// $Id: String_Base.cpp 93238 2011-02-01 14:30:38Z shuston $
#ifndef ACE_STRING_BASE_CPP
#define ACE_STRING_BASE_CPP
@@ -655,7 +655,9 @@ ACE_String_Base<ACE_CHAR_T>::operator+= (const ACE_CHAR_T c)
{
ACE_TRACE ("ACE_String_Base<ACE_CHAR_T>::operator+=(const ACE_CHAR_T)");
const size_type slen = 1;
- return this->append (&c, slen);
+ // This temp is silly but it quiets an optimizer warning in IBM XL C++ 10.
+ ACE_String_Base<ACE_CHAR_T>& r = this->append (&c, slen);
+ return r;
}
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/String_Base.h b/dep/acelite/ace/String_Base.h
index 128fe76a2b6..b02d786725a 100644
--- a/dep/acelite/ace/String_Base.h
+++ b/dep/acelite/ace/String_Base.h
@@ -4,7 +4,7 @@
/**
* @file String_Base.h
*
- * $Id: String_Base.h 92057 2010-09-27 14:52:00Z johnnyw $
+ * $Id: String_Base.h 95709 2012-04-24 01:19:24Z schmidt $
*
* @author Douglas C. Schmidt (schmidt@cs.wustl.edu)
* @author Nanbor Wang <nanbor@cs.wustl.edu>
diff --git a/dep/acelite/ace/Svc_Conf.y b/dep/acelite/ace/Svc_Conf.y
index 8ddc6a8d3a7..ec3ed5c06c1 100644
--- a/dep/acelite/ace/Svc_Conf.y
+++ b/dep/acelite/ace/Svc_Conf.y
@@ -1,5 +1,5 @@
%{
-// $Id: Svc_Conf.y 91368 2010-08-16 13:03:34Z mhengstmengel $
+// $Id: Svc_Conf.y 94034 2011-05-09 19:11:03Z johnnyw $
#include "ace/Svc_Conf.h"
@@ -331,11 +331,10 @@ ace_get_module (ACE_Service_Type const * sr,
ACE_TCHAR const * svc_name,
int & yyerrno)
{
- ACE_Service_Type_Impl const * const type = sr->type ();
ACE_Stream_Type const * const st =
(sr == 0
? 0
- : dynamic_cast<ACE_Stream_Type const *> (type));
+ : dynamic_cast<ACE_Stream_Type const *> (sr->type ()));
ACE_Module_Type const * const mt = (st == 0 ? 0 : st->find (svc_name));
if (sr == 0 || st == 0 || mt == 0)
diff --git a/dep/acelite/ace/Svc_Conf_y.cpp b/dep/acelite/ace/Svc_Conf_y.cpp
index e14286699cd..8aa656ff39f 100644
--- a/dep/acelite/ace/Svc_Conf_y.cpp
+++ b/dep/acelite/ace/Svc_Conf_y.cpp
@@ -1,4 +1,4 @@
-// $Id: Svc_Conf_y.cpp 91368 2010-08-16 13:03:34Z mhengstmengel $
+// $Id: Svc_Conf_y.cpp 94034 2011-05-09 19:11:03Z johnnyw $
/* A Bison parser, made by GNU Bison 2.3. */
/* Skeleton implementation for Bison's Yacc-like parsers in C
@@ -105,7 +105,7 @@
/* Copy the first part of user declarations. */
-// $Id: Svc_Conf_y.cpp 91368 2010-08-16 13:03:34Z mhengstmengel $
+// $Id: Svc_Conf_y.cpp 94034 2011-05-09 19:11:03Z johnnyw $
#include "ace/Svc_Conf.h"
@@ -1955,11 +1955,10 @@ ace_get_module (ACE_Service_Type const * sr,
ACE_TCHAR const * svc_name,
int & ace_yyerrno)
{
- ACE_Service_Type_Impl const * const type = sr->type ();
ACE_Stream_Type const * const st =
(sr == 0
? 0
- : dynamic_cast<ACE_Stream_Type const *> (type));
+ : dynamic_cast<ACE_Stream_Type const *> (sr->type ()));
ACE_Module_Type const * const mt = (st == 0 ? 0 : st->find (svc_name));
if (sr == 0 || st == 0 || mt == 0)
diff --git a/dep/acelite/ace/Svc_Handler.cpp b/dep/acelite/ace/Svc_Handler.cpp
index a4f22c98ce4..565d96c5c34 100644
--- a/dep/acelite/ace/Svc_Handler.cpp
+++ b/dep/acelite/ace/Svc_Handler.cpp
@@ -1,4 +1,4 @@
-// $Id: Svc_Handler.cpp 89432 2010-03-10 10:34:51Z vzykov $
+// $Id: Svc_Handler.cpp 94310 2011-07-09 19:10:06Z schmidt $
#ifndef ACE_SVC_HANDLER_CPP
#define ACE_SVC_HANDLER_CPP
@@ -95,8 +95,7 @@ template <PR_ST_1, ACE_SYNCH_DECL> void
ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::operator delete (void *p,
const ACE_nothrow_t&) throw()
{
- ACE_TRACE
- ("ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::operator delete(nothrow)");
+ ACE_TRACE("ACE_Svc_Handler<PR_ST_2, ACE_SYNCH_USE>::operator delete(nothrow)");
::delete [] static_cast <char *> (p);
}
#endif /* ACE_LACKS_PLACEMENT_OPERATOR_DELETE */
diff --git a/dep/acelite/ace/Synch_Traits.h b/dep/acelite/ace/Synch_Traits.h
index 785b9fd0eec..a841039a223 100644
--- a/dep/acelite/ace/Synch_Traits.h
+++ b/dep/acelite/ace/Synch_Traits.h
@@ -4,7 +4,7 @@
/**
* @file Synch_Traits.h
*
- * $Id: Synch_Traits.h 91626 2010-09-07 10:59:20Z johnnyw $
+ * $Id: Synch_Traits.h 96073 2012-08-17 13:39:55Z mcorino $
*
* Moved from Synch.h.
*
@@ -27,17 +27,19 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// Forward decl
class ACE_Null_Mutex;
-class ACE_Null_Condition;
class ACE_Null_Semaphore;
class ACE_Null_Mutex;
class ACE_Thread_Mutex;
class ACE_Process_Mutex;
class ACE_Recursive_Thread_Mutex;
class ACE_RW_Thread_Mutex;
-class ACE_Condition_Thread_Mutex;
-class ACE_Condition_Recursive_Thread_Mutex;
class ACE_Thread_Semaphore;
+template <class MUTEX> class ACE_Condition;
+typedef ACE_Condition<ACE_Null_Mutex> ACE_Null_Condition;
+typedef ACE_Condition<ACE_Thread_Mutex> ACE_Condition_Thread_Mutex;
+typedef ACE_Condition<ACE_Recursive_Thread_Mutex> ACE_Condition_Recursive_Thread_Mutex;
+
/**
* @class ACE_NULL_SYNCH
*
@@ -62,7 +64,6 @@ public:
#if defined (ACE_HAS_THREADS)
class ACE_Process_Mutex;
-class ACE_Condition_Recursive_Thread_Mutex;
/**
* @class ACE_MT_SYNCH
diff --git a/dep/acelite/ace/TLI.inl b/dep/acelite/ace/TLI.inl
index 001d8c65292..1d7e196b198 100644
--- a/dep/acelite/ace/TLI.inl
+++ b/dep/acelite/ace/TLI.inl
@@ -1,10 +1,8 @@
// -*- C++ -*-
-//
-// $Id: TLI.inl 80826 2008-03-04 14:51:23Z wotte $
+// $Id: TLI.inl 93359 2011-02-11 11:33:12Z mcorino $
#include "ace/TLI.h"
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_INLINE
diff --git a/dep/acelite/ace/TP_Reactor.cpp b/dep/acelite/ace/TP_Reactor.cpp
index 683dfd58622..70998e60497 100644
--- a/dep/acelite/ace/TP_Reactor.cpp
+++ b/dep/acelite/ace/TP_Reactor.cpp
@@ -1,10 +1,11 @@
-// $Id: TP_Reactor.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: TP_Reactor.cpp 95332 2011-12-15 11:09:41Z mcorino $
#include "ace/TP_Reactor.h"
#include "ace/Thread.h"
#include "ace/Timer_Queue.h"
#include "ace/Sig_Handler.h"
#include "ace/Log_Msg.h"
+#include "ace/Functor_T.h"
#include "ace/OS_NS_sys_time.h"
#if !defined (__ACE_INLINE__)
@@ -161,7 +162,10 @@ ACE_TP_Reactor::handle_events (ACE_Time_Value *max_wait_time)
// After getting the lock just just for deactivation..
if (this->deactivated_)
- return -1;
+ {
+ errno = ESHUTDOWN;
+ return -1;
+ }
// Update the countdown to reflect time waiting for the token.
countdown.update ();
@@ -303,40 +307,10 @@ int
ACE_TP_Reactor::handle_timer_events (int & /*event_count*/,
ACE_TP_Token_Guard &guard)
{
- if (this->timer_queue_ == 0 || this->timer_queue_->is_empty())
- { // Empty timer queue so cannot have any expired timers.
- return 0;
- }
-
- // 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))
- {
- const void *upcall_act = 0;
+ typedef ACE_Member_Function_Command<ACE_TP_Token_Guard> Guard_Release;
- // Preinvoke.
- this->timer_queue_->preinvoke (info, cur_time, upcall_act);
-
- // Release the token before dispatching notifies...
- guard.release_token ();
-
- // call the functor
- this->timer_queue_->upcall (info, cur_time);
-
- // Postinvoke
- this->timer_queue_->postinvoke (info, cur_time, upcall_act);
-
- // We have dispatched a timer
- return 1;
- }
-
- return 0;
+ Guard_Release release(guard, &ACE_TP_Token_Guard::release_token);
+ return this->timer_queue_->expire_single(release);
}
int
diff --git a/dep/acelite/ace/TP_Reactor.h b/dep/acelite/ace/TP_Reactor.h
index 33e00c2e57f..965b6dfcc91 100644
--- a/dep/acelite/ace/TP_Reactor.h
+++ b/dep/acelite/ace/TP_Reactor.h
@@ -4,7 +4,7 @@
/**
* @file TP_Reactor.h
*
- * $Id: TP_Reactor.h 82723 2008-09-16 09:35:44Z johnnyw $
+ * $Id: TP_Reactor.h 94454 2011-09-08 17:36:56Z johnnyw $
*
* The ACE_TP_Reactor (aka, Thread Pool Reactor) uses the
* Leader/Followers pattern to demultiplex events among a pool of
@@ -131,7 +131,7 @@ private:
/// Flag that indicate whether the thread that created this object
/// owns the token or not. A value of false indicates that this class
- /// hasnt got the token (and hence the thread) and a value of true
+ /// hasn't got the token (and hence the thread) and a value of true
/// vice-versa.
bool owner_;
diff --git a/dep/acelite/ace/TSS_Adapter.cpp b/dep/acelite/ace/TSS_Adapter.cpp
index 748ad1c13e6..e51ca303511 100644
--- a/dep/acelite/ace/TSS_Adapter.cpp
+++ b/dep/acelite/ace/TSS_Adapter.cpp
@@ -1,7 +1,7 @@
/**
* @file TSS_Adapter.cpp
*
- * $Id: TSS_Adapter.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+ * $Id: TSS_Adapter.cpp 93792 2011-04-07 11:48:50Z mcorino $
*
* Originally in Synch.cpp
*
@@ -10,30 +10,25 @@
#include "ace/TSS_Adapter.h"
-
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
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_
}
ACE_END_VERSIONED_NAMESPACE_DECL
-extern "C" void
+extern "C" ACE_Export void
ACE_TSS_C_cleanup (void *object)
{
- // ACE_TRACE ("ACE_TSS_C_cleanup");
if (object != 0)
{
ACE_TSS_Adapter * const tss_adapter = (ACE_TSS_Adapter *) object;
diff --git a/dep/acelite/ace/TSS_Adapter.h b/dep/acelite/ace/TSS_Adapter.h
index b8ff85e3210..b806422365f 100644
--- a/dep/acelite/ace/TSS_Adapter.h
+++ b/dep/acelite/ace/TSS_Adapter.h
@@ -4,7 +4,7 @@
/**
* @file TSS_Adapter.h
*
- * $Id: TSS_Adapter.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: TSS_Adapter.h 93792 2011-04-07 11:48:50Z mcorino $
*
* Originally in Synch.h
*
@@ -30,8 +30,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* @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.
+ * "C" cleanup routine to be used.
*
* Objects of this class are stored in thread specific
* storage. ts_obj_ points to the "real" object and
diff --git a/dep/acelite/ace/TSS_T.cpp b/dep/acelite/ace/TSS_T.cpp
index 9cc112f3ec7..8c6f30e1116 100644
--- a/dep/acelite/ace/TSS_T.cpp
+++ b/dep/acelite/ace/TSS_T.cpp
@@ -1,4 +1,4 @@
-// $Id: TSS_T.cpp 91693 2010-09-09 12:57:54Z johnnyw $
+// $Id: TSS_T.cpp 93792 2011-04-07 11:48:50Z mcorino $
#ifndef ACE_TSS_T_CPP
#define ACE_TSS_T_CPP
@@ -28,7 +28,7 @@ ACE_ALLOC_HOOK_DEFINE(ACE_TSS)
#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 *);
+extern "C" ACE_Export void ACE_TSS_C_cleanup (void *);
# endif /* ACE_HAS_THR_C_DEST */
#endif /* defined (ACE_HAS_THREADS) && (defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION)) */
diff --git a/dep/acelite/ace/TTY_IO.h b/dep/acelite/ace/TTY_IO.h
index 1029966e56c..39de5f8d236 100644
--- a/dep/acelite/ace/TTY_IO.h
+++ b/dep/acelite/ace/TTY_IO.h
@@ -4,7 +4,7 @@
/**
* @file TTY_IO.h
*
- * $Id: TTY_IO.h 82271 2008-07-09 09:23:03Z olli $
+ * $Id: TTY_IO.h 95212 2011-12-05 12:29:55Z johnnyw $
*
* @author Douglas C. Schmidt <schmidt@uci.edu>
*/
@@ -46,7 +46,7 @@ public:
{
Serial_Params (void);
- /** Specifies the baudrate at which the communnication port operates. */
+ /** Specifies the baudrate at which the communication port operates. */
int baudrate;
/** Specifies the minimum number of bytes in input buffer before XON char
is sent. Negative value indicates that default value should
diff --git a/dep/acelite/ace/Task.cpp b/dep/acelite/ace/Task.cpp
index c570fc0dc89..1d159ad84b7 100644
--- a/dep/acelite/ace/Task.cpp
+++ b/dep/acelite/ace/Task.cpp
@@ -1,4 +1,4 @@
-// $Id: Task.cpp 91368 2010-08-16 13:03:34Z mhengstmengel $
+// $Id: Task.cpp 95761 2012-05-15 18:23:04Z johnnyw $
#include "ace/Task.h"
#include "ace/Module.h"
@@ -15,21 +15,15 @@ ACE_Task_Base::ACE_Task_Base (ACE_Thread_Manager *thr_man)
thr_mgr_ (thr_man),
flags_ (0),
grp_id_ (-1)
-#if !(defined (ACE_MVS) || defined(__TANDEM))
,last_thread_id_ (0)
-#endif /* !defined (ACE_MVS) */
{
-#if (defined (ACE_MVS) || defined(__TANDEM))
- ACE_OS::memset( &this->last_thread_id_, '\0', sizeof( this->last_thread_id_ ));
-#endif /* defined (ACE_MVS) */
}
ACE_Task_Base::~ACE_Task_Base (void)
{
}
-// Default ACE_Task service routine
-
+/// Default ACE_Task service routine
int
ACE_Task_Base::svc (void)
{
@@ -37,8 +31,7 @@ ACE_Task_Base::svc (void)
return 0;
}
-// Default ACE_Task open routine
-
+/// Default ACE_Task open routine
int
ACE_Task_Base::open (void *)
{
@@ -46,8 +39,7 @@ ACE_Task_Base::open (void *)
return 0;
}
-// Default ACE_Task close routine
-
+/// Default ACE_Task close routine
int
ACE_Task_Base::close (u_long)
{
@@ -55,17 +47,15 @@ ACE_Task_Base::close (u_long)
return 0;
}
-// Forward the call to close() so that existing applications don't
-// break.
-
+/// Forward the call to close() so that existing applications don't
+/// break.
int
ACE_Task_Base::module_closed (void)
{
return this->close (1);
}
-// Default ACE_Task put routine.
-
+/// Default ACE_Task put routine.
int
ACE_Task_Base::put (ACE_Message_Block *, ACE_Time_Value *)
{
@@ -73,8 +63,7 @@ ACE_Task_Base::put (ACE_Message_Block *, ACE_Time_Value *)
return 0;
}
-// Wait for all threads running in a task to exit.
-
+/// Wait for all threads running in a task to exit.
int
ACE_Task_Base::wait (void)
{
@@ -88,7 +77,7 @@ ACE_Task_Base::wait (void)
return 0;
}
-// Suspend a task.
+/// Suspend a task.
int
ACE_Task_Base::suspend (void)
{
@@ -100,7 +89,7 @@ ACE_Task_Base::suspend (void)
return 0;
}
-// Resume a suspended task.
+/// Resume a suspended task.
int
ACE_Task_Base::resume (void)
{
@@ -195,11 +184,11 @@ ACE_Task_Base::activate (long flags,
if (this->grp_id_ == -1)
this->grp_id_ = grp_spawned;
-#if defined (ACE_MVS) || defined(__TANDEM)
+#if defined(ACE_TANDEM_T1248_PTHREADS)
ACE_OS::memcpy( &this->last_thread_id_, '\0', sizeof(this->last_thread_id_));
#else
this->last_thread_id_ = 0; // Reset to prevent inadvertant match on ID
-#endif /* defined (ACE_MVS) */
+#endif /* defined (ACE_TANDEM_T1248_PTHREADS) */
return 0;
diff --git a/dep/acelite/ace/Task_Ex_T.cpp b/dep/acelite/ace/Task_Ex_T.cpp
index de97e5ba6b4..bcc0ff0bed3 100644
--- a/dep/acelite/ace/Task_Ex_T.cpp
+++ b/dep/acelite/ace/Task_Ex_T.cpp
@@ -1,4 +1,4 @@
-// $Id: Task_Ex_T.cpp 80826 2008-03-04 14:51:23Z wotte $
+// $Id: Task_Ex_T.cpp 96061 2012-08-16 09:36:07Z mcorino $
#ifndef ACE_TASK_EX_T_CPP
#define ACE_TASK_EX_T_CPP
@@ -19,11 +19,11 @@
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-template <ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE> void
-ACE_Task_Ex<ACE_SYNCH_USE, ACE_MESSAGE_TYPE>::dump (void) const
+template <ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE, class TIME_POLICY> void
+ACE_Task_Ex<ACE_SYNCH_USE, ACE_MESSAGE_TYPE, TIME_POLICY>::dump (void) const
{
#if defined (ACE_HAS_DUMP)
- ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE, ACE_MESSAGE_TYPE>::dump");
+ ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE, ACE_MESSAGE_TYPE, TIME_POLICY>::dump");
ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\nthr_mgr_ = %x"), this->thr_mgr_));
this->msg_queue_->dump ();
@@ -44,31 +44,31 @@ ACE_Task_Ex<ACE_SYNCH_USE, ACE_MESSAGE_TYPE>::dump (void) const
// If the user doesn't supply a ACE_Message_Queue_Ex pointer then we'll
// allocate one dynamically. Otherwise, we'll use the one they give.
-template<ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE>
-ACE_Task_Ex<ACE_SYNCH_USE, ACE_MESSAGE_TYPE>::ACE_Task_Ex (ACE_Thread_Manager *thr_man,
- ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE> *mq)
+template<ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE, class TIME_POLICY>
+ACE_Task_Ex<ACE_SYNCH_USE, ACE_MESSAGE_TYPE, TIME_POLICY>::ACE_Task_Ex (ACE_Thread_Manager *thr_man,
+ ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY> *mq)
: ACE_Task_Base (thr_man),
msg_queue_ (0),
delete_msg_queue_ (false),
mod_ (0),
next_ (0)
{
- ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE, ACE_MESSAGE_TYPE>::ACE_Task_Ex");
+ ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE, ACE_MESSAGE_TYPE, TIME_POLICY>::ACE_Task_Ex");
if (mq == 0)
{
ACE_NEW (mq,
- (ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>));
+ (ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>));
this->delete_msg_queue_ = true;
}
this->msg_queue_ = mq;
}
-template<ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE>
-ACE_Task_Ex<ACE_SYNCH_USE, ACE_MESSAGE_TYPE>::~ACE_Task_Ex (void)
+template<ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE, class TIME_POLICY>
+ACE_Task_Ex<ACE_SYNCH_USE, ACE_MESSAGE_TYPE, TIME_POLICY>::~ACE_Task_Ex (void)
{
- ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE, ACE_MESSAGE_TYPE>::~ACE_Task_Ex");
+ ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE, ACE_MESSAGE_TYPE, TIME_POLICY>::~ACE_Task_Ex");
if (this->delete_msg_queue_)
delete this->msg_queue_;
@@ -77,10 +77,10 @@ ACE_Task_Ex<ACE_SYNCH_USE, ACE_MESSAGE_TYPE>::~ACE_Task_Ex (void)
this->delete_msg_queue_ = false;
}
-template<ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE> ACE_Task<ACE_SYNCH_USE> *
-ACE_Task_Ex<ACE_SYNCH_USE, ACE_MESSAGE_TYPE>::sibling (void)
+template<ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE, class TIME_POLICY> ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *
+ACE_Task_Ex<ACE_SYNCH_USE, ACE_MESSAGE_TYPE, TIME_POLICY>::sibling (void)
{
- ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE, ACE_MESSAGE_TYPE>::sibling");
+ ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE, ACE_MESSAGE_TYPE, TIME_POLICY>::sibling");
/// @todo FIXME Need to impl ACE_Moudle to support ACE_Task as well.
/// Now always return 0 for sibling
return 0;
@@ -92,20 +92,20 @@ ACE_Task_Ex<ACE_SYNCH_USE, ACE_MESSAGE_TYPE>::sibling (void)
*/
}
-template<ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE> const ACE_TCHAR *
-ACE_Task_Ex<ACE_SYNCH_USE, ACE_MESSAGE_TYPE>::name (void) const
+template<ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE, class TIME_POLICY> const ACE_TCHAR *
+ACE_Task_Ex<ACE_SYNCH_USE, ACE_MESSAGE_TYPE, TIME_POLICY>::name (void) const
{
- ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE, ACE_MESSAGE_TYPE>::name");
+ ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE, ACE_MESSAGE_TYPE, TIME_POLICY>::name");
if (this->mod_ == 0)
return 0;
else
return this->mod_->name ();
}
-template<ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE> ACE_Module<ACE_SYNCH_USE> *
-ACE_Task_Ex<ACE_SYNCH_USE, ACE_MESSAGE_TYPE>::module (void) const
+template<ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE, class TIME_POLICY> ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *
+ACE_Task_Ex<ACE_SYNCH_USE, ACE_MESSAGE_TYPE, TIME_POLICY>::module (void) const
{
- ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE, ACE_MESSAGE_TYPE>::module");
+ ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE, ACE_MESSAGE_TYPE, TIME_POLICY>::module");
return this->mod_;
}
diff --git a/dep/acelite/ace/Task_Ex_T.h b/dep/acelite/ace/Task_Ex_T.h
index 70a97247b04..04eadb794e3 100644
--- a/dep/acelite/ace/Task_Ex_T.h
+++ b/dep/acelite/ace/Task_Ex_T.h
@@ -4,7 +4,7 @@
/**
* @file Task_Ex_T.h
*
- * $Id: Task_Ex_T.h 91688 2010-09-09 11:21:50Z johnnyw $
+ * $Id: Task_Ex_T.h 96061 2012-08-16 09:36:07Z mcorino $
*
* @author Kobi Cohen-Arazi <kobi-co@barak-online.net>
*/
@@ -26,7 +26,7 @@
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// Forward decls...
-template <ACE_SYNCH_DECL> class ACE_Module;
+template <ACE_SYNCH_DECL, class TIME_POLICY> class ACE_Module;
/**
* @class ACE_Task_Ex
@@ -57,14 +57,14 @@ template <ACE_SYNCH_DECL> class ACE_Module;
* When User (and legacy code) write ACE_Task<ACE_MT_SYNCH>, specialized ACE_Task
* code is in action.
*/
-template <ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE>
+template <ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE, class TIME_POLICY = ACE_System_Time_Policy>
class ACE_Task_Ex : public ACE_Task_Base,
private ACE_Copy_Disabled
{
public:
- friend class ACE_Module<ACE_SYNCH_USE>;
+ friend class ACE_Module<ACE_SYNCH_USE, TIME_POLICY>;
friend class ACE_Module_Type;
- typedef ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE> MESSAGE_QUEUE_EX;
+ typedef ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY> MESSAGE_QUEUE_EX;
// = Initialization/termination methods.
/**
@@ -133,16 +133,16 @@ public: // Should be protected:
// = 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);
+ ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *next (void);
/// Set next Task pointer.
- void next (ACE_Task<ACE_SYNCH_USE> *);
+ void next (ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *);
/// Alwasy return 0. @todo FIXME
- ACE_Task<ACE_SYNCH_USE> *sibling (void);
+ ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *sibling (void);
/// Return the Task's Module if there is one, else returns 0.
- ACE_Module<ACE_SYNCH_USE> *module (void) const;
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *module (void) const;
/**
* Flush the task's queue, i.e., free all of the enqueued
@@ -164,10 +164,10 @@ public: // Should be protected:
bool delete_msg_queue_;
/// Back-pointer to the enclosing module.
- ACE_Module<ACE_SYNCH_USE> *mod_;
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *mod_;
/// Pointer to adjacent ACE_Task.
- ACE_Task<ACE_SYNCH_USE> *next_;
+ ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *next_;
/// Dump the state of an object.
void dump (void) const;
diff --git a/dep/acelite/ace/Task_Ex_T.inl b/dep/acelite/ace/Task_Ex_T.inl
index 9b5c864c6ad..543e107efac 100644
--- a/dep/acelite/ace/Task_Ex_T.inl
+++ b/dep/acelite/ace/Task_Ex_T.inl
@@ -1,55 +1,55 @@
// -*- C++ -*-
//
-// $Id: Task_Ex_T.inl 91688 2010-09-09 11:21:50Z johnnyw $
+// $Id: Task_Ex_T.inl 96061 2012-08-16 09:36:07Z mcorino $
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-template <ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE> ACE_INLINE void
-ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE>::water_marks (ACE_IO_Cntl_Msg::ACE_IO_Cntl_Cmds cmd,
+template <ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE, class TIME_POLICY> ACE_INLINE void
+ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE, TIME_POLICY>::water_marks (ACE_IO_Cntl_Msg::ACE_IO_Cntl_Cmds cmd,
size_t wm_size)
{
- ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE>::water_marks");
+ ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE, TIME_POLICY>::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, class ACE_MESSAGE_TYPE> ACE_INLINE int
-ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE>::getq (ACE_MESSAGE_TYPE *&mb, ACE_Time_Value *tv)
+template <ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE, class TIME_POLICY> ACE_INLINE int
+ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE, TIME_POLICY>::getq (ACE_MESSAGE_TYPE *&mb, ACE_Time_Value *tv)
{
- ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE>::getq");
+ ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE, TIME_POLICY>::getq");
return this->msg_queue_->dequeue_head (mb, tv);
}
-template <ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE> ACE_INLINE int
-ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE>::putq (ACE_MESSAGE_TYPE *mb, ACE_Time_Value *tv)
+template <ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE, class TIME_POLICY> ACE_INLINE int
+ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE, TIME_POLICY>::putq (ACE_MESSAGE_TYPE *mb, ACE_Time_Value *tv)
{
- ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE>::putq");
+ ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE, TIME_POLICY>::putq");
return this->msg_queue_->enqueue_tail (mb, tv);
}
-template <ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE> ACE_INLINE int
-ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE>::ungetq (ACE_MESSAGE_TYPE *mb, ACE_Time_Value *tv)
+template <ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE, class TIME_POLICY> ACE_INLINE int
+ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE, TIME_POLICY>::ungetq (ACE_MESSAGE_TYPE *mb, ACE_Time_Value *tv)
{
- ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE>::ungetq");
+ ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE, TIME_POLICY>::ungetq");
return this->msg_queue_->enqueue_head (mb, tv);
}
-template <ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE> ACE_INLINE int
-ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE>::flush (u_long flag)
+template <ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE, class TIME_POLICY> ACE_INLINE int
+ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE, TIME_POLICY>::flush (u_long flag)
{
- ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE>::flush");
+ ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE, TIME_POLICY>::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, class ACE_MESSAGE_TYPE> ACE_INLINE void
-ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE>::msg_queue (ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE> *mq)
+template <ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE, class TIME_POLICY> ACE_INLINE void
+ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE, TIME_POLICY>::msg_queue (ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY> *mq)
{
- ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE>::msg_queue");
+ ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE, TIME_POLICY>::msg_queue");
if (this->delete_msg_queue_)
{
delete this->msg_queue_;
@@ -58,44 +58,44 @@ ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE>::msg_queue (ACE_Message_Queue_Ex<ACE
this->msg_queue_ = mq;
}
-template <ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE> ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE> *
-ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE>::msg_queue (void)
+template <ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE, class TIME_POLICY> ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY> *
+ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE, TIME_POLICY>::msg_queue (void)
{
- ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE>::msg_queue");
+ ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE, TIME_POLICY>::msg_queue");
return this->msg_queue_;
}
-template <ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE> ACE_INLINE int
-ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE>::reply (ACE_MESSAGE_TYPE *mb, ACE_Time_Value *tv)
+template <ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE, class TIME_POLICY> ACE_INLINE int
+ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE, TIME_POLICY>::reply (ACE_MESSAGE_TYPE *mb, ACE_Time_Value *tv)
{
- ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE>::reply");
+ ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE, TIME_POLICY>::reply");
ACE_UNUSED_ARG (mb);
ACE_UNUSED_ARG (tv);
return -1 ; // this->sibling ()->put_next (mb, tv);
}
-template <ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE> ACE_INLINE ACE_Task<ACE_SYNCH_USE> *
-ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE>::next (void)
+template <ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE, class TIME_POLICY> ACE_INLINE ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *
+ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE, TIME_POLICY>::next (void)
{
- ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE>::next");
+ ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE, TIME_POLICY>::next");
return this->next_;
}
-template <ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE> ACE_INLINE void
-ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE>::next (ACE_Task<ACE_SYNCH_USE> *q)
+template <ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE, class TIME_POLICY> ACE_INLINE void
+ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE, TIME_POLICY>::next (ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *q)
{
- ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE>::next");
+ ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE, TIME_POLICY>::next");
this->next_ = q;
}
// Transfer msg to the next ACE_Task_Ex.
-template <ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE> ACE_INLINE int
-ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE>::put_next (
+template <ACE_SYNCH_DECL, class ACE_MESSAGE_TYPE, class TIME_POLICY> ACE_INLINE int
+ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE, TIME_POLICY>::put_next (
ACE_MESSAGE_TYPE * /* msg */,
ACE_Time_Value * /* tv */)
{
- ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE>::put_next");
+ ACE_TRACE ("ACE_Task_Ex<ACE_SYNCH_USE,ACE_MESSAGE_TYPE, TIME_POLICY>::put_next");
return -1; // this->next_ == 0 ? -1 : this->next_->put (msg, tv);
}
diff --git a/dep/acelite/ace/Task_T.cpp b/dep/acelite/ace/Task_T.cpp
index 08b36f82f08..e2481ae2bc6 100644
--- a/dep/acelite/ace/Task_T.cpp
+++ b/dep/acelite/ace/Task_T.cpp
@@ -1,4 +1,4 @@
-// $Id: Task_T.cpp 80826 2008-03-04 14:51:23Z wotte $
+// $Id: Task_T.cpp 96061 2012-08-16 09:36:07Z mcorino $
#ifndef ACE_TASK_T_CPP
#define ACE_TASK_T_CPP
@@ -18,11 +18,11 @@
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-template <ACE_SYNCH_DECL> void
-ACE_Task<ACE_SYNCH_USE>::dump (void) const
+template <ACE_SYNCH_DECL, class TIME_POLICY> void
+ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::dump (void) const
{
#if defined (ACE_HAS_DUMP)
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::dump");
+ ACE_TRACE ("ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::dump");
ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\nthr_mgr_ = %x"), this->thr_mgr_));
this->msg_queue_->dump ();
@@ -43,31 +43,32 @@ ACE_Task<ACE_SYNCH_USE>::dump (void) const
// 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)
+template<ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::ACE_Task (ACE_Thread_Manager *thr_man,
+ ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY> *mq)
: ACE_Task_Base (thr_man),
msg_queue_ (0),
delete_msg_queue_ (false),
mod_ (0),
next_ (0)
{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::ACE_Task");
+ ACE_TRACE ("ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::ACE_Task");
if (mq == 0)
{
+ typedef ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY> QUEUE_TYPE;
ACE_NEW (mq,
- ACE_Message_Queue<ACE_SYNCH_USE>);
+ QUEUE_TYPE);
this->delete_msg_queue_ = true;
}
this->msg_queue_ = mq;
}
-template<ACE_SYNCH_DECL>
-ACE_Task<ACE_SYNCH_USE>::~ACE_Task (void)
+template<ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::~ACE_Task (void)
{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::~ACE_Task");
+ ACE_TRACE ("ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::~ACE_Task");
if (this->delete_msg_queue_)
delete this->msg_queue_;
@@ -76,30 +77,30 @@ ACE_Task<ACE_SYNCH_USE>::~ACE_Task (void)
this->delete_msg_queue_ = false;
}
-template<ACE_SYNCH_DECL> ACE_Task<ACE_SYNCH_USE> *
-ACE_Task<ACE_SYNCH_USE>::sibling (void)
+template<ACE_SYNCH_DECL, class TIME_POLICY> ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *
+ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::sibling (void)
{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::sibling");
+ ACE_TRACE ("ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::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
+template<ACE_SYNCH_DECL, class TIME_POLICY> const ACE_TCHAR *
+ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::name (void) const
{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::name");
+ ACE_TRACE ("ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::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
+template<ACE_SYNCH_DECL, class TIME_POLICY> ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *
+ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::module (void) const
{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::module");
+ ACE_TRACE ("ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::module");
return this->mod_;
}
diff --git a/dep/acelite/ace/Task_T.h b/dep/acelite/ace/Task_T.h
index 1946f45cfe5..9b0cd9e2c6f 100644
--- a/dep/acelite/ace/Task_T.h
+++ b/dep/acelite/ace/Task_T.h
@@ -4,7 +4,7 @@
/**
* @file Task_T.h
*
- * $Id: Task_T.h 91688 2010-09-09 11:21:50Z johnnyw $
+ * $Id: Task_T.h 96061 2012-08-16 09:36:07Z mcorino $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
*/
@@ -27,7 +27,7 @@
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// Forward decls...
-template <ACE_SYNCH_DECL> class ACE_Module;
+template <ACE_SYNCH_DECL, class TIME_POLICY> class ACE_Module;
/**
* @class ACE_Task
@@ -38,11 +38,11 @@ template <ACE_SYNCH_DECL> class ACE_Module;
* This class serves as the basis for passive and active objects
* in ACE.
*/
-template <ACE_SYNCH_DECL>
+template <ACE_SYNCH_DECL, class TIME_POLICY = ACE_System_Time_Policy>
class ACE_Task : public ACE_Task_Base
{
public:
- friend class ACE_Module<ACE_SYNCH_USE>;
+ friend class ACE_Module<ACE_SYNCH_USE, TIME_POLICY>;
friend class ACE_Module_Type;
// = Initialization/termination methods.
@@ -53,16 +53,24 @@ public:
* one passed as a parameter.
*/
ACE_Task (ACE_Thread_Manager *thr_mgr = 0,
- ACE_Message_Queue<ACE_SYNCH_USE> *mq = 0);
+ ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY> *mq = 0);
/// Destructor.
virtual ~ACE_Task (void);
/// Gets the message queue associated with this task.
- ACE_Message_Queue<ACE_SYNCH_USE> *msg_queue (void);
+ ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY> *msg_queue (void);
/// Sets the message queue associated with this task.
- void msg_queue (ACE_Message_Queue<ACE_SYNCH_USE> *);
+ void msg_queue (ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY> *);
+
+ /// Get the current time of day according to the queue's TIME_POLICY.
+ /// Allows users to initialize timeout values using correct time policy.
+ ACE_Time_Value_T<TIME_POLICY> gettimeofday (void) const;
+
+ /// Allows applications to control how the timer queue gets the time
+ /// of day.
+ void set_time_policy (TIME_POLICY const & time_policy);
public: // Should be protected:
// = Message queue manipulation methods.
@@ -118,17 +126,17 @@ public: // Should be protected:
// = 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);
+ ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *next (void);
/// Set next Task pointer.
- void next (ACE_Task<ACE_SYNCH_USE> *);
+ void next (ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *);
/// 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);
+ ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *sibling (void);
/// Return the Task's Module if there is one, else returns 0.
- ACE_Module<ACE_SYNCH_USE> *module (void) const;
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *module (void) const;
/**
* Flush the task's queue, i.e., free all of the enqueued
@@ -144,16 +152,16 @@ public: // Should be protected:
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_;
+ ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY> *msg_queue_;
/// true if should delete Message_Queue, false otherwise.
bool delete_msg_queue_;
/// Back-pointer to the enclosing module.
- ACE_Module<ACE_SYNCH_USE> *mod_;
+ ACE_Module<ACE_SYNCH_USE, TIME_POLICY> *mod_;
/// Pointer to adjacent ACE_Task.
- ACE_Task<ACE_SYNCH_USE> *next_;
+ ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *next_;
/// Dump the state of an object.
void dump (void) const;
@@ -164,8 +172,8 @@ public: // Should be protected:
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> &))
+ ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Task<ACE_SYNCH_USE, TIME_POLICY> &))
+ ACE_UNIMPLEMENTED_FUNC (ACE_Task (const ACE_Task<ACE_SYNCH_USE, TIME_POLICY> &))
};
#if defined ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT
diff --git a/dep/acelite/ace/Task_T.inl b/dep/acelite/ace/Task_T.inl
index 5eda4c2bf90..34ad25b0c6b 100644
--- a/dep/acelite/ace/Task_T.inl
+++ b/dep/acelite/ace/Task_T.inl
@@ -1,55 +1,55 @@
// -*- C++ -*-
//
-// $Id: Task_T.inl 91688 2010-09-09 11:21:50Z johnnyw $
+// $Id: Task_T.inl 96066 2012-08-16 12:45:46Z mcorino $
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-template <ACE_SYNCH_DECL> ACE_INLINE void
-ACE_Task<ACE_SYNCH_USE>::water_marks (ACE_IO_Cntl_Msg::ACE_IO_Cntl_Cmds cmd,
+template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE void
+ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::water_marks (ACE_IO_Cntl_Msg::ACE_IO_Cntl_Cmds cmd,
size_t wm_size)
{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::water_marks");
+ ACE_TRACE ("ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE int
+ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::getq (ACE_Message_Block *&mb, ACE_Time_Value *tv)
{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::getq");
+ ACE_TRACE ("ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::getq");
return this->msg_queue_->dequeue_head (mb, tv);
}
-template <ACE_SYNCH_DECL> ACE_INLINE int
-ACE_Task<ACE_SYNCH_USE>::putq (ACE_Message_Block *mb, ACE_Time_Value *tv)
+template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE int
+ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::putq (ACE_Message_Block *mb, ACE_Time_Value *tv)
{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::putq");
+ ACE_TRACE ("ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE int
+ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::ungetq (ACE_Message_Block *mb, ACE_Time_Value *tv)
{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::ungetq");
+ ACE_TRACE ("ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE int
+ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::flush (u_long flag)
{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::flush");
+ ACE_TRACE ("ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE void
+ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::msg_queue (ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY> *mq)
{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::msg_queue");
+ ACE_TRACE ("ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::msg_queue");
if (this->delete_msg_queue_)
{
delete this->msg_queue_;
@@ -58,40 +58,58 @@ ACE_Task<ACE_SYNCH_USE>::msg_queue (ACE_Message_Queue<ACE_SYNCH_USE> *mq)
this->msg_queue_ = mq;
}
-template <ACE_SYNCH_DECL> ACE_Message_Queue<ACE_SYNCH_USE> *
-ACE_Task<ACE_SYNCH_USE>::msg_queue (void)
+template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY> *
+ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::msg_queue (void)
{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::msg_queue");
+ ACE_TRACE ("ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::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)
+template <ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Time_Value_T<TIME_POLICY>
+ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::gettimeofday (void) const
{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::reply");
+ if (this->msg_queue_ != 0)
+ return this->msg_queue_->gettimeofday ();
+
+ return ACE_Time_Value_T<TIME_POLICY> (ACE_Time_Value::zero);
+}
+
+template <ACE_SYNCH_DECL, class TIME_POLICY>
+void
+ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::set_time_policy (TIME_POLICY const & rhs)
+{
+ if (this->msg_queue_ != 0)
+ this->msg_queue_->set_time_policy (rhs);
+}
+
+template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE int
+ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::reply (ACE_Message_Block *mb, ACE_Time_Value *tv)
+{
+ ACE_TRACE ("ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *
+ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::next (void)
{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::next");
+ ACE_TRACE ("ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::next");
return this->next_;
}
-template <ACE_SYNCH_DECL> ACE_INLINE void
-ACE_Task<ACE_SYNCH_USE>::next (ACE_Task<ACE_SYNCH_USE> *q)
+template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE void
+ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::next (ACE_Task<ACE_SYNCH_USE, TIME_POLICY> *q)
{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::next");
+ ACE_TRACE ("ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::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)
+template <ACE_SYNCH_DECL, class TIME_POLICY> ACE_INLINE int
+ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::put_next (ACE_Message_Block *msg, ACE_Time_Value *tv)
{
- ACE_TRACE ("ACE_Task<ACE_SYNCH_USE>::put_next");
+ ACE_TRACE ("ACE_Task<ACE_SYNCH_USE, TIME_POLICY>::put_next");
return this->next_ == 0 ? -1 : this->next_->put (msg, tv);
}
diff --git a/dep/acelite/ace/Thread.inl b/dep/acelite/ace/Thread.inl
index b1fd120a261..5e08bd34d7e 100644
--- a/dep/acelite/ace/Thread.inl
+++ b/dep/acelite/ace/Thread.inl
@@ -1,6 +1,6 @@
// -*- C++ -*-
//
-// $Id: Thread.inl 91693 2010-09-09 12:57:54Z johnnyw $
+// $Id: Thread.inl 95376 2011-12-20 15:39:02Z shuston $
#include "ace/OS_NS_string.h"
@@ -171,7 +171,7 @@ ACE_Thread::disablecancel (struct cancel_state *old_state)
{
ACE_OS::memset (old_state,
0,
- sizeof (old_state));
+ sizeof (*old_state));
old_state->cancelstate = old_cstate;
}
diff --git a/dep/acelite/ace/Thread_Adapter.cpp b/dep/acelite/ace/Thread_Adapter.cpp
index 754691857a0..0afb322e731 100644
--- a/dep/acelite/ace/Thread_Adapter.cpp
+++ b/dep/acelite/ace/Thread_Adapter.cpp
@@ -1,4 +1,4 @@
-// $Id: Thread_Adapter.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: Thread_Adapter.cpp 92682 2010-11-23 23:41:19Z shuston $
#include "ace/Thread_Adapter.h"
#include "ace/Thread_Manager.h"
@@ -22,6 +22,7 @@ ACE_Thread_Adapter::ACE_Thread_Adapter (ACE_THR_FUNC user_func,
, ACE_SEH_EXCEPT_HANDLER selector,
ACE_SEH_EXCEPT_HANDLER handler
#endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
+ , long cancel_flags
)
: ACE_Base_Thread_Adapter (
user_func
@@ -32,6 +33,7 @@ ACE_Thread_Adapter::ACE_Thread_Adapter (ACE_THR_FUNC user_func,
, selector
, handler
#endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
+ , cancel_flags
)
, thr_mgr_ (tm)
{
@@ -105,6 +107,9 @@ ACE_Thread_Adapter::invoke_i (void)
ACE_OS_Thread_Descriptor *thr_desc = this->thr_desc_;
#endif /* ACE_WIN32 && ACE_HAS_MFC && (ACE_HAS_MFC != 0) */
+ // Pick up the cancel-related flags before deleting this.
+ long cancel_flags = this->flags_;
+
// Delete ourselves since we don't need <this> anymore. Make sure
// not to access <this> anywhere below this point.
delete this;
@@ -125,6 +130,17 @@ ACE_Thread_Adapter::invoke_i (void)
ACE_OS::thr_setprio (prio);
#endif /* ACE_NEEDS_LWP_PRIO_SET */
+ if (cancel_flags != 0)
+ {
+ // If both flags are set, ignore this.
+ int old = 0;
+ int val = cancel_flags & (THR_CANCEL_ENABLE | THR_CANCEL_DISABLE);
+ if (val == THR_CANCEL_ENABLE || val == THR_CANCEL_DISABLE)
+ ACE_OS::thr_setcancelstate (val, &old);
+ val = cancel_flags & (THR_CANCEL_DEFERRED | THR_CANCEL_ASYNCHRONOUS);
+ if (val == THR_CANCEL_DEFERRED || val == THR_CANCEL_ASYNCHRONOUS)
+ ACE_OS::thr_setcanceltype (val, &old);
+ }
ACE_THR_FUNC_RETURN status = 0;
diff --git a/dep/acelite/ace/Thread_Adapter.h b/dep/acelite/ace/Thread_Adapter.h
index d7ab4056de4..6880e2cb2cd 100644
--- a/dep/acelite/ace/Thread_Adapter.h
+++ b/dep/acelite/ace/Thread_Adapter.h
@@ -4,7 +4,7 @@
/**
* @file Thread_Adapter.h
*
- * $Id: Thread_Adapter.h 92060 2010-09-27 18:08:48Z johnnyw $
+ * $Id: Thread_Adapter.h 92682 2010-11-23 23:41:19Z shuston $
*
* @author Carlos O'Ryan <coryan@uci.edu>
*/
@@ -56,6 +56,7 @@ public:
, ACE_SEH_EXCEPT_HANDLER selector = 0,
ACE_SEH_EXCEPT_HANDLER handler = 0
# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
+ , long cancel_flags = 0
);
/**
diff --git a/dep/acelite/ace/Thread_Control.cpp b/dep/acelite/ace/Thread_Control.cpp
index 2f38849e339..4046c07eef7 100644
--- a/dep/acelite/ace/Thread_Control.cpp
+++ b/dep/acelite/ace/Thread_Control.cpp
@@ -1,4 +1,4 @@
-// $Id: Thread_Control.cpp 91688 2010-09-09 11:21:50Z johnnyw $
+// $Id: Thread_Control.cpp 94054 2011-05-11 18:28:20Z johnnyw $
#include "ace/Thread_Control.h"
#include "ace/Thread_Manager.h"
@@ -18,7 +18,7 @@ ACE_Thread_Control::dump (void) const
}
int
-ACE_Thread_Control::insert (ACE_Thread_Manager *tm, int insert)
+ACE_Thread_Control::insert (ACE_Thread_Manager *tm, bool insert)
{
ACE_OS_TRACE ("ACE_Thread_Control::insert");
@@ -33,7 +33,6 @@ ACE_Thread_Control::insert (ACE_Thread_Manager *tm, int insert)
}
// Initialize the thread controller.
-
ACE_Thread_Control::ACE_Thread_Control (ACE_Thread_Manager *t,
int insert)
: tm_ (t),
@@ -50,7 +49,6 @@ ACE_Thread_Control::ACE_Thread_Control (ACE_Thread_Manager *t,
}
// Automatically kill thread on exit.
-
ACE_Thread_Control::~ACE_Thread_Control (void)
{
ACE_OS_TRACE ("ACE_Thread_Control::~ACE_Thread_Control");
@@ -63,7 +61,6 @@ ACE_Thread_Control::~ACE_Thread_Control (void)
}
// 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)
{
diff --git a/dep/acelite/ace/Thread_Control.h b/dep/acelite/ace/Thread_Control.h
index 3eb5185c84c..392eb7a62e0 100644
--- a/dep/acelite/ace/Thread_Control.h
+++ b/dep/acelite/ace/Thread_Control.h
@@ -4,13 +4,12 @@
/**
* @file Thread_Control.h
*
- * $Id: Thread_Control.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: Thread_Control.h 94054 2011-05-11 18:28:20Z johnnyw $
*
* @author Carlos O'Ryan <coryan@uci.edu>
*/
//=============================================================================
-
#ifndef ACE_THREAD_CONTROL_H
#define ACE_THREAD_CONTROL_H
#include /**/ "ace/pre.h"
@@ -48,7 +47,7 @@ public:
ACE_Thread_Control (ACE_Thread_Manager *tm = 0,
int insert = 0);
- /// Remove the thread from its associated <Thread_Manager> and exit
+ /// Remove the thread from its associated Thread_Manager and exit
/// the thread if <do_thr_exit> is enabled.
~ACE_Thread_Control (void);
@@ -57,15 +56,15 @@ public:
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
+ /// Store the Thread_Manager and use it to register ourselves for
/// correct shutdown.
- int insert (ACE_Thread_Manager *tm, int insert = 0);
+ int insert (ACE_Thread_Manager *tm, bool insert = false);
- /// Returns the current <Thread_Manager>.
+ /// Returns the current Thread_Manager.
ACE_Thread_Manager *thr_mgr (void);
- /// Atomically set a new <Thread_Manager> and return the old
- /// <Thread_Manager>.
+ /// 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).
diff --git a/dep/acelite/ace/Thread_Exit.cpp b/dep/acelite/ace/Thread_Exit.cpp
index b85d48d1701..8f6484093ad 100644
--- a/dep/acelite/ace/Thread_Exit.cpp
+++ b/dep/acelite/ace/Thread_Exit.cpp
@@ -1,12 +1,10 @@
-// $Id: Thread_Exit.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: Thread_Exit.cpp 92580 2010-11-15 09:48:02Z johnnyw $
#include "ace/Thread_Exit.h"
#include "ace/Managed_Object.h"
#include "ace/Thread_Manager.h"
#include "ace/Guard_T.h"
-
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
bool ACE_Thread_Exit::is_constructed_ = false;
diff --git a/dep/acelite/ace/Thread_Hook.cpp b/dep/acelite/ace/Thread_Hook.cpp
index 1121e4b44ae..03b2fd74cdb 100644
--- a/dep/acelite/ace/Thread_Hook.cpp
+++ b/dep/acelite/ace/Thread_Hook.cpp
@@ -1,10 +1,8 @@
-// $Id: Thread_Hook.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: Thread_Hook.cpp 94054 2011-05-11 18:28:20Z johnnyw $
#include "ace/Thread_Hook.h"
#include "ace/Object_Manager_Base.h"
-
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_Thread_Hook::~ACE_Thread_Hook ()
@@ -12,8 +10,7 @@ ACE_Thread_Hook::~ACE_Thread_Hook ()
}
ACE_THR_FUNC_RETURN
-ACE_Thread_Hook::start (ACE_THR_FUNC func,
- void *arg)
+ACE_Thread_Hook::start (ACE_THR_FUNC func, void *arg)
{
return (func) (arg);
}
diff --git a/dep/acelite/ace/Thread_Hook.h b/dep/acelite/ace/Thread_Hook.h
index 7bc3bcce492..df0d0293cc4 100644
--- a/dep/acelite/ace/Thread_Hook.h
+++ b/dep/acelite/ace/Thread_Hook.h
@@ -4,13 +4,12 @@
/**
* @file Thread_Hook.h
*
- * $Id: Thread_Hook.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: Thread_Hook.h 94054 2011-05-11 18:28:20Z johnnyw $
*
* @author Carlos O'Ryan <coryan@uci.edu>
*/
//=============================================================================
-
#ifndef ACE_THREAD_HOOK_H
#define ACE_THREAD_HOOK_H
#include /**/ "ace/pre.h"
@@ -34,9 +33,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
*/
class ACE_Export ACE_Thread_Hook
{
-
public:
-
/// Destructor.
virtual ~ACE_Thread_Hook (void);
@@ -51,7 +48,7 @@ public:
virtual ACE_THR_FUNC_RETURN start (ACE_THR_FUNC func,
void *arg);
- /// sets the system wide thread hook, returns the previous thread
+ /// 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);
diff --git a/dep/acelite/ace/Thread_Manager.cpp b/dep/acelite/ace/Thread_Manager.cpp
index 587636b6776..f26c7adbde9 100644
--- a/dep/acelite/ace/Thread_Manager.cpp
+++ b/dep/acelite/ace/Thread_Manager.cpp
@@ -1,4 +1,4 @@
-// $Id: Thread_Manager.cpp 91368 2010-08-16 13:03:34Z mhengstmengel $
+// $Id: Thread_Manager.cpp 96067 2012-08-16 13:45:10Z mcorino $
#include "ace/TSS_T.h"
#include "ace/Thread_Manager.h"
@@ -188,9 +188,16 @@ ACE_Thread_Descriptor::terminate ()
}
#endif /* !ACE_HAS_VXTHREADS */
- // Remove thread descriptor from the table.
+ // Remove thread descriptor from the table. 'this' is invalid
+ // upon return.
if (this->tm_ != 0)
- tm_->remove_thr (this, close_handle);
+ {
+ // remove_thr makes use of 'this' invalid on return.
+ // Code below will free log_msg, so clear our pointer
+ // now - it's already been saved in log_msg.
+ this->log_msg_ = 0;
+ tm_->remove_thr (this, close_handle);
+ }
}
// Check if we need delete ACE_Log_Msg instance
@@ -203,9 +210,6 @@ ACE_Thread_Descriptor::terminate ()
}
else
{
- // Thread_Descriptor is the owner of the Log_Msg instance!!
- // deleted.
- this->log_msg_ = 0;
delete log_msg;
}
}
@@ -257,6 +261,7 @@ ACE_Thread_Descriptor::dump (void) const
ACE_Thread_Descriptor::ACE_Thread_Descriptor (void)
: log_msg_ (0),
at_exit_list_ (0),
+ tm_ (0),
terminated_ (false)
{
ACE_TRACE ("ACE_Thread_Descriptor::ACE_Thread_Descriptor");
@@ -369,6 +374,25 @@ ACE_Thread_Manager::ACE_Thread_Manager (size_t prealloc,
ACE_TRACE ("ACE_Thread_Manager::ACE_Thread_Manager");
}
+ACE_Thread_Manager::ACE_Thread_Manager (const ACE_Condition_Attributes &attributes,
+ 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_, attributes)
+#endif /* ACE_HAS_THREADS */
+ , thread_desc_freelist_ (ACE_FREE_LIST_WITH_POOL,
+ prealloc, lwm, hwm, inc)
+{
+#if !defined (ACE_HAS_THREADS)
+ ACE_UNUSED_ARG (attributes);
+#endif /* ACE_HAS_THREADS */
+ ACE_TRACE ("ACE_Thread_Manager::ACE_Thread_Manager");
+}
+
#if ! defined (ACE_THREAD_MANAGER_LACKS_STATICS)
ACE_Thread_Manager *
ACE_Thread_Manager::instance (void)
@@ -525,10 +549,11 @@ ace_thread_manager_adapter (void *args)
exit_hook.thr_mgr (thread_args->thr_mgr ());
// Invoke the user-supplied function with the args.
- void *status = thread_args->invoke ();
+ ACE_THR_FUNC_RETURN status = thread_args->invoke ();
delete static_cast<ACE_Base_Thread_Adapter *> (thread_args);
- return status;
+
+ return reinterpret_cast<void *> (status);
}
#endif
@@ -571,7 +596,8 @@ ACE_Thread_Manager::spawn_i (ACE_THR_FUNC func,
this,
new_thr_desc.get (),
ACE_OS_Object_Manager::seh_except_selector(),
- ACE_OS_Object_Manager::seh_except_handler()),
+ ACE_OS_Object_Manager::seh_except_handler(),
+ flags),
-1);
# else
ACE_NEW_RETURN (thread_args,
@@ -579,7 +605,8 @@ ACE_Thread_Manager::spawn_i (ACE_THR_FUNC func,
args,
(ACE_THR_C_FUNC) ACE_THREAD_ADAPTER_NAME,
this,
- new_thr_desc.get ()),
+ new_thr_desc.get (),
+ flags),
-1);
# endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */
auto_ptr <ACE_Base_Thread_Adapter> auto_thread_args (static_cast<ACE_Base_Thread_Adapter *> (thread_args));
@@ -1600,13 +1627,16 @@ ACE_Thread_Manager::wait (const ACE_Time_Value *timeout,
{
ACE_TRACE ("ACE_Thread_Manager::wait");
- ACE_Time_Value local_timeout;
+ ACE_Auto_Ptr<ACE_Time_Value> local_timeout;
// Check to see if we're using absolute time or not.
if (use_absolute_time == false && timeout != 0)
{
- local_timeout = *timeout;
- local_timeout += ACE_OS::gettimeofday ();
- timeout = &local_timeout;
+ // create time value duplicate (preserves time policy)
+ local_timeout.reset (timeout->duplicate ());
+ // convert time value to absolute time
+ (*local_timeout) = local_timeout->to_absolute_time ();
+ // replace original time by abs time duplicate
+ timeout = local_timeout.get ();
}
#if !defined (ACE_HAS_VXTHREADS)
diff --git a/dep/acelite/ace/Thread_Manager.h b/dep/acelite/ace/Thread_Manager.h
index 650287277d7..59d81fd1981 100644
--- a/dep/acelite/ace/Thread_Manager.h
+++ b/dep/acelite/ace/Thread_Manager.h
@@ -4,7 +4,7 @@
/**
* @file Thread_Manager.h
*
- * $Id: Thread_Manager.h 83956 2008-12-03 07:57:38Z johnnyw $
+ * $Id: Thread_Manager.h 96061 2012-08-16 09:36:07Z mcorino $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
*/
@@ -174,7 +174,7 @@ class ACE_Export ACE_Thread_Descriptor_Base : public ACE_OS_Thread_Descriptor
friend class ACE_Double_Linked_List_Iterator<ACE_Thread_Descriptor>;
public:
ACE_Thread_Descriptor_Base (void);
- ~ACE_Thread_Descriptor_Base (void);
+ virtual ~ACE_Thread_Descriptor_Base (void);
// = We need the following operators to make Borland happy.
@@ -437,6 +437,11 @@ public:
size_t lwm = ACE_DEFAULT_THREAD_MANAGER_LWM,
size_t inc = ACE_DEFAULT_THREAD_MANAGER_INC,
size_t hwm = ACE_DEFAULT_THREAD_MANAGER_HWM);
+ ACE_Thread_Manager (const ACE_Condition_Attributes &attributes,
+ 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);
~ACE_Thread_Manager (void);
#if ! defined (ACE_THREAD_MANAGER_LACKS_STATICS)
diff --git a/dep/acelite/ace/Thread_Mutex.h b/dep/acelite/ace/Thread_Mutex.h
index 7bda270e5d3..71fff2db17b 100644
--- a/dep/acelite/ace/Thread_Mutex.h
+++ b/dep/acelite/ace/Thread_Mutex.h
@@ -4,7 +4,7 @@
/**
* @file Thread_Mutex.h
*
- * $Id: Thread_Mutex.h 92060 2010-09-27 18:08:48Z johnnyw $
+ * $Id: Thread_Mutex.h 96061 2012-08-16 09:36:07Z mcorino $
*
* Moved from Synch.h.
*
@@ -49,7 +49,6 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
*/
class ACE_Export ACE_Thread_Mutex
{
- friend class ACE_Condition_Thread_Mutex;
public:
/// Constructor.
ACE_Thread_Mutex (const ACE_TCHAR *name = 0,
diff --git a/dep/acelite/ace/Thread_Semaphore.h b/dep/acelite/ace/Thread_Semaphore.h
index d7013d9c3f2..c9843a919ad 100644
--- a/dep/acelite/ace/Thread_Semaphore.h
+++ b/dep/acelite/ace/Thread_Semaphore.h
@@ -4,7 +4,7 @@
/**
* @file Thread_Semaphore.h
*
- * $Id: Thread_Semaphore.h 86731 2009-09-17 12:23:48Z johnnyw $
+ * $Id: Thread_Semaphore.h 95807 2012-06-01 12:44:19Z johnnyw $
*
* Moved from Synch.h.
*
@@ -47,7 +47,7 @@ public:
void * = 0,
int max = 0x7FFFFFFF);
- /// Default dtor.
+ /// Default destructor.
~ACE_Thread_Semaphore (void);
/// Dump the state of an object.
diff --git a/dep/acelite/ace/Throughput_Stats.cpp b/dep/acelite/ace/Throughput_Stats.cpp
index 87a63c715ef..f8e27fba837 100644
--- a/dep/acelite/ace/Throughput_Stats.cpp
+++ b/dep/acelite/ace/Throughput_Stats.cpp
@@ -1,4 +1,4 @@
-// $Id: Throughput_Stats.cpp 92069 2010-09-28 11:38:59Z johnnyw $
+// $Id: Throughput_Stats.cpp 95761 2012-05-15 18:23:04Z johnnyw $
#include "ace/Throughput_Stats.h"
@@ -25,10 +25,6 @@ ACE_Throughput_Stats::sample (ACE_UINT64 throughput,
if (this->samples_count () == 1u)
{
- this->throughput_last_ = throughput;
- }
- else
- {
this->throughput_last_ = throughput;
}
}
@@ -53,7 +49,7 @@ ACE_Throughput_Stats::accumulate (const ACE_Throughput_Stats &rhs)
void
ACE_Throughput_Stats::dump_results (const ACE_TCHAR* msg,
- ACE_UINT32 sf)
+ ACE_Basic_Stats::scale_factor_type sf)
{
if (this->samples_count () == 0u)
{
@@ -71,20 +67,13 @@ ACE_Throughput_Stats::dump_results (const ACE_TCHAR* msg,
void
ACE_Throughput_Stats::dump_throughput (const ACE_TCHAR *msg,
- ACE_UINT32 sf,
+ ACE_Basic_Stats::scale_factor_type sf,
ACE_UINT64 elapsed_time,
ACE_UINT32 samples_count)
{
#ifndef ACE_NLOGGING
double seconds =
-# if defined ACE_LACKS_LONGLONG_T
- elapsed_time / sf;
-#elif defined (ACE_LACKS_UNSIGNEDLONGLONG_T)
- static_cast<double> (ACE_UINT64_DBLCAST_ADAPTER (
- ACE_U_LongLong(elapsed_time / sf)));
-# else /* ! ACE_LACKS_LONGLONG_T */
static_cast<double> (ACE_UINT64_DBLCAST_ADAPTER (elapsed_time / sf));
-# endif /* ! ACE_LACKS_LONGLONG_T */
seconds /= ACE_HR_SCALE_CONVERSION;
const double t_avg = samples_count / seconds;
diff --git a/dep/acelite/ace/Throughput_Stats.h b/dep/acelite/ace/Throughput_Stats.h
index f9a97122aae..0911e8d4b8d 100644
--- a/dep/acelite/ace/Throughput_Stats.h
+++ b/dep/acelite/ace/Throughput_Stats.h
@@ -4,7 +4,7 @@
/**
* @file Throughput_Stats.h
*
- * $Id: Throughput_Stats.h 92069 2010-09-28 11:38:59Z johnnyw $
+ * $Id: Throughput_Stats.h 95743 2012-05-13 12:29:28Z johnnyw $
*
* @author David L. Levine
*/
@@ -55,11 +55,11 @@ public:
void accumulate (const ACE_Throughput_Stats &throughput);
/// Print down the stats
- void dump_results (const ACE_TCHAR* msg, ACE_UINT32 scale_factor);
+ void dump_results (const ACE_TCHAR* msg, scale_factor_type scale_factor);
/// Dump the average throughput stats.
static void dump_throughput (const ACE_TCHAR *msg,
- ACE_UINT32 scale_factor,
+ scale_factor_type scale_factor,
ACE_UINT64 elapsed_time,
ACE_UINT32 samples_count);
private:
diff --git a/dep/acelite/ace/Time_Policy.cpp b/dep/acelite/ace/Time_Policy.cpp
new file mode 100644
index 00000000000..c44daa7fe96
--- /dev/null
+++ b/dep/acelite/ace/Time_Policy.cpp
@@ -0,0 +1,34 @@
+// $Id: Time_Policy.cpp 96061 2012-08-16 09:36:07Z mcorino $
+
+#include "ace/Time_Policy.h"
+
+#if !defined(__ACE_INLINE__)
+# include "ace/Time_Policy.inl"
+#endif /* __ACE_INLINE__ */
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+ACE_Dynamic_Time_Policy_Base::~ACE_Dynamic_Time_Policy_Base ()
+{
+}
+
+
+class NULL_Time_Policy : public ACE_Dynamic_Time_Policy_Base
+{
+protected:
+ virtual ACE_Time_Value_T<ACE_Delegating_Time_Policy> gettimeofday () const;
+};
+
+ACE_Time_Value_T<ACE_Delegating_Time_Policy> NULL_Time_Policy::gettimeofday () const
+{
+ return ACE_Time_Value_T<ACE_Delegating_Time_Policy> (ACE_Time_Value::zero);
+}
+
+static NULL_Time_Policy null_policy_;
+
+ACE_Delegating_Time_Policy::ACE_Delegating_Time_Policy (ACE_Dynamic_Time_Policy_Base const * delegate)
+ : delegate_ (delegate != 0 ? delegate : &null_policy_)
+{
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/Time_Policy.h b/dep/acelite/ace/Time_Policy.h
new file mode 100644
index 00000000000..a94dd9591c7
--- /dev/null
+++ b/dep/acelite/ace/Time_Policy.h
@@ -0,0 +1,172 @@
+#ifndef ACE_TIME_POLICY_H
+#define ACE_TIME_POLICY_H
+// -*- C++ -*-
+/**
+ * @file Time_Policy.h
+ *
+ * $Id: Time_Policy.h 96061 2012-08-16 09:36:07Z mcorino $
+ *
+ * @author Carlos O'Ryan <coryan@atdesk.com>
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+#include /**/ "ace/pre.h"
+
+#include /**/ "ace/config-all.h"
+
+#include /**/ "ace/Time_Value_T.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+/**
+ * @class ACE_System_Time_Policy
+ *
+ * @brief Implement the system time policy for ACE.
+ *
+ * The most common time policy is to simply use
+ * ACE_OS::gettimeofday(), this class implements that policy, i.e., it
+ * simply calls that function.
+ */
+class ACE_Export ACE_System_Time_Policy
+{
+public:
+ /// Return the current time according to this policy
+ ACE_Time_Value_T<ACE_System_Time_Policy> operator() () const;
+
+ /// Noop. Just here to satisfy backwards compatibility demands.
+ void set_gettimeofday (ACE_Time_Value (*gettimeofday)(void));
+};
+
+/**
+ * @class ACE_HR_Time_Policy
+ *
+ * @brief Implement a time policy based on the ACE Highres timer.
+ *
+ */
+class ACE_Export ACE_HR_Time_Policy
+{
+public:
+ /// Return the current time according to this policy
+ ACE_Time_Value_T<ACE_HR_Time_Policy> operator() () const;
+
+ /// Noop. Just here to satisfy backwards compatibility demands.
+ void set_gettimeofday (ACE_Time_Value (*gettimeofday)(void));
+};
+
+/**
+ * @class ACE_FPointer_Timer_Policy
+ *
+ * @brief Implement a time policy based on a function pointer.
+ *
+ * This time policy allows dynamic changes to the source of time by
+ * using a function pointer.
+ */
+class ACE_Export ACE_FPointer_Time_Policy
+{
+public:
+ /**
+ * @brief Default constructor uses ACE_OS::gettimeofday()
+ *
+ * ACE_T requires a default constructor that leaves the
+ * policy in a functional state. Therefore, a null pointer would
+ * not be desirable, in other words, we need a non-trivial default
+ * constructor.
+ */
+ ACE_FPointer_Time_Policy();
+
+ /**
+ * @typedef FPtr
+ *
+ * Short-hand for the right type of pointer to function.
+ */
+ typedef ACE_Time_Value (*FPtr)();
+
+ /**
+ * @brief Constructor from a pointer to function.
+ *
+ * Construct from a pointer to function.
+ */
+ ACE_FPointer_Time_Policy(FPtr f);
+
+ /// Return the current time according to this policy
+ ACE_Time_Value_T<ACE_FPointer_Time_Policy> operator()() const;
+
+ /// Satisfy backwards compatibility demands.
+ void set_gettimeofday (ACE_Time_Value (*gettimeofday)(void));
+private:
+ FPtr function_;
+};
+
+class ACE_Dynamic_Time_Policy_Base; // forward decl
+
+/**
+ * @class ACE_Delegating_Time_Policy
+ *
+ * @brief Implement a time policy that delegates to a dynamic
+ * time policy.
+ */
+class ACE_Export ACE_Delegating_Time_Policy
+{
+public:
+ ACE_Delegating_Time_Policy (ACE_Dynamic_Time_Policy_Base const * delegate = 0);
+
+ /// Return the current time according to this policy
+ ACE_Time_Value_T<ACE_Delegating_Time_Policy> operator()() const;
+
+ /// Set delegate
+ void set_delegate (ACE_Dynamic_Time_Policy_Base const * delegate);
+
+ /// Copy policy
+ ACE_Delegating_Time_Policy& operator =(ACE_Delegating_Time_Policy const & pol);
+
+ /// Noop. Just here to satisfy backwards compatibility demands.
+ void set_gettimeofday (ACE_Time_Value (*gettimeofday)(void));
+private:
+ ACE_Dynamic_Time_Policy_Base const * delegate_;
+};
+
+/**
+ * @class ACE_Dynamic_Time_Policy_base
+ *
+ * @brief Abstract base class for dynamically loaded and/or shared
+ * time policies.
+ *
+ */
+class ACE_Export ACE_Dynamic_Time_Policy_Base
+{
+public:
+ virtual ~ACE_Dynamic_Time_Policy_Base ();
+
+ /// Return the current time according to this policy
+ ACE_Time_Value_T<ACE_Delegating_Time_Policy> operator()() const;
+
+ /// Noop. Just here to satisfy backwards compatibility demands.
+ void set_gettimeofday (ACE_Time_Value (*gettimeofday)(void));
+protected:
+ /// Return the current time according to policy implementation.
+ virtual ACE_Time_Value_T<ACE_Delegating_Time_Policy> gettimeofday () const = 0;
+};
+
+/// Temporarily, for backwards compatibility reasons, this will
+/// be the default time policy. In time to be replaced by
+/// ACE_System_Time_Policy.
+typedef ACE_FPointer_Time_Policy ACE_Default_Time_Policy;
+
+#if defined ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT
+template class ACE_Export ACE_Time_Value_T<ACE_System_Time_Policy>;
+template class ACE_Export ACE_Time_Value_T<ACE_HR_Time_Policy>;
+template class ACE_Export ACE_Time_Value_T<ACE_FPointer_Time_Policy>;
+template class ACE_Export ACE_Time_Value_T<ACE_Delegating_Time_Policy>;
+#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_EXPORT */
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/Time_Policy.inl"
+#endif /* __ACE_INLINE__ */
+
+#include /**/ "ace/post.h"
+#endif /* ACE_TIME_POLICY_H */
diff --git a/dep/acelite/ace/Time_Policy.inl b/dep/acelite/ace/Time_Policy.inl
new file mode 100644
index 00000000000..b59a0f675d2
--- /dev/null
+++ b/dep/acelite/ace/Time_Policy.inl
@@ -0,0 +1,95 @@
+// -*- C++ -*-
+//
+// $Id: Time_Policy.inl 96061 2012-08-16 09:36:07Z mcorino $
+
+#include "ace/OS_NS_sys_time.h"
+#include "ace/High_Res_Timer.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+ACE_INLINE ACE_Time_Value_T<ACE_System_Time_Policy>
+ACE_System_Time_Policy::operator()() const
+{
+ return ACE_Time_Value_T<ACE_System_Time_Policy> (ACE_OS::gettimeofday());
+}
+
+ACE_INLINE void
+ACE_System_Time_Policy::set_gettimeofday (ACE_Time_Value (*)(void))
+{
+}
+
+ACE_INLINE ACE_Time_Value_T<ACE_HR_Time_Policy>
+ACE_HR_Time_Policy::operator()() const
+{
+ return ACE_Time_Value_T<ACE_HR_Time_Policy> (ACE_High_Res_Timer::gettimeofday_hr ());
+}
+
+ACE_INLINE void
+ACE_HR_Time_Policy::set_gettimeofday (ACE_Time_Value (*)(void))
+{
+}
+
+ACE_INLINE
+ACE_FPointer_Time_Policy::ACE_FPointer_Time_Policy()
+ : function_(ACE_OS::gettimeofday)
+{
+}
+
+ACE_INLINE
+ACE_FPointer_Time_Policy::
+ACE_FPointer_Time_Policy(ACE_FPointer_Time_Policy::FPtr f)
+ : function_(f)
+{
+}
+
+ACE_INLINE ACE_Time_Value_T<ACE_FPointer_Time_Policy>
+ACE_FPointer_Time_Policy::operator()() const
+{
+ return ACE_Time_Value_T<ACE_FPointer_Time_Policy> ((*this->function_)(), *this);
+}
+
+ACE_INLINE void
+ACE_FPointer_Time_Policy::set_gettimeofday (ACE_Time_Value (*f)(void))
+{
+ this->function_ = f;
+}
+
+ACE_INLINE ACE_Time_Value_T<ACE_Delegating_Time_Policy>
+ACE_Dynamic_Time_Policy_Base::operator()() const
+{
+ return this->gettimeofday ();
+}
+
+ACE_INLINE void
+ACE_Dynamic_Time_Policy_Base::set_gettimeofday (ACE_Time_Value (*)(void))
+{
+}
+
+ACE_INLINE ACE_Time_Value_T<ACE_Delegating_Time_Policy>
+ACE_Delegating_Time_Policy::operator()() const
+{
+ return (*this->delegate_) ();
+}
+
+ACE_INLINE void
+ACE_Delegating_Time_Policy::set_gettimeofday (ACE_Time_Value (*)(void))
+{
+}
+
+ACE_INLINE void
+ACE_Delegating_Time_Policy::set_delegate (ACE_Dynamic_Time_Policy_Base const * delegate)
+{
+ if (delegate != 0)
+ {
+ this->delegate_ = delegate;
+ }
+}
+
+ACE_INLINE ACE_Delegating_Time_Policy&
+ACE_Delegating_Time_Policy::operator =(ACE_Delegating_Time_Policy const & pol)
+{
+ this->delegate_ = pol.delegate_;
+ return *this;
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/Time_Policy_T.cpp b/dep/acelite/ace/Time_Policy_T.cpp
new file mode 100644
index 00000000000..6845131aa21
--- /dev/null
+++ b/dep/acelite/ace/Time_Policy_T.cpp
@@ -0,0 +1,27 @@
+// $Id: Time_Policy_T.cpp 96061 2012-08-16 09:36:07Z mcorino $
+
+#ifndef ACE_TIME_POLICY_T_CPP
+#define ACE_TIME_POLICY_T_CPP
+
+#include "ace/Time_Policy_T.h"
+
+#if !defined (__ACE_INLINE__)
+#include "ace/Time_Policy_T.inl"
+#endif /* __ACE_INLINE__ */
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+template <typename TIME_POLICY>
+ACE_Time_Policy_T<TIME_POLICY>::~ACE_Time_Policy_T ()
+{
+}
+
+template <typename TIME_POLICY> ACE_Time_Value_T<ACE_Delegating_Time_Policy>
+ACE_Time_Policy_T<TIME_POLICY>::gettimeofday () const
+{
+ return ACE_Time_Value_T<ACE_Delegating_Time_Policy> (this->time_policy_ (), ACE_Delegating_Time_Policy (this));
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_TIME_POLICY_T_CPP */
diff --git a/dep/acelite/ace/Time_Policy_T.h b/dep/acelite/ace/Time_Policy_T.h
new file mode 100644
index 00000000000..bde0c5c45bc
--- /dev/null
+++ b/dep/acelite/ace/Time_Policy_T.h
@@ -0,0 +1,77 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Time_Policy_T.h
+ *
+ * $Id: Time_Policy_T.h 96061 2012-08-16 09:36:07Z mcorino $
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+//=============================================================================
+
+#ifndef ACE_TIME_POLICY_T_H
+#define ACE_TIME_POLICY_T_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_Policy.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+/**
+ * @class ACE_Time_Policy_T
+ *
+ * @brief Template class implementing a dynamic time policy based on
+ * another time policy
+ *
+ */
+template <typename TIME_POLICY>
+class ACE_Time_Policy_T : public ACE_Dynamic_Time_Policy_Base
+{
+public:
+ ACE_Time_Policy_T (TIME_POLICY const & time_policy = TIME_POLICY());
+ virtual ~ACE_Time_Policy_T ();
+
+ /// Return the current time according to this policy
+ ACE_Time_Value_T<ACE_Delegating_Time_Policy> operator()() const;
+
+ /// Allows applications to control how the timer queue gets the time
+ /// of day.
+ void set_time_policy(TIME_POLICY const & time_policy);
+
+ /// Noop. Just here to satisfy backwards compatibility demands.
+ void set_gettimeofday (ACE_Time_Value (*gettimeofday)(void));
+protected:
+ /// Return the current time according to policy implementation.
+ virtual ACE_Time_Value_T<ACE_Delegating_Time_Policy> gettimeofday () const;
+
+private:
+ /// The policy to return the current time of day
+ TIME_POLICY time_policy_;
+};
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#include /**/ "ace/post.h"
+
+#if defined (__ACE_INLINE__)
+#include "ace/Time_Policy_T.inl"
+#endif /* __ACE_INLINE__ */
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "ace/Time_Policy_T.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("Time_Policy_T.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+
+#endif /* ACE_TIME_POLICY_T_H */
diff --git a/dep/acelite/ace/Time_Policy_T.inl b/dep/acelite/ace/Time_Policy_T.inl
new file mode 100644
index 00000000000..23a07813a6c
--- /dev/null
+++ b/dep/acelite/ace/Time_Policy_T.inl
@@ -0,0 +1,32 @@
+// -*- C++ -*-
+//
+// $Id: Time_Policy_T.inl 96066 2012-08-16 12:45:46Z mcorino $
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+template <typename TIME_POLICY>
+ACE_INLINE
+ACE_Time_Policy_T<TIME_POLICY>::ACE_Time_Policy_T (TIME_POLICY const & time_policy)
+ : time_policy_ (time_policy)
+{
+}
+
+template <typename TIME_POLICY>
+ACE_INLINE ACE_Time_Value_T<ACE_Delegating_Time_Policy>
+ACE_Time_Policy_T<TIME_POLICY>::operator() () const
+{
+ return this->gettimeofday ();
+}
+
+template <typename TIME_POLICY> ACE_INLINE void
+ACE_Time_Policy_T<TIME_POLICY>::set_gettimeofday (ACE_Time_Value (*)(void))
+{
+}
+
+template <typename TIME_POLICY> ACE_INLINE void
+ACE_Time_Policy_T<TIME_POLICY>::set_time_policy(TIME_POLICY const & time_policy)
+{
+ this->time_policy_ = time_policy;
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/Time_Value.cpp b/dep/acelite/ace/Time_Value.cpp
index 045df4d4e66..0b13cdedac9 100644
--- a/dep/acelite/ace/Time_Value.cpp
+++ b/dep/acelite/ace/Time_Value.cpp
@@ -1,4 +1,4 @@
-// $Id: Time_Value.cpp 92069 2010-09-28 11:38:59Z johnnyw $
+// $Id: Time_Value.cpp 96061 2012-08-16 09:36:07Z mcorino $
#include "ace/Time_Value.h"
@@ -9,6 +9,7 @@
#include "ace/Numeric_Limits.h"
#include "ace/If_Then_Else.h"
#include "ace/OS_NS_math.h"
+#include "ace/Time_Policy.h"
#ifdef ACE_HAS_CPP98_IOSTREAMS
#include <ostream>
@@ -33,6 +34,9 @@ const ACE_Time_Value ACE_Time_Value::max_time (
ACE_ALLOC_HOOK_DEFINE (ACE_Time_Value)
+ACE_Time_Value::~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
@@ -81,13 +85,8 @@ ACE_Time_Value::operator -- (void)
///
/// 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)
@@ -98,15 +97,7 @@ ACE_Time_Value::ACE_Time_Value (const FILETIME &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 = (suseconds_t)((LL_100ns % ((ACE_UINT32)(10000 * 1000))) / 10);
-#else
+ // Initializes the ACE_Time_Value object from a Win32 FILETIME
// Don't use a struct initializer, gcc don't like it.
ULARGE_INTEGER _100ns;
_100ns.LowPart = file_time.dwLowDateTime;
@@ -115,10 +106,10 @@ void ACE_Time_Value::set (const FILETIME &file_time)
_100ns.QuadPart -= ACE_Time_Value::FILETIME_to_timval_skew;
// Convert 100ns units to seconds;
- this->tv_.tv_sec = (long) (_100ns.QuadPart / (10000 * 1000));
+ this->tv_.tv_sec = (time_t) (_100ns.QuadPart / (10000 * 1000));
// Convert remainder to microseconds;
this->tv_.tv_usec = (suseconds_t) ((_100ns.QuadPart % (10000 * 1000)) / 10);
-#endif // ACE_LACKS_LONGLONG_T
+
this->normalize ();
}
@@ -128,15 +119,6 @@ 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) +
@@ -144,13 +126,40 @@ ACE_Time_Value::operator FILETIME () const
file_time.dwLowDateTime = _100ns.LowPart;
file_time.dwHighDateTime = _100ns.HighPart;
-#endif //ACE_LACKS_LONGLONG_T
return file_time;
}
-
#endif /* ACE_WIN32 */
+ACE_Time_Value
+ACE_Time_Value::now () const
+{
+ ACE_System_Time_Policy systp;
+ return systp ();
+}
+
+ACE_Time_Value
+ACE_Time_Value::to_relative_time () const
+{
+ ACE_System_Time_Policy systp;
+ return (*this) - systp ();
+}
+
+ACE_Time_Value
+ACE_Time_Value::to_absolute_time () const
+{
+ ACE_System_Time_Policy systp;
+ return (*this) + systp ();
+}
+
+ACE_Time_Value *
+ACE_Time_Value::duplicate () const
+{
+ ACE_Time_Value * tmp = 0;
+ ACE_NEW_RETURN (tmp, ACE_Time_Value (*this), 0);
+ return tmp;
+}
+
void
ACE_Time_Value::dump (void) const
{
@@ -213,13 +222,13 @@ ACE_Time_Value::normalize (bool saturate)
this->tv_.tv_usec += ACE_ONE_SECOND_IN_USECS;
}
// tv_sec in qnxnto is unsigned
-#if !defined ( __QNXNTO__)
+#if !defined ( __QNX__)
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;
}
-#endif /* __QNXNTO__ */
+#endif /* __QNX__ */
}
diff --git a/dep/acelite/ace/Time_Value.h b/dep/acelite/ace/Time_Value.h
index f92c8c7f7f5..522b1e0b0ae 100644
--- a/dep/acelite/ace/Time_Value.h
+++ b/dep/acelite/ace/Time_Value.h
@@ -4,7 +4,7 @@
/**
* @file Time_Value.h
*
- * $Id: Time_Value.h 90683 2010-06-17 22:07:42Z shuston $
+ * $Id: Time_Value.h 96061 2012-08-16 09:36:07Z mcorino $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
*/
@@ -35,17 +35,7 @@ suseconds_t const ACE_ONE_SECOND_IN_USECS = 1000000;
// needed to determine if iostreams are present
#include "ace/iosfwd.h"
-// This forward declaration is needed by the set() and FILETIME() functions
-#if defined (ACE_LACKS_LONGLONG_T)
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-class ACE_Export ACE_U_LongLong;
-ACE_END_VERSIONED_NAMESPACE_DECL
-#endif /* ACE_LACKS_LONGLONG_T */
-
-// -------------------------------------------------------------------
-
-ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-
/**
* @class ACE_Time_Value
@@ -90,6 +80,9 @@ public:
/// Construct the ACE_Time_Value object from a timespec_t.
explicit ACE_Time_Value (const timespec_t &t);
+ /// Destructor
+ virtual ~ACE_Time_Value ();
+
# if defined (ACE_WIN32)
/// Construct the ACE_Time_Value object from a Win32 FILETIME
explicit ACE_Time_Value (const FILETIME &ft);
@@ -250,7 +243,7 @@ public:
/// Subtract @a tv to this.
ACE_Time_Value &operator -= (const ACE_Time_Value &tv);
- /// Substract @a tv to this.
+ /// Subtract @a tv to this.
ACE_Time_Value &operator -= (time_t tv);
/**
@@ -330,6 +323,51 @@ public:
double d);
//@}
+ /// Get current time of day.
+ /**
+ * @return Time value representing current time of day.
+ *
+ * @note This method is overloaded in the time policy based template
+ * instantiations derived from this class. Allows for time policy
+ * aware time values.
+ */
+ virtual ACE_Time_Value now () const;
+
+ /// Converts absolute time value to time value relative to current time of day.
+ /**
+ * @return Relative time value.
+ *
+ * @note This method is overloaded in the time policy based template
+ * instantiations derived from this class. Allows for time policy
+ * aware time values.
+ * The developer is responsible for making sure this is an absolute
+ * time value compatible with the active time policy (which is system
+ * time for the base class).
+ */
+ virtual ACE_Time_Value to_relative_time () const;
+
+ /// Converts relative time value to absolute time value based on current time of day.
+ /**
+ * @return Absolute time value.
+ *
+ * @note This method is overloaded in the time policy based template
+ * instantiations derived from this class. Allows for time policy
+ * aware time values.
+ * The developer is responsible for making sure this is a relative
+ * time value. Current time of day is determined based on time policy
+ * (which is system time for the base class).
+ */
+ virtual ACE_Time_Value to_absolute_time () const;
+
+ /// Duplicates this time value (incl. time policy).
+ /**
+ * @return Dynamically allocated time value copy.
+ *
+ * @note The caller is responsible for freeing the copy when it's not needed
+ * anymore.
+ */
+ virtual ACE_Time_Value * duplicate () const;
+
/// Dump is a no-op.
/**
* The dump() method is a no-op. It's here for backwards compatibility
@@ -341,11 +379,7 @@ public:
# 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:
diff --git a/dep/acelite/ace/Time_Value.inl b/dep/acelite/ace/Time_Value.inl
index 8f7bf23d837..c0a16c1b50c 100644
--- a/dep/acelite/ace/Time_Value.inl
+++ b/dep/acelite/ace/Time_Value.inl
@@ -1,6 +1,6 @@
// -*- C++ -*-
//
-// $Id: Time_Value.inl 90689 2010-06-18 11:14:47Z shuston $
+// $Id: Time_Value.inl 95761 2012-05-15 18:23:04Z johnnyw $
#include "ace/Truncate.h"
@@ -58,23 +58,11 @@ ACE_INLINE void
ACE_Time_Value::set (time_t sec, suseconds_t usec)
{
// ACE_OS_TRACE ("ACE_Time_Value::set");
-# if defined (_WIN32_WCE) && (_WIN32_WCE == 0x600) && !defined (_USE_32BIT_TIME_T) && defined (_MSC_VER)
- // The WinCE 6.0 SDK ships with a timeval tv_sec member that uses long as type
- // not time_t. This resolves in compilation warnings because time_t
- // can be 64bit. Disable at this momemt the warning for just this method
- // else we get a compile warnings each time this inline file is included
- // this file.
-# pragma warning (push)
-# pragma warning (disable: 4244)
-# endif
this->tv_.tv_sec = sec;
-# if defined (_WIN32_WCE) && (_WIN32_WCE == 0x600) && !defined (_USE_32BIT_TIME_T) && defined (_MSC_VER)
-# pragma warning (pop)
-# endif
this->tv_.tv_usec = usec;
-#if __GNUC__
- if (__builtin_constant_p(sec) &&
- __builtin_constant_p(usec) &&
+#if __GNUC__ && !(__GNUC__ == 3 && __GNUC_MINOR__ == 4)
+ if ((__builtin_constant_p(sec) &
+ __builtin_constant_p(usec)) &&
(sec >= 0 && usec >= 0 && usec < ACE_ONE_SECOND_IN_USECS))
return;
#endif
@@ -85,7 +73,7 @@ ACE_INLINE void
ACE_Time_Value::set (double d)
{
// ACE_OS_TRACE ("ACE_Time_Value::set");
- long l = (long) d;
+ time_t l = (time_t) d;
this->tv_.tv_sec = l;
this->tv_.tv_usec = (suseconds_t) ((d - (double) l) * ACE_ONE_SECOND_IN_USECS + .5);
this->normalize ();
@@ -131,7 +119,7 @@ ACE_INLINE void
ACE_Time_Value::sec (time_t sec)
{
// ACE_OS_TRACE ("ACE_Time_Value::sec");
- this->tv_.tv_sec = ACE_Utils::truncate_cast<long> (sec);
+ this->tv_.tv_sec = sec;
}
/// Converts from Time_Value format into milli-seconds format.
@@ -222,15 +210,7 @@ ACE_INLINE void
ACE_Time_Value::to_usec (ACE_UINT64 & usec) const
{
// ACE_OS_TRACE ("ACE_Time_Value::to_usec");
-
-#if defined (ACE_LACKS_UNSIGNEDLONGLONG_T)
- usec = ACE_U_LongLong (static_cast<long long> (this->tv_.tv_sec));
-#elif defined (ACE_LACKS_LONGLONG_T)
- // No native 64-bit type, meaning time_t is most likely 32 bits.
- usec = ACE_U_LongLong (this->tv_.tv_sec);
-#else
usec = static_cast<ACE_UINT64> (this->tv_.tv_sec);
-#endif /* ACE_LACKS_LONGLONG_T */
usec *= 1000000;
usec += this->tv_.tv_usec;
}
diff --git a/dep/acelite/ace/Time_Value_T.cpp b/dep/acelite/ace/Time_Value_T.cpp
new file mode 100644
index 00000000000..e7fdec98762
--- /dev/null
+++ b/dep/acelite/ace/Time_Value_T.cpp
@@ -0,0 +1,52 @@
+// $Id: Time_Value_T.cpp 96061 2012-08-16 09:36:07Z mcorino $
+
+#ifndef ACE_TIME_VALUE_T_CPP
+#define ACE_TIME_VALUE_T_CPP
+
+#include "ace/Time_Value_T.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#if !defined (__ACE_INLINE__)
+#include "ace/Time_Value_T.inl"
+#endif /* __ACE_INLINE__ */
+
+#include "ace/OS_Memory.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+template <class TIME_POLICY>
+ACE_Time_Value
+ACE_Time_Value_T<TIME_POLICY>::now () const
+{
+ return this->time_policy_ ();
+}
+
+template <class TIME_POLICY>
+ACE_Time_Value
+ACE_Time_Value_T<TIME_POLICY>::to_relative_time () const
+{
+ return (*this) - this->time_policy_ ();
+}
+
+template <class TIME_POLICY>
+ACE_Time_Value
+ACE_Time_Value_T<TIME_POLICY>::to_absolute_time () const
+{
+ return (*this) + this->time_policy_ ();
+}
+
+template <class TIME_POLICY>
+ACE_Time_Value *
+ACE_Time_Value_T<TIME_POLICY>::duplicate () const
+{
+ ACE_Time_Value_T<TIME_POLICY> * tmp = 0;
+ ACE_NEW_RETURN (tmp, ACE_Time_Value_T<TIME_POLICY> (*this), 0);
+ return tmp;
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_TIME_VALUE_T_CPP */
diff --git a/dep/acelite/ace/Time_Value_T.h b/dep/acelite/ace/Time_Value_T.h
new file mode 100644
index 00000000000..615d5820a50
--- /dev/null
+++ b/dep/acelite/ace/Time_Value_T.h
@@ -0,0 +1,194 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Time_Value_T.h
+ *
+ * $Id: Time_Value_T.h 96061 2012-08-16 09:36:07Z mcorino $
+ *
+ * @author Martin Corino <mcorino@remedy.nl>
+ */
+//=============================================================================
+
+#ifndef ACE_TIME_VALUE_T_H
+#define ACE_TIME_VALUE_T_H
+
+#include /**/ "ace/pre.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Time_Value.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+/**
+ * @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>.
+ */
+template <class TIME_POLICY>
+class ACE_Time_Value_T : public ACE_Time_Value
+{
+public:
+ typedef TIME_POLICY time_policy_t;
+
+ // = Initialization methods.
+
+ /// Default Constructor.
+ ACE_Time_Value_T (void) {}
+
+ /// Constructor.
+ explicit ACE_Time_Value_T (time_t sec, suseconds_t usec = 0)
+ : ACE_Time_Value (sec, usec) {}
+
+ // = Methods for converting to/from various time formats.
+
+ /// Construct the ACE_Time_Value from a timeval.
+ explicit ACE_Time_Value_T (const struct timeval &t)
+ : ACE_Time_Value (t) {}
+
+ /// Construct the ACE_Time_Value object from a timespec_t.
+ explicit ACE_Time_Value_T (const timespec_t &t)
+ : ACE_Time_Value (t) {}
+
+ /// Construct from ACE_Time_Value_T<TIME_POLICY>
+ ACE_Time_Value_T(const ACE_Time_Value_T<TIME_POLICY>& tv)
+ : ACE_Time_Value (tv),
+ time_policy_ (tv.time_policy_)
+ {}
+
+ /// Construct from ACE_Time_Value
+ explicit ACE_Time_Value_T(const ACE_Time_Value& tv,
+ const TIME_POLICY& tp = TIME_POLICY ())
+ : ACE_Time_Value (tv),
+ time_policy_ (tp)
+ {}
+
+ /// Destructor
+ virtual ~ACE_Time_Value_T () {}
+
+ /// Add @a tv to this.
+ ACE_Time_Value_T<TIME_POLICY> &operator += (const ACE_Time_Value &tv);
+
+ /// Add @a tv to this.
+ ACE_Time_Value_T<TIME_POLICY> &operator += (time_t tv);
+
+ /// Assign @ tv to this
+ ACE_Time_Value_T<TIME_POLICY> &operator = (const ACE_Time_Value_T<TIME_POLICY> &tv);
+
+ /// Assign @ tv to this
+ ACE_Time_Value_T<TIME_POLICY> &operator = (const ACE_Time_Value &tv);
+
+ /// Assign @ tv to this
+ ACE_Time_Value_T<TIME_POLICY> &operator = (time_t tv);
+
+ /// Subtract @a tv to this.
+ ACE_Time_Value_T<TIME_POLICY> &operator -= (const ACE_Time_Value &tv);
+
+ /// Subtract @a tv to this.
+ ACE_Time_Value_T<TIME_POLICY> &operator -= (time_t tv);
+
+ /**
+ \brief Multiply the time value by the @a d factor.
+ \note The result of the operator is valid for results from range
+ < (ACE_INT32_MIN, -999999), (ACE_INT32_MAX, 999999) >. Result
+ outside this range are saturated to a limit.
+ */
+ ACE_Time_Value_T<TIME_POLICY> &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_T<TIME_POLICY> 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_T<TIME_POLICY> &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_T<TIME_POLICY> 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_T<TIME_POLICY> &operator-- (void);
+
+ /// Get current time of day according to time policy.
+ /**
+ * @return Time value representing current time of day according to time policy.
+ */
+ virtual ACE_Time_Value now () const;
+
+ /// Converts absolute time value to time value relative to current time of day.
+ /**
+ * @return Relative time value.
+ *
+ * @note This method uses it's time_policy_ member to get the current
+ * time of day.
+ * The developer is responsible for making sure this is an absolute
+ * time value compatible with the active time policy.
+ * Note that the returned time value has no notion of the time policy
+ * on which it is based anymore.
+ */
+ virtual ACE_Time_Value to_relative_time () const;
+
+ /// Converts relative time value to absolute time value based on current time of day.
+ /**
+ * @return Absolute time value.
+ *
+ * @note This method uses it's time_policy_ member to get the current
+ * time of day.
+ * The developer is responsible for making sure this is a relative
+ * time value.
+ * Note that the returned time value has no notion of the time policy
+ * on which it is based anymore.
+ */
+ virtual ACE_Time_Value to_absolute_time () const;
+
+ /// Duplicates this time value (incl. time policy).
+ /**
+ * @return Dynamically allocated time value copy.
+ *
+ * @note The caller is responsible for freeing the copy when it's not needed
+ * anymore.
+ */
+ virtual ACE_Time_Value * duplicate () const;
+
+private:
+ TIME_POLICY time_policy_;
+};
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/Time_Value_T.inl"
+#endif /* __ACE_INLINE__ */
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "ace/Time_Value_T.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("Time_Value_T.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#include /**/ "ace/post.h"
+#endif /* ACE_TIME_VALUE_T_H */
diff --git a/dep/acelite/ace/Time_Value_T.inl b/dep/acelite/ace/Time_Value_T.inl
new file mode 100644
index 00000000000..e74f16b9194
--- /dev/null
+++ b/dep/acelite/ace/Time_Value_T.inl
@@ -0,0 +1,94 @@
+// -*- C++ -*-
+//
+// $Id: Time_Value_T.inl 96061 2012-08-16 09:36:07Z mcorino $
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+template <class TIME_POLICY>
+ACE_Time_Value_T<TIME_POLICY> &ACE_Time_Value_T<TIME_POLICY>::operator += (const ACE_Time_Value &tv)
+{
+ this->ACE_Time_Value::operator +=(tv);
+ return *this;
+}
+
+template <class TIME_POLICY>
+ACE_Time_Value_T<TIME_POLICY> &ACE_Time_Value_T<TIME_POLICY>::operator += (time_t tv)
+{
+ this->ACE_Time_Value::operator +=(tv);
+ return *this;
+}
+
+template <class TIME_POLICY>
+ACE_Time_Value_T<TIME_POLICY> &ACE_Time_Value_T<TIME_POLICY>::operator = (const ACE_Time_Value_T<TIME_POLICY> &tv)
+{
+ this->time_policy_ = tv.time_policy_;
+ this->ACE_Time_Value::operator =(tv);
+ return *this;
+}
+
+template <class TIME_POLICY>
+ACE_Time_Value_T<TIME_POLICY> &ACE_Time_Value_T<TIME_POLICY>::operator = (const ACE_Time_Value &tv)
+{
+ this->ACE_Time_Value::operator =(tv);
+ return *this;
+}
+
+template <class TIME_POLICY>
+ACE_Time_Value_T<TIME_POLICY> &ACE_Time_Value_T<TIME_POLICY>::operator = (time_t tv)
+{
+ this->ACE_Time_Value::operator =(tv);
+ return *this;
+}
+
+template <class TIME_POLICY>
+ACE_Time_Value_T<TIME_POLICY> &ACE_Time_Value_T<TIME_POLICY>::operator -= (const ACE_Time_Value &tv)
+{
+ this->ACE_Time_Value::operator -=(tv);
+ return *this;
+}
+
+template <class TIME_POLICY>
+ACE_Time_Value_T<TIME_POLICY> &ACE_Time_Value_T<TIME_POLICY>::operator -= (time_t tv)
+{
+ this->ACE_Time_Value::operator -=(tv);
+ return *this;
+}
+
+template <class TIME_POLICY>
+ACE_Time_Value_T<TIME_POLICY> &ACE_Time_Value_T<TIME_POLICY>::operator *= (double d)
+{
+ this->ACE_Time_Value::operator *=(d);
+ return *this;
+}
+
+template <class TIME_POLICY>
+ACE_Time_Value_T<TIME_POLICY> ACE_Time_Value_T<TIME_POLICY>::operator++ (int)
+{
+ ACE_Time_Value_T<TIME_POLICY> tv (*this);
+ ++*this;
+ return tv;
+}
+
+template <class TIME_POLICY>
+ACE_Time_Value_T<TIME_POLICY> &ACE_Time_Value_T<TIME_POLICY>::operator++ (void)
+{
+ this->ACE_Time_Value::operator ++();
+ return *this;
+}
+
+template <class TIME_POLICY>
+ACE_Time_Value_T<TIME_POLICY> ACE_Time_Value_T<TIME_POLICY>::operator-- (int)
+{
+ ACE_Time_Value_T<TIME_POLICY> tv (*this);
+ --*this;
+ return tv;
+}
+
+template <class TIME_POLICY>
+ACE_Time_Value_T<TIME_POLICY> &ACE_Time_Value_T<TIME_POLICY>::operator-- (void)
+{
+ this->ACE_Time_Value::operator --();
+ return *this;
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/Timeprobe_T.cpp b/dep/acelite/ace/Timeprobe_T.cpp
index d23b7b8b869..f440c7edab0 100644
--- a/dep/acelite/ace/Timeprobe_T.cpp
+++ b/dep/acelite/ace/Timeprobe_T.cpp
@@ -1,4 +1,4 @@
-// $Id: Timeprobe_T.cpp 80826 2008-03-04 14:51:23Z wotte $
+// $Id: Timeprobe_T.cpp 95743 2012-05-13 12:29:28Z johnnyw $
#ifndef ACE_TIMEPROBE_T_CPP
#define ACE_TIMEPROBE_T_CPP
@@ -250,7 +250,8 @@ ACE_Timeprobe_Ex<ACE_LOCK, ALLOCATOR>::print_times (void)
"thread",
"usec"));
- double gsf = ACE_High_Res_Timer::global_scale_factor ();
+ ACE_High_Res_Timer::global_scale_factor_type gsf =
+ ACE_High_Res_Timer::global_scale_factor ();
u_long i, j;
// First element
diff --git a/dep/acelite/ace/Timer_Hash.h b/dep/acelite/ace/Timer_Hash.h
index b381419da44..3d786a1a2d1 100644
--- a/dep/acelite/ace/Timer_Hash.h
+++ b/dep/acelite/ace/Timer_Hash.h
@@ -4,7 +4,7 @@
/**
* @file Timer_Hash.h
*
- * $Id: Timer_Hash.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: Timer_Hash.h 95335 2011-12-15 13:13:17Z msmit $
*
* @author Darrell Brunsch <brunsch@cs.wustl.edu>
*/
@@ -16,6 +16,7 @@
#include /**/ "ace/pre.h"
#include "ace/Timer_Hash_T.h"
+#include "ace/Event_Handler_Handle_Timeout_Upcall.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
@@ -29,7 +30,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// 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_Event_Handler_Handle_Timeout_Upcall,
ACE_SYNCH_RECURSIVE_MUTEX>
ACE_Hash_Upcall;
@@ -45,26 +46,27 @@ typedef ACE_Timer_Heap_T <ACE_Event_Handler *,
typedef ACE_Timer_Hash_T<ACE_Event_Handler *,
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>,
+ ACE_Event_Handler_Handle_Timeout_Upcall,
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_Event_Handler_Handle_Timeout_Upcall,
ACE_SYNCH_RECURSIVE_MUTEX,
- ACE_Hash_Timer_List>
+ ACE_Hash_Timer_List,
+ ACE_Default_Time_Policy>
ACE_Timer_Hash_Iterator;
typedef ACE_Timer_Hash_T<ACE_Event_Handler *,
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>,
+ ACE_Event_Handler_Handle_Timeout_Upcall,
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_Event_Handler_Handle_Timeout_Upcall,
ACE_SYNCH_RECURSIVE_MUTEX,
ACE_Hash_Timer_Heap>
ACE_Timer_Hash_Heap_Iterator;
diff --git a/dep/acelite/ace/Timer_Hash_T.cpp b/dep/acelite/ace/Timer_Hash_T.cpp
index 3bc82b8a194..55bbdb86d53 100644
--- a/dep/acelite/ace/Timer_Hash_T.cpp
+++ b/dep/acelite/ace/Timer_Hash_T.cpp
@@ -1,4 +1,4 @@
-// $Id: Timer_Hash_T.cpp 92069 2010-09-28 11:38:59Z johnnyw $
+// $Id: Timer_Hash_T.cpp 95595 2012-03-07 13:33:25Z johnnyw $
#ifndef ACE_TIMER_HASH_T_CPP
#define ACE_TIMER_HASH_T_CPP
@@ -20,8 +20,13 @@ class Hash_Token
{
public:
// This constructor is required by ACE_Locked_Free_List::alloc.
- Hash_Token (void)
- {}
+ Hash_Token (void) :
+ act_ (0),
+ pos_ (0),
+ orig_id_ (0),
+ next_ (0)
+ {
+ }
Hash_Token<TYPE> *get_next (void)
{
@@ -171,18 +176,24 @@ ACE_Timer_Hash_Upcall<TYPE, FUNCTOR, ACE_LOCK>::deletion (
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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET, typename TIME_POLICY>
+ACE_Timer_Hash_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY>::ACE_Timer_Hash_Iterator_T (Hash & hash)
: timer_hash_ (hash)
{
this->first ();
// Nothing
}
+template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET, typename TIME_POLICY>
+ACE_Timer_Hash_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY>::~ACE_Timer_Hash_Iterator_T ()
+{
+ // 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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET, typename TIME_POLICY> void
+ACE_Timer_Hash_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY>::first (void)
{
for (this->position_ = 0;
this->position_ < this->timer_hash_.table_size_;
@@ -204,8 +215,8 @@ ACE_Timer_Hash_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::first (void)
// 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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET, typename TIME_POLICY> void
+ACE_Timer_Hash_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY>::next (void)
{
if (this->isdone ())
return;
@@ -235,17 +246,17 @@ ACE_Timer_Hash_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::next (void)
// Returns true when we are at the end (when bucket_item_ == 0)
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET> bool
-ACE_Timer_Hash_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::isdone (void) const
+template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET, typename TIME_POLICY> bool
+ACE_Timer_Hash_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY>::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>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET, typename TIME_POLICY>
ACE_Timer_Node_T<TYPE> *
-ACE_Timer_Hash_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::item (void)
+ACE_Timer_Hash_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY>::item (void)
{
if (this->isdone ())
return 0;
@@ -253,9 +264,9 @@ ACE_Timer_Hash_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::item (void)
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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET, typename TIME_POLICY>
+ACE_Timer_Queue_Iterator_T<TYPE> &
+ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY>::iter (void)
{
this->iterator_->first ();
return *this->iterator_;
@@ -263,12 +274,13 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::iter (void)
// 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 (
+template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET, typename TIME_POLICY>
+ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY>::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),
+ ACE_Free_List<ACE_Timer_Node_T <TYPE> > *freelist,
+ TIME_POLICY const & time_policy)
+ : Base_Timer_Queue (upcall_functor, freelist, time_policy),
size_ (0),
table_size_ (table_size),
table_functor_ (this),
@@ -283,16 +295,14 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::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);
+ this->free_list_,
+ time_policy));
}
ACE_NEW (iterator_,
@@ -300,11 +310,12 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::ACE_Timer_Hash_T (
}
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET>
-ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::ACE_Timer_Hash_T (
+template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET, typename TIME_POLICY>
+ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY>::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),
+ ACE_Free_List<ACE_Timer_Node_T <TYPE> > *freelist,
+ TIME_POLICY const & time_policy)
+ : Base_Timer_Queue (upcall_functor, freelist, time_policy),
size_ (0),
table_size_ (ACE_DEFAULT_TIMER_HASH_TABLE_SIZE),
table_functor_ (this),
@@ -319,17 +330,14 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::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);
+ this->free_list_,
+ time_policy));
}
ACE_NEW (iterator_,
@@ -338,26 +346,49 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::ACE_Timer_Hash_T (
// 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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET, typename TIME_POLICY>
+ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY>::~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_;
+ this->close ();
+
for (size_t i = 0;
i < this->table_size_;
++i)
delete this->table_[i];
+
delete [] this->table_;
}
+template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET, typename TIME_POLICY> int
+ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY>::close (void)
+{
+ ACE_TRACE ("ACE_Timer_Hash_T::close");
+ ACE_MT (ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, -1));
+
+ // Remove all remaining items from the queue.
+ while (!this->is_empty())
+ {
+ ACE_Timer_Node_T<TYPE>* n = this->remove_first();
+ this->upcall_functor ().deletion (*this,
+ n->get_type(),
+ n->get_act());
+ this->free_node (n);
+ }
+
+ // leave the rest to destructor
+ return 0;
+}
+
// Checks if queue is empty.
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET> bool
-ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::is_empty (void) const
+template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET, typename TIME_POLICY> bool
+ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY>::is_empty (void) const
{
ACE_TRACE ("ACE_Timer_Hash_T::is_empty");
return this->table_[this->earliest_position_]->is_empty ();
@@ -365,16 +396,16 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::is_empty (void) const
// Returns earliest time in a non-empty bucket
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET, typename TIME_POLICY>
const ACE_Time_Value &
-ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::earliest_time (void) const
+ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY>::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
+template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET, typename TIME_POLICY> void
+ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY>::dump (void) const
{
#if defined (ACE_HAS_DUMP)
ACE_TRACE ("ACE_Timer_Hash_T::dump");
@@ -394,9 +425,9 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::dump (void) const
// Reschedule a periodic timer. This function must be called with the
// mutex lock held.
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET, typename TIME_POLICY>
void
-ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::reschedule (
+ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY>::reschedule (
ACE_Timer_Node_T<TYPE> *expired)
{
ACE_TRACE ("ACE_Timer_Hash_T::reschedule");
@@ -423,7 +454,7 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::reschedule (
// then here schedule <expired> for deletion. Don't call
// this->free_node() because that will invalidate <h>
// and that's what user have as timer_id.
- ACE_Timer_Queue_T<TYPE,FUNCTOR,ACE_LOCK>::free_node (expired);
+ Base_Timer_Queue::free_node (expired);
if (this->table_[this->earliest_position_]->is_empty ()
|| this->table_[h->pos_]->earliest_time ()
@@ -434,9 +465,9 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::reschedule (
// 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>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET, typename TIME_POLICY>
long
-ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::schedule_i (
+ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY>::schedule_i (
const TYPE &type,
const void *act,
const ACE_Time_Value &future_time,
@@ -489,9 +520,9 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::schedule_i (
// Locate and update the inteval on the timer_id
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET, typename TIME_POLICY>
int
-ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::reset_interval (
+ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY>::reset_interval (
long timer_id,
const ACE_Time_Value & interval)
{
@@ -526,9 +557,9 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::reset_interval (
// Locate and remove the single <ACE_Event_Handler> with a value of
// @a timer_id from the correct table timer queue.
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET, typename TIME_POLICY>
int
-ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::cancel (long timer_id,
+ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY>::cancel (long timer_id,
const void **act,
int dont_call)
{
@@ -596,9 +627,9 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::cancel (long timer_id,
// Locate and remove all values of <type> from the timer queue.
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET, typename TIME_POLICY>
int
-ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::cancel (const TYPE &type,
+ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY>::cancel (const TYPE &type,
int dont_call)
{
ACE_TRACE ("ACE_Timer_Hash_T::cancel");
@@ -618,9 +649,7 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::cancel (const TYPE &type,
i < this->table_size_;
++i)
{
- ACE_Timer_Queue_Iterator_T<TYPE,
- ACE_Timer_Hash_Upcall<TYPE, FUNCTOR, ACE_LOCK>,
- ACE_Null_Mutex> &iter =
+ ACE_Timer_Queue_Iterator_T<TYPE> & iter =
this->table_[i]->iter ();
for (iter.first ();
@@ -680,8 +709,8 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::cancel (const TYPE &type,
// 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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET, typename TIME_POLICY> ACE_Timer_Node_T<TYPE> *
+ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY>::remove_first (void)
{
if (this->is_empty ())
return 0;
@@ -698,8 +727,8 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::remove_first (void)
// 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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET, typename TIME_POLICY> void
+ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY>::find_new_earliest (void)
{
for (size_t i = 0; i < this->table_size_; ++i)
if (!this->table_[i]->is_empty ())
@@ -711,8 +740,8 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::find_new_earliest (void)
// 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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET, typename TIME_POLICY> ACE_Timer_Node_T<TYPE> *
+ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY>::get_first (void)
{
ACE_TRACE ("ACE_Timer_Hash_T::get_first");
@@ -722,23 +751,22 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::get_first (void)
return this->table_[this->earliest_position_]->get_first ();
}
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET> void
-ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::free_node (ACE_Timer_Node_T<TYPE> *node)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET, typename TIME_POLICY> void
+ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY>::free_node (ACE_Timer_Node_T<TYPE> *node)
{
- ACE_Timer_Queue_T<TYPE,FUNCTOR,ACE_LOCK>::free_node (node);
+ Base_Timer_Queue::free_node (node);
Hash_Token<TYPE> *h =
reinterpret_cast<Hash_Token<TYPE> *> (const_cast<void *> (node->get_act ()));
this->token_list_.add (h);
}
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET> int
-ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::dispatch_info_i (const ACE_Time_Value &cur_time,
+template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET, typename TIME_POLICY> int
+ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY>::dispatch_info_i (const ACE_Time_Value &cur_time,
ACE_Timer_Node_Dispatch_Info_T<TYPE> &info)
{
int const result =
- ACE_Timer_Queue_T<TYPE,FUNCTOR,ACE_LOCK>::dispatch_info_i (cur_time,
- info);
+ Base_Timer_Queue::dispatch_info_i (cur_time, info);
if (result == 1)
{
@@ -753,16 +781,16 @@ ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>::dispatch_info_i (const ACE_Ti
// 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 ()
+template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET, typename TIME_POLICY> int
+ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY>::expire ()
{
- return ACE_Timer_Queue_T<TYPE,FUNCTOR,ACE_LOCK>::expire();
+ return Base_Timer_Queue::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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET, typename TIME_POLICY> int
+ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY>::expire (const ACE_Time_Value &cur_time)
{
ACE_TRACE ("ACE_Timer_Hash_T::expire");
diff --git a/dep/acelite/ace/Timer_Hash_T.h b/dep/acelite/ace/Timer_Hash_T.h
index b04e7cfbcf3..d634536e54e 100644
--- a/dep/acelite/ace/Timer_Hash_T.h
+++ b/dep/acelite/ace/Timer_Hash_T.h
@@ -4,7 +4,7 @@
/**
* @file Timer_Hash_T.h
*
- * $Id: Timer_Hash_T.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: Timer_Hash_T.h 95807 2012-06-01 12:44:19Z johnnyw $
*
* @author Darrell Brunsch <brunsch@cs.wustl.edu>
*/
@@ -25,7 +25,7 @@
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// Forward declaration.
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET, typename TIME_POLICY>
class ACE_Timer_Hash_T;
template <typename TYPE>
class Hash_Token;
@@ -40,6 +40,7 @@ class Hash_Token;
*/
template <class TYPE, class FUNCTOR, class ACE_LOCK>
class ACE_Timer_Hash_Upcall
+ : private ACE_Copy_Disabled
{
public:
typedef ACE_Timer_Queue_T<ACE_Event_Handler *,
@@ -103,10 +104,6 @@ public:
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> &))
};
/**
@@ -118,12 +115,15 @@ private:
* 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>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET, typename TIME_POLICY = ACE_Default_Time_Policy>
+class ACE_Timer_Hash_Iterator_T : public ACE_Timer_Queue_Iterator_T <TYPE>
{
public:
/// Constructor.
- ACE_Timer_Hash_Iterator_T (ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET> &);
+ typedef ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY> Hash;
+ ACE_Timer_Hash_Iterator_T (Hash &);
+
+ virtual ~ACE_Timer_Hash_Iterator_T ();
/// Positions the iterator at the earliest node in the Timer Queue
virtual void first (void);
@@ -139,13 +139,13 @@ public:
protected:
/// Pointer to the ACE_Timer_Hash that we are iterating over.
- ACE_Timer_Hash_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET> &timer_hash_;
+ Hash & 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_;
+ ACE_Timer_Queue_Iterator_T<TYPE> *iter_;
};
/**
@@ -156,21 +156,23 @@ protected:
*
* 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.
+ * Queues, ACE_Timer_Hash does not expire events in strict order,
+ * i.e., all events are expired after their deadline. But two events
+ * may expired out of order as defined by their deadlines.
*/
-template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET>
-class ACE_Timer_Hash_T : public ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, class BUCKET, typename TIME_POLICY = ACE_Default_Time_Policy>
+class ACE_Timer_Hash_T : public ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>
{
public:
/// Type of iterator
- typedef ACE_Timer_Hash_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>
+ typedef ACE_Timer_Hash_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY>
HASH_ITERATOR;
/// Iterator is a friend
- friend class ACE_Timer_Hash_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET>;
+ friend class ACE_Timer_Hash_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, BUCKET, TIME_POLICY>;
/// Type inherited from
- typedef ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK> INHERITED;
+ typedef ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY> Base_Timer_Queue;
// = Initialization and termination methods.
/**
@@ -181,7 +183,8 @@ public:
*/
ACE_Timer_Hash_T (size_t table_size,
FUNCTOR *upcall_functor = 0,
- ACE_Free_List<ACE_Timer_Node_T <TYPE> > *freelist = 0);
+ ACE_Free_List<ACE_Timer_Node_T <TYPE> > *freelist = 0,
+ TIME_POLICY const & time_policy = TIME_POLICY());
/**
* Default constructor. @a upcall_functor is the instance of the
@@ -190,7 +193,9 @@ public:
* 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);
+ ACE_Timer_Hash_T (FUNCTOR *upcall_functor = 0,
+ ACE_Free_List<ACE_Timer_Node_T <TYPE> > *freelist = 0,
+ TIME_POLICY const & time_policy = TIME_POLICY());
/// Destructor
virtual ~ACE_Timer_Hash_T (void);
@@ -238,8 +243,13 @@ public:
int dont_call_handle_close = 1);
/**
+ * Destroy timer queue. Cancels all timers.
+ */
+ virtual int close (void);
+
+ /**
* Run the <functor> for all timers whose values are <=
- * <ACE_OS::gettimeofday>. Also accounts for <timer_skew>. Returns
+ * gettimeofday. Also accounts for <timer_skew>. Returns
* the number of timers canceled.
*/
virtual int expire (void);
@@ -252,7 +262,7 @@ public:
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);
+ virtual ACE_Timer_Queue_Iterator_T<TYPE> &iter (void);
/// Removes the earliest node from the queue and returns it
virtual ACE_Timer_Node_T<TYPE> *remove_first (void);
@@ -314,8 +324,8 @@ private:
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.
+ /// 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
diff --git a/dep/acelite/ace/Timer_Heap.h b/dep/acelite/ace/Timer_Heap.h
index 7dec5ec22b4..742aed8ff66 100644
--- a/dep/acelite/ace/Timer_Heap.h
+++ b/dep/acelite/ace/Timer_Heap.h
@@ -4,7 +4,7 @@
/**
* @file Timer_Heap.h
*
- * $Id: Timer_Heap.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: Timer_Heap.h 95335 2011-12-15 13:13:17Z msmit $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
*/
@@ -15,6 +15,7 @@
#include /**/ "ace/pre.h"
#include "ace/Timer_Heap_T.h"
+#include "ace/Event_Handler_Handle_Timeout_Upcall.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
@@ -26,15 +27,21 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// compatibility.
typedef ACE_Timer_Heap_T<ACE_Event_Handler *,
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>,
+ ACE_Event_Handler_Handle_Timeout_Upcall,
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_Event_Handler_Handle_Timeout_Upcall,
ACE_SYNCH_RECURSIVE_MUTEX>
ACE_Timer_Heap_Iterator;
+typedef ACE_Timer_Heap_T<ACE_Event_Handler *,
+ ACE_Event_Handler_Handle_Timeout_Upcall,
+ ACE_SYNCH_RECURSIVE_MUTEX,
+ ACE_FPointer_Time_Policy>
+ ACE_Timer_Heap_Variable_Time_Source;
+
ACE_END_VERSIONED_NAMESPACE_DECL
#include /**/ "ace/post.h"
diff --git a/dep/acelite/ace/Timer_Heap_T.cpp b/dep/acelite/ace/Timer_Heap_T.cpp
index 1343915030c..93ce1341746 100644
--- a/dep/acelite/ace/Timer_Heap_T.cpp
+++ b/dep/acelite/ace/Timer_Heap_T.cpp
@@ -1,4 +1,4 @@
-// $Id: Timer_Heap_T.cpp 92069 2010-09-28 11:38:59Z johnnyw $
+// $Id: Timer_Heap_T.cpp 95630 2012-03-22 13:04:47Z johnnyw $
#ifndef ACE_TIMER_HEAP_T_CPP
#define ACE_TIMER_HEAP_T_CPP
@@ -39,34 +39,34 @@ ACE_HEAP_LCHILD (size_t X)
// 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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
+ACE_Timer_Heap_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::ACE_Timer_Heap_Iterator_T (
+ Heap & 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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
+ACE_Timer_Heap_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::~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>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
void
-ACE_Timer_Heap_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::first (void)
+ACE_Timer_Heap_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::first (void)
{
this->position_ = 0;
}
// Positions the iterator at the next node in the heap array
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
void
-ACE_Timer_Heap_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::next (void)
+ACE_Timer_Heap_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::next (void)
{
if (this->position_ != this->timer_heap_.cur_size_)
++this->position_;
@@ -74,16 +74,16 @@ ACE_Timer_Heap_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::next (void)
// Returns true the <position_> is at the end of the heap array
-template <class TYPE, class FUNCTOR, class ACE_LOCK> bool
-ACE_Timer_Heap_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::isdone (void) const
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> bool
+ACE_Timer_Heap_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> ACE_Timer_Node_T<TYPE> *
+ACE_Timer_Heap_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::item (void)
{
if (this->position_ != this->timer_heap_.cur_size_)
return this->timer_heap_.heap_[this->position_];
@@ -95,13 +95,16 @@ ACE_Timer_Heap_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::item (void)
// 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 (
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
+ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::ACE_Timer_Heap_T (
size_t size,
bool preallocated,
FUNCTOR *upcall_functor,
- ACE_Free_List<ACE_Timer_Node_T <TYPE> > *freelist)
- : ACE_Timer_Queue_T<TYPE,FUNCTOR,ACE_LOCK> (upcall_functor, freelist),
+ ACE_Free_List<ACE_Timer_Node_T <TYPE> > *freelist,
+ TIME_POLICY const & time_policy)
+ : Base_Time_Policy (upcall_functor,
+ freelist,
+ time_policy),
max_size_ (size),
cur_size_ (0),
cur_limbo_ (0),
@@ -162,11 +165,14 @@ ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::ACE_Timer_Heap_T (
// 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 (
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
+ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::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),
+ ACE_Free_List<ACE_Timer_Node_T <TYPE> > *freelist,
+ TIME_POLICY const & time_policy)
+ : Base_Time_Policy (upcall_functor,
+ freelist,
+ time_policy),
max_size_ (ACE_DEFAULT_TIMERS),
cur_size_ (0),
cur_limbo_ (0),
@@ -199,13 +205,36 @@ ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::ACE_Timer_Heap_T (
HEAP_ITERATOR (*this));
}
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::~ACE_Timer_Heap_T (void)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
+ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::~ACE_Timer_Heap_T (void)
{
ACE_TRACE ("ACE_Timer_Heap_T::~ACE_Timer_Heap_T");
delete iterator_;
+ this->close ();
+
+ 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, typename TIME_POLICY> int
+ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::close (void)
+{
+ ACE_TRACE ("ACE_Timer_Heap_T::close");
+
size_t current_size =
this->cur_size_;
@@ -222,25 +251,13 @@ ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::~ACE_Timer_Heap_T (void)
this->upcall_functor ().deletion (*this, eh, act);
}
- 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;
- }
+ // leave the rest to the destructor
+ return 0;
}
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
long
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::pop_freelist (void)
+ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::pop_freelist (void)
{
ACE_TRACE ("ACE_Timer_Heap_T::pop_freelist");
@@ -271,9 +288,9 @@ ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::pop_freelist (void)
return static_cast<long> (this->timer_ids_curr_);
}
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
void
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::push_freelist (long old_id)
+ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::push_freelist (long old_id)
{
ACE_TRACE ("ACE_Timer_Heap_T::push_freelist");
@@ -296,9 +313,9 @@ ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::push_freelist (long old_id)
return;
}
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
long
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::timer_id (void)
+ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::timer_id (void)
{
ACE_TRACE ("ACE_Timer_Heap_T::timer_id");
@@ -308,17 +325,17 @@ ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::timer_id (void)
// Checks if queue is empty.
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
bool
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::is_empty (void) const
+ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
+ACE_Timer_Queue_Iterator_T<TYPE> &
+ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::iter (void)
{
this->iterator_->first ();
return *this->iterator_;
@@ -326,16 +343,16 @@ ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::iter (void)
// 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
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> const ACE_Time_Value &
+ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::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>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
void
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::dump (void) const
+ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::dump (void) const
{
#if defined (ACE_HAS_DUMP)
ACE_TRACE ("ACE_Timer_Heap_T::dump");
@@ -371,9 +388,9 @@ ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::dump (void) const
#endif /* ACE_HAS_DUMP */
}
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
void
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::copy (
+ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::copy (
size_t slot,
ACE_Timer_Node_T<TYPE> *moved_node)
{
@@ -392,9 +409,9 @@ ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::copy (
// 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>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
ACE_Timer_Node_T<TYPE> *
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::remove (size_t slot)
+ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::remove (size_t slot)
{
ACE_Timer_Node_T<TYPE> *removed_node =
this->heap_[slot];
@@ -437,8 +454,8 @@ ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::remove (size_t slot)
return removed_node;
}
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::reheap_down (
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> void
+ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::reheap_down (
ACE_Timer_Node_T<TYPE> *moved_node,
size_t slot,
size_t child)
@@ -471,9 +488,9 @@ ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::reheap_down (
this->copy (slot, moved_node);
}
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
void
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::reheap_up (
+ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::reheap_up (
ACE_Timer_Node_T<TYPE> *moved_node,
size_t slot,
size_t parent)
@@ -501,9 +518,9 @@ ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::reheap_up (
moved_node);
}
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
void
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::insert (
+ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::insert (
ACE_Timer_Node_T<TYPE> *new_node)
{
if (this->cur_size_ + this->cur_limbo_ + 2 >= this->max_size_)
@@ -515,9 +532,9 @@ ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::insert (
this->cur_size_++;
}
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
void
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::grow_heap (void)
+ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::grow_heap (void)
{
// All the containers will double in size from max_size_.
size_t new_size = this->max_size_ * 2;
@@ -597,9 +614,9 @@ ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::grow_heap (void)
// Reschedule a periodic timer. This function must be called with the
// mutex lock held.
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
void
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::reschedule (
+ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::reschedule (
ACE_Timer_Node_T<TYPE> *expired)
{
ACE_TRACE ("ACE_Timer_Heap_T::reschedule");
@@ -614,9 +631,9 @@ ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::reschedule (
this->insert (expired);
}
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
ACE_Timer_Node_T<TYPE> *
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::alloc_node (void)
+ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::alloc_node (void)
{
ACE_Timer_Node_T<TYPE> *temp = 0;
@@ -633,16 +650,19 @@ ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::alloc_node (void)
temp = this->preallocated_nodes_freelist_;
- // Remove the first element from the freelist.
- this->preallocated_nodes_freelist_ =
- this->preallocated_nodes_freelist_->get_next ();
+ if (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>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
void
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::free_node (
+ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::free_node (
ACE_Timer_Node_T<TYPE> *node)
{
// Return this timer id to the freelist.
@@ -661,9 +681,9 @@ ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::free_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>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
long
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::schedule_i (
+ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::schedule_i (
const TYPE &type,
const void *act,
const ACE_Time_Value &future_time,
@@ -699,9 +719,9 @@ ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::schedule_i (
// Locate and remove the single timer with a value of @a timer_id from
// the timer queue.
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
int
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::cancel (long timer_id,
+ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::cancel (long timer_id,
const void **act,
int dont_call)
{
@@ -756,9 +776,9 @@ ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::cancel (long timer_id,
// Locate and update the inteval on the timer_id
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
int
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::reset_interval (long timer_id,
+ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::reset_interval (long timer_id,
const ACE_Time_Value &interval)
{
ACE_TRACE ("ACE_Timer_Heap_T::reset_interval");
@@ -792,9 +812,9 @@ ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::reset_interval (long timer_id,
// Locate and remove all values of @a type from the timer queue.
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
int
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::cancel (const TYPE &type,
+ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::cancel (const TYPE &type,
int dont_call)
{
ACE_TRACE ("ACE_Timer_Heap_T::cancel");
@@ -849,9 +869,9 @@ ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::cancel (const TYPE &type,
// Returns the earliest node or returns 0 if the heap is empty.
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
ACE_Timer_Node_T <TYPE> *
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::remove_first (void)
+ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::remove_first (void)
{
ACE_TRACE ("ACE_Timer_Heap_T::remove_first");
@@ -861,9 +881,9 @@ ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::remove_first (void)
return this->remove (0);
}
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
ACE_Timer_Node_T <TYPE> *
-ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK>::get_first (void)
+ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::get_first (void)
{
ACE_TRACE ("ACE_Timer_Heap_T::get_first");
diff --git a/dep/acelite/ace/Timer_Heap_T.h b/dep/acelite/ace/Timer_Heap_T.h
index d6a6221aeed..147d633fd23 100644
--- a/dep/acelite/ace/Timer_Heap_T.h
+++ b/dep/acelite/ace/Timer_Heap_T.h
@@ -4,7 +4,7 @@
/**
* @file Timer_Heap_T.h
*
- * $Id: Timer_Heap_T.h 84619 2009-02-26 12:26:16Z johnnyw $
+ * $Id: Timer_Heap_T.h 95368 2011-12-19 13:38:49Z mcorino $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
*/
@@ -26,7 +26,7 @@
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// Forward declaration
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
class ACE_Timer_Heap_T;
/**
@@ -38,15 +38,16 @@ class ACE_Timer_Heap_T;
* 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>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY = ACE_Default_Time_Policy>
+class ACE_Timer_Heap_Iterator_T : public ACE_Timer_Queue_Iterator_T<TYPE>
{
public:
+ typedef ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY> Heap;
/// Constructor.
- ACE_Timer_Heap_Iterator_T (ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK> &);
+ ACE_Timer_Heap_Iterator_T (Heap &);
/// Destructor.
- ~ACE_Timer_Heap_Iterator_T (void);
+ virtual ~ACE_Timer_Heap_Iterator_T (void);
/// Positions the iterator at the earliest node in the Timer Queue
virtual void first (void);
@@ -62,7 +63,7 @@ public:
protected:
/// Pointer to the ACE_Timer_Heap that we are iterating over.
- ACE_Timer_Heap_T<TYPE, FUNCTOR, ACE_LOCK> &timer_heap_;
+ Heap & timer_heap_;
/// Position in the array where the iterator is at
size_t position_;
@@ -82,14 +83,14 @@ protected:
* 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>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY = ACE_Default_Time_Policy>
+class ACE_Timer_Heap_T : public ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>
{
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_Heap_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY> HEAP_ITERATOR;
+ friend class ACE_Timer_Heap_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>;
- typedef ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK> INHERITED;
+ typedef ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY> Base_Time_Policy;
// = Initialization and termination methods.
/**
@@ -109,7 +110,8 @@ public:
ACE_Timer_Heap_T (size_t size,
bool preallocated = false,
FUNCTOR *upcall_functor = 0,
- ACE_Free_List<ACE_Timer_Node_T <TYPE> > *freelist = 0);
+ ACE_Free_List<ACE_Timer_Node_T <TYPE> > *freelist = 0,
+ TIME_POLICY const & time_policy = TIME_POLICY());
/**
* Default constructor. @c upcall_functor is the instance of the
@@ -119,7 +121,8 @@ public:
* 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);
+ ACE_Free_List<ACE_Timer_Node_T <TYPE> > *freelist = 0,
+ TIME_POLICY const & time_policy = TIME_POLICY());
/// Destructor.
virtual ~ACE_Timer_Heap_T (void);
@@ -162,8 +165,13 @@ public:
const void **act = 0,
int dont_call_handle_close = 1);
+ /**
+ * Destroy timer queue. Cancels all timers.
+ */
+ virtual int close (void);
+
/// Returns a pointer to this ACE_Timer_Queue's iterator.
- virtual ACE_Timer_Queue_Iterator_T<TYPE, FUNCTOR, ACE_LOCK> &iter (void);
+ virtual ACE_Timer_Queue_Iterator_T<TYPE> &iter (void);
/**
* Removes the earliest node from the queue and returns it. Note that
@@ -318,10 +326,6 @@ private:
/// 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> &))
};
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/Timer_List.h b/dep/acelite/ace/Timer_List.h
index f2d9cc2a458..5dff92a56b0 100644
--- a/dep/acelite/ace/Timer_List.h
+++ b/dep/acelite/ace/Timer_List.h
@@ -4,7 +4,7 @@
/**
* @file Timer_List.h
*
- * $Id: Timer_List.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: Timer_List.h 95335 2011-12-15 13:13:17Z msmit $
*
* @author Doug Schmidt
*/
@@ -16,6 +16,7 @@
#include /**/ "ace/pre.h"
#include "ace/Timer_List_T.h"
+#include "ace/Event_Handler_Handle_Timeout_Upcall.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
@@ -25,15 +26,15 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// The following typedefs 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_Event_Handler_Handle_Timeout_Upcall,
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_Event_Handler_Handle_Timeout_Upcall,
+ ACE_SYNCH_RECURSIVE_MUTEX,
+ ACE_Default_Time_Policy>
ACE_Timer_List_Iterator;
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/Timer_List_T.cpp b/dep/acelite/ace/Timer_List_T.cpp
index 3e4ba78f521..d45b71e0098 100644
--- a/dep/acelite/ace/Timer_List_T.cpp
+++ b/dep/acelite/ace/Timer_List_T.cpp
@@ -1,4 +1,4 @@
-// $Id: Timer_List_T.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: Timer_List_T.cpp 95368 2011-12-19 13:38:49Z mcorino $
#ifndef ACE_TIMER_LIST_T_C
#define ACE_TIMER_LIST_T_C
@@ -15,30 +15,30 @@
// 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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
+ACE_Timer_List_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
+ACE_Timer_List_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::~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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> void
+ACE_Timer_List_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> void
+ACE_Timer_List_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::next (void)
{
// Make sure that if we are at the end, we don't wrap around
if (! this->isdone())
@@ -49,16 +49,16 @@ ACE_Timer_List_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::next (void)
// Returns true when we are at <head_>
-template <class TYPE, class FUNCTOR, class ACE_LOCK> bool
-ACE_Timer_List_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::isdone (void) const
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> bool
+ACE_Timer_List_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> ACE_Timer_Node_T<TYPE> *
+ACE_Timer_List_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::item (void)
{
if (! this->isdone())
return this->current_node_;
@@ -70,8 +70,8 @@ ACE_Timer_List_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::item (void)
// 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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> ACE_Timer_Queue_Iterator_T<TYPE> &
+ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::iter (void)
{
this->iterator_->first ();
return *this->iterator_;
@@ -79,9 +79,11 @@ ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::iter (void)
// 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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
+ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::ACE_Timer_List_T (FUNCTOR* uf,
+ FreeList* fl,
+ TIME_POLICY const & time_policy)
+ : Base_Timer_Queue (uf, fl, time_policy)
, head_ (new ACE_Timer_Node_T<TYPE>)
, id_counter_ (0)
{
@@ -96,8 +98,8 @@ ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::ACE_Timer_List_T (FUNCTOR* uf, FreeLi
// Checks if list is empty.
-template <class TYPE, class FUNCTOR, class ACE_LOCK> bool
-ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::is_empty (void) const
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> bool
+ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::is_empty (void) const
{
ACE_TRACE ("ACE_Timer_List_T::is_empty");
return this->get_first_i() == 0;
@@ -106,8 +108,8 @@ ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::is_empty (void) const
// 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
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> const ACE_Time_Value &
+ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::earliest_time (void) const
{
ACE_TRACE ("ACE_Timer_List_T::earliest_time");
ACE_Timer_Node_T<TYPE>* first = this->get_first_i();
@@ -119,14 +121,27 @@ ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::earliest_time (void) const
// 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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
+ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::~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_;
+ this->close ();
+
+ // delete the dummy node
+ delete this->head_;
+}
+
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> int
+ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::close (void)
+{
+ ACE_TRACE ("ACE_Timer_List_T::close");
+ ACE_MT (ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, -1));
+
+ // Remove all remaining items in the list.
if (!this->is_empty())
{
for (ACE_Timer_Node_T<TYPE>* n = this->get_first();
@@ -146,12 +161,12 @@ ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::~ACE_Timer_List_T (void)
}
}
- // delete the dummy node
- delete this->head_;
+ // Leave rest to destructor
+ return 0;
}
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::dump (void) const
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> void
+ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::dump (void) const
{
#if defined (ACE_HAS_DUMP)
ACE_TRACE ("ACE_Timer_List_T::dump");
@@ -175,8 +190,8 @@ ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::dump (void) const
// 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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> void
+ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::reschedule (ACE_Timer_Node_T<TYPE>* n)
{
ACE_TRACE ("ACE_Timer_List_T::reschedule");
this->schedule_i(n, n->get_timer_value());
@@ -186,8 +201,8 @@ ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::reschedule (ACE_Timer_Node_T<TYPE>* n
// 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_i (const TYPE &type,
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> long
+ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::schedule_i (const TYPE &type,
const void *act,
const ACE_Time_Value &future_time,
const ACE_Time_Value &interval)
@@ -213,8 +228,8 @@ ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::schedule_i (const TYPE &type,
}
/// 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,
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> void
+ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::schedule_i (ACE_Timer_Node_T<TYPE>* n,
const ACE_Time_Value& expire)
{
if (this->is_empty()) {
@@ -240,9 +255,9 @@ ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::schedule_i (ACE_Timer_Node_T<TYPE>* n
p->set_next(n);
}
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
ACE_Timer_Node_T<TYPE>*
-ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::find_node (long timer_id) const
+ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::find_node (long timer_id) const
{
ACE_Timer_Node_T<TYPE>* n = this->get_first_i();
if (n == 0)
@@ -257,8 +272,8 @@ ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::find_node (long timer_id) const
}
// 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,
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> int
+ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::reset_interval (long timer_id,
const ACE_Time_Value &interval)
{
ACE_TRACE ("ACE_Timer_List_T::reset_interval");
@@ -273,8 +288,8 @@ ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::reset_interval (long timer_id,
// Locate and remove the single <ACE_Event_Handler> with a value of
// @a 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,
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> int
+ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::cancel (long timer_id,
const void **act,
int skip_close)
{
@@ -310,8 +325,8 @@ ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::cancel (long timer_id,
}
// 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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> int
+ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::cancel (const TYPE &type, int skip_close)
{
ACE_TRACE ("ACE_Timer_List_T::cancel");
@@ -365,8 +380,8 @@ ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::cancel (const TYPE &type, int skip_cl
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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> void
+ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::unlink (ACE_Timer_Node_T<TYPE>* n)
{
n->get_prev()->set_next(n->get_next());
n->get_next()->set_prev(n->get_prev());
@@ -375,23 +390,23 @@ ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::unlink (ACE_Timer_Node_T<TYPE>* n)
}
/// 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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> void
+ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::cancel_i (ACE_Timer_Node_T<TYPE>* n)
{
this->unlink (n);
this->free_node (n);
}
// 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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> ACE_Timer_Node_T<TYPE> *
+ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::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
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> ACE_Timer_Node_T<TYPE> *
+ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::get_first_i (void) const
{
ACE_TRACE ("ACE_Timer_List_T::get_first_i");
ACE_Timer_Node_T<TYPE>* first = this->head_->get_next();
@@ -403,8 +418,8 @@ ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK>::get_first_i (void) const
// 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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> ACE_Timer_Node_T<TYPE> *
+ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::remove_first (void)
{
ACE_TRACE ("ACE_Timer_List_T::remove_first");
ACE_Timer_Node_T<TYPE>* first = this->get_first();
diff --git a/dep/acelite/ace/Timer_List_T.h b/dep/acelite/ace/Timer_List_T.h
index cabd47aeaf0..918ba2cb9f3 100644
--- a/dep/acelite/ace/Timer_List_T.h
+++ b/dep/acelite/ace/Timer_List_T.h
@@ -4,7 +4,7 @@
/**
* @file Timer_List_T.h
*
- * $Id: Timer_List_T.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: Timer_List_T.h 95368 2011-12-19 13:38:49Z mcorino $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
*/
@@ -21,7 +21,7 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
// Forward declaration.
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
class ACE_Timer_List_T;
/**
@@ -32,12 +32,12 @@ class ACE_Timer_List_T;
* 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>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY = ACE_Default_Time_Policy>
class ACE_Timer_List_Iterator_T
-: public ACE_Timer_Queue_Iterator_T <TYPE, FUNCTOR, ACE_LOCK>
+: public ACE_Timer_Queue_Iterator_T <TYPE>
{
public:
- typedef ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK> List;
+ typedef ACE_Timer_List_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY> List;
/// Constructor.
ACE_Timer_List_Iterator_T (List& lst);
@@ -81,19 +81,19 @@ protected:
* 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>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY = ACE_Default_Time_Policy>
+class ACE_Timer_List_T : public ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>
{
public:
/// Type of iterator
- typedef ACE_Timer_List_Iterator_T<TYPE, FUNCTOR, ACE_LOCK> Iterator;
+ typedef ACE_Timer_List_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY> Iterator;
/// Iterator is a friend
- friend class ACE_Timer_List_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>;
+ friend class ACE_Timer_List_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>;
typedef ACE_Timer_Node_T<TYPE> Node;
/// Type inherited from
- typedef ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK> Base;
+ typedef ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY> Base_Timer_Queue;
typedef ACE_Free_List<Node> FreeList;
// = Initialization and termination methods.
@@ -103,7 +103,8 @@ public:
* default FUNCTOR will be created. @a freelist is 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);
+ ACE_Timer_List_T (FUNCTOR* upcall_functor = 0, FreeList* freelist = 0,
+ TIME_POLICY const & time_policy = TIME_POLICY());
/// Destructor
virtual ~ACE_Timer_List_T (void);
@@ -146,8 +147,13 @@ public:
const void** act = 0,
int dont_call_handle_close = 1);
+ /**
+ * Destroy timer queue. Cancels all timers.
+ */
+ virtual int close (void);
+
/// Returns a pointer to this ACE_Timer_Queue's iterator.
- virtual ACE_Timer_Queue_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>& iter (void);
+ virtual ACE_Timer_Queue_Iterator_T<TYPE>& iter (void);
/// Removes the earliest node from the queue and returns it
virtual ACE_Timer_Node_T<TYPE>* remove_first (void);
diff --git a/dep/acelite/ace/Timer_Queue.h b/dep/acelite/ace/Timer_Queue.h
index 4644aa1b43d..13ec4fc826a 100644
--- a/dep/acelite/ace/Timer_Queue.h
+++ b/dep/acelite/ace/Timer_Queue.h
@@ -4,7 +4,7 @@
/**
* @file Timer_Queue.h
*
- * $Id: Timer_Queue.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: Timer_Queue.h 95332 2011-12-15 11:09:41Z mcorino $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
* @author Irfan Pyarali <irfan@cs.wustl.edu>
@@ -40,9 +40,7 @@ typedef ACE_Timer_Node_Dispatch_Info_T<ACE_Event_Handler *>
typedef ACE_Timer_Node_T<ACE_Event_Handler *>
ACE_Timer_Node;
-typedef ACE_Timer_Queue_Iterator_T<ACE_Event_Handler *,
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>,
- ACE_SYNCH_RECURSIVE_MUTEX>
+typedef ACE_Timer_Queue_Iterator_T<ACE_Event_Handler *>
ACE_Timer_Queue_Iterator;
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/Timer_Queue_Adapters.cpp b/dep/acelite/ace/Timer_Queue_Adapters.cpp
index 190d11c4f08..e4e2337395e 100644
--- a/dep/acelite/ace/Timer_Queue_Adapters.cpp
+++ b/dep/acelite/ace/Timer_Queue_Adapters.cpp
@@ -1,4 +1,4 @@
-// $Id: Timer_Queue_Adapters.cpp 92285 2010-10-20 16:34:57Z shuston $
+// $Id: Timer_Queue_Adapters.cpp 95368 2011-12-19 13:38:49Z mcorino $
#ifndef ACE_TIMER_QUEUE_ADAPTERS_CPP
#define ACE_TIMER_QUEUE_ADAPTERS_CPP
@@ -182,6 +182,11 @@ ACE_Thread_Timer_Queue_Adapter<TQ, TYPE>::~ACE_Thread_Timer_Queue_Adapter (void)
this->timer_queue_ = 0;
this->delete_timer_queue_ = false;
}
+ else if (this->timer_queue_)
+ {
+ this->timer_queue_->close ();
+ this->timer_queue_ = 0;
+ }
}
template<class TQ, class TYPE> ACE_SYNCH_RECURSIVE_MUTEX &
@@ -264,8 +269,10 @@ ACE_Thread_Timer_Queue_Adapter<TQ, TYPE>::svc (void)
{
// Compute the remaining time, being careful not to sleep
// for "negative" amounts of time.
- ACE_Time_Value const tv_curr = this->timer_queue_->gettimeofday ();
- ACE_Time_Value const tv_earl = this->timer_queue_->earliest_time ();
+ ACE_Time_Value const tv_curr =
+ this->timer_queue_->gettimeofday ();
+ ACE_Time_Value const tv_earl =
+ this->timer_queue_->earliest_time ();
if (tv_earl > tv_curr)
{
diff --git a/dep/acelite/ace/Timer_Queue_Adapters.inl b/dep/acelite/ace/Timer_Queue_Adapters.inl
index d73ef024246..c6a7690303e 100644
--- a/dep/acelite/ace/Timer_Queue_Adapters.inl
+++ b/dep/acelite/ace/Timer_Queue_Adapters.inl
@@ -1,6 +1,6 @@
// -*- C++ -*-
//
-// $Id: Timer_Queue_Adapters.inl 89482 2010-03-15 07:58:50Z johnnyw $
+// $Id: Timer_Queue_Adapters.inl 95368 2011-12-19 13:38:49Z mcorino $
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -15,6 +15,8 @@ ACE_Thread_Timer_Queue_Adapter<TQ, TYPE>::timer_queue (TQ *tq)
{
if (this->delete_timer_queue_)
delete this->timer_queue_;
+ else if (this->timer_queue_)
+ this->timer_queue_->close ();
this->timer_queue_ = tq;
this->delete_timer_queue_ = false;
return 0;
diff --git a/dep/acelite/ace/Timer_Queue_Iterator.cpp b/dep/acelite/ace/Timer_Queue_Iterator.cpp
new file mode 100644
index 00000000000..cc95cbdcbe1
--- /dev/null
+++ b/dep/acelite/ace/Timer_Queue_Iterator.cpp
@@ -0,0 +1,58 @@
+//$Id: Timer_Queue_Iterator.cpp 95334 2011-12-15 12:52:50Z msmit $
+
+#ifndef ACE_TIMER_QUEUE_ITERATOR_CPP
+#define ACE_TIMER_QUEUE_ITERATOR_CPP
+
+#include "ace/config-all.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#if !defined (__ACE_INLINE__)
+#include "ace/Timer_Queue_Iterator.inl"
+#endif /* __ACE_INLINE__ */
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+template <class TYPE> void
+ACE_Timer_Node_T<TYPE>::dump (void) const
+{
+#if defined (ACE_HAS_DUMP)
+ ACE_TRACE ("ACE_Timer_Node_T::dump");
+ ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\nact_ = %x"), this->act_));
+ this->timer_value_.dump ();
+ this->interval_.dump ();
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\nprev_ = %x"), this->prev_));
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\nnext_ = %x"), this->next_));
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\ntimer_id_ = %d\n"), this->timer_id_));
+ ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
+#endif /* ACE_HAS_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>
+ACE_Timer_Queue_Iterator_T<TYPE>::ACE_Timer_Queue_Iterator_T (void)
+{
+}
+
+template <class TYPE>
+ACE_Timer_Queue_Iterator_T<TYPE>::~ACE_Timer_Queue_Iterator_T (void)
+{
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_TIMER_QUEUE_ITERATOR_CPP */
diff --git a/dep/acelite/ace/Timer_Queue_Iterator.h b/dep/acelite/ace/Timer_Queue_Iterator.h
new file mode 100644
index 00000000000..56433e4b3dc
--- /dev/null
+++ b/dep/acelite/ace/Timer_Queue_Iterator.h
@@ -0,0 +1,200 @@
+//$Id: Timer_Queue_Iterator.h 95334 2011-12-15 12:52:50Z msmit $
+
+#ifndef ACE_TIMER_QUEUE_ITERATOR_H
+#define ACE_TIMER_QUEUE_ITERATOR_H
+
+#include /**/ "ace/pre.h"
+
+/**
+ * @file Timer_Queue_Iterator.h
+ *
+ * Re-factored from Timer_Queue_T.h
+ */
+
+#include "ace/Time_Value.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+/**
+ * @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_;
+
+ /// Flag to check if the timer is recurring.
+ int recurring_timer_;
+};
+
+/**
+ * @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 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 bool isdone (void) const = 0;
+
+ /// Returns the node at the current position in the sequence
+ virtual ACE_Timer_Node_T<TYPE> *item (void) = 0;
+};
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (__ACE_INLINE__)
+#include "ace/Timer_Queue_Iterator.inl"
+#endif /* __ACE_INLINE__ */
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "ace/Timer_Queue_Iterator.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("Timer_Queue_Iterator.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#include /**/ "ace/post.h"
+#endif /* ACE_TIMER_QUEUE_ITERATOR_H */
diff --git a/dep/acelite/ace/Timer_Queue_Iterator.inl b/dep/acelite/ace/Timer_Queue_Iterator.inl
new file mode 100644
index 00000000000..90fa4687bbd
--- /dev/null
+++ b/dep/acelite/ace/Timer_Queue_Iterator.inl
@@ -0,0 +1,135 @@
+// -*- C++ -*-
+//
+// $Id: Timer_Queue_Iterator.inl 95332 2011-12-15 11:09:41Z mcorino $
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+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_;
+ info.recurring_timer_ =
+ this->interval_ > ACE_Time_Value::zero;
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/Timer_Queue_T.cpp b/dep/acelite/ace/Timer_Queue_T.cpp
index 838d4422bcf..eafb4a24498 100644
--- a/dep/acelite/ace/Timer_Queue_T.cpp
+++ b/dep/acelite/ace/Timer_Queue_T.cpp
@@ -1,4 +1,4 @@
-// $Id: Timer_Queue_T.cpp 92285 2010-10-20 16:34:57Z shuston $
+// $Id: Timer_Queue_T.cpp 95690 2012-04-09 22:00:03Z shuston $
#ifndef ACE_TIMER_QUEUE_T_CPP
#define ACE_TIMER_QUEUE_T_CPP
@@ -16,11 +16,11 @@
#include "ace/Timer_Queue_T.h"
#include "ace/Guard_T.h"
-#include "ace/Log_Msg.h"
-#include "ace/Reactor_Timer_Interface.h"
#include "ace/Reverse_Lock_T.h"
+#include "ace/Log_Msg.h"
#include "ace/Null_Mutex.h"
#include "ace/OS_NS_sys_time.h"
+#include "ace/Functor.h"
#if !defined (__ACE_INLINE__)
#include "ace/Timer_Queue_T.inl"
@@ -35,46 +35,47 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
# define ACE_TIMER_SKEW 0
#endif /* ACE_TIMER_SKEW */
-template <class TYPE> void
-ACE_Timer_Node_T<TYPE>::dump (void) const
+template <class TYPE, class FUNCTOR> ACE_INLINE
+ACE_Timer_Queue_Upcall_Base<TYPE, FUNCTOR>::ACE_Timer_Queue_Upcall_Base (FUNCTOR * upcall_functor)
+ : ACE_Abstract_Timer_Queue<TYPE>()
+ , ACE_Copy_Disabled()
+ , upcall_functor_(upcall_functor)
+ , delete_upcall_functor_ (upcall_functor == 0)
{
-#if defined (ACE_HAS_DUMP)
- ACE_TRACE ("ACE_Timer_Node_T::dump");
- ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\nact_ = %x"), this->act_));
- this->timer_value_.dump ();
- this->interval_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\nprev_ = %x"), this->prev_));
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\nnext_ = %x"), this->next_));
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\ntimer_id_ = %d\n"), this->timer_id_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
-#endif /* ACE_HAS_DUMP */
-}
+ ACE_TRACE ("ACE_Timer_Queue_Upcall_Base::ACE_Timer_Queue_Upcall_Base");
-template <class TYPE>
-ACE_Timer_Node_T<TYPE>::ACE_Timer_Node_T (void)
-{
- ACE_TRACE ("ACE_Timer_Node_T::ACE_Timer_Node_T");
+ if (upcall_functor != 0)
+ {
+ return;
+ }
+
+ ACE_NEW (upcall_functor_, FUNCTOR);
}
-template <class TYPE>
-ACE_Timer_Node_T<TYPE>::~ACE_Timer_Node_T (void)
+template <class TYPE, class FUNCTOR> ACE_INLINE
+ACE_Timer_Queue_Upcall_Base<TYPE, FUNCTOR>::~ACE_Timer_Queue_Upcall_Base ()
{
- ACE_TRACE ("ACE_Timer_Node_T::~ACE_Timer_Node_T");
+ ACE_TRACE ("ACE_Timer_Queue_Upcall_Base::~ACE_Timer_Queue_Upcall_Base");
+ if (this->delete_upcall_functor_)
+ {
+ delete this->upcall_functor_;
+ }
}
-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, typename TIME_POLICY> ACE_Time_Value
+ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::gettimeofday()
{
+ return this->gettimeofday_static();
}
-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, typename TIME_POLICY> void
+ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::gettimeofday (ACE_Time_Value (*gettimeofday)(void))
{
+ this->time_policy_.set_gettimeofday (gettimeofday);
}
-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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> ACE_Time_Value *
+ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::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));
@@ -84,7 +85,7 @@ ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::calculate_timeout (ACE_Time_Value *m
return max_wait_time;
else
{
- ACE_Time_Value const cur_time = this->gettimeofday ();
+ ACE_Time_Value const cur_time = this->gettimeofday_static ();
if (this->earliest_time () > cur_time)
{
@@ -110,8 +111,8 @@ ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::calculate_timeout (ACE_Time_Value *m
}
}
-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,
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> ACE_Time_Value *
+ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::calculate_timeout (ACE_Time_Value *max_wait_time,
ACE_Time_Value *the_timeout)
{
ACE_TRACE ("ACE_Timer_Queue_T::calculate_timeout");
@@ -119,6 +120,8 @@ ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::calculate_timeout (ACE_Time_Value *m
if (the_timeout == 0)
return 0;
+ 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.
@@ -129,7 +132,7 @@ ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::calculate_timeout (ACE_Time_Value *m
}
else
{
- ACE_Time_Value cur_time = this->gettimeofday ();
+ ACE_Time_Value cur_time = this->gettimeofday_static ();
if (this->earliest_time () > cur_time)
{
@@ -153,8 +156,16 @@ ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::calculate_timeout (ACE_Time_Value *m
return the_timeout;
}
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::dump (void) const
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> ACE_Time_Value
+ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::current_time()
+{
+ ACE_Time_Value tv = this->gettimeofday_static ();
+ tv += this->timer_skew();
+ return tv;
+}
+
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> void
+ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::dump (void) const
{
#if defined (ACE_HAS_DUMP)
ACE_TRACE ("ACE_Timer_Queue_T::dump");
@@ -165,11 +176,12 @@ ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::dump (void) const
#endif /* ACE_HAS_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),
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
+ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::ACE_Timer_Queue_T (FUNCTOR *upcall_functor,
+ ACE_Free_List<ACE_Timer_Node_T <TYPE> > *freelist,
+ TIME_POLICY const & time_policy)
+ : ACE_Timer_Queue_Upcall_Base<TYPE,FUNCTOR>(upcall_functor),
+ time_policy_ (time_policy),
delete_free_list_ (freelist == 0),
timer_skew_ (0, ACE_TIMER_SKEW)
{
@@ -180,47 +192,38 @@ ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::ACE_Timer_Queue_T (FUNCTOR *upcall_f
(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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
+ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::~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_;
-
+ // Cleanup the free_list on the way out
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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> ACE_Timer_Node_T<TYPE> *
+ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> void
+ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> ACE_LOCK &
+ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::mutex (void)
{
return this->mutex_;
}
-template <class TYPE, class FUNCTOR, class ACE_LOCK> long
-ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::schedule (const TYPE &type,
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> long
+ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::schedule (const TYPE &type,
const void *act,
const ACE_Time_Value &future_time,
const ACE_Time_Value &interval)
@@ -249,8 +252,8 @@ ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::schedule (const TYPE &type,
// 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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> int
+ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::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));
@@ -287,8 +290,8 @@ ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::expire (const ACE_Time_Value &cur_ti
return number_of_timers_expired;
}
-template <class TYPE, class FUNCTOR, class ACE_LOCK> void
-ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::recompute_next_abs_interval_time
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> void
+ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::recompute_next_abs_interval_time
(ACE_Timer_Node_T<TYPE> *expired,
const ACE_Time_Value &cur_time)
{
@@ -347,8 +350,52 @@ ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::recompute_next_abs_interval_time
}
}
-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,
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> int
+ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::expire_single (
+ ACE_Command_Base & pre_dispatch_command)
+{
+ ACE_TRACE ("ACE_Timer_Queue_T::expire_single");
+ ACE_Timer_Node_Dispatch_Info_T<TYPE> info;
+ ACE_Time_Value cur_time;
+ {
+ // Create a scope for the lock ...
+ ACE_MT (ACE_GUARD_RETURN (ACE_LOCK, ace_mon, this->mutex_, -1));
+
+ if (this->is_empty ())
+ return 0;
+
+ // Get the current time
+ cur_time = this->gettimeofday_static () + this->timer_skew ();
+
+ // Look for a node in the timer queue whose timer <= the present
+ // time.
+ if (!this->dispatch_info_i (cur_time, info))
+ {
+ return 0;
+ }
+ }
+ // We do not need the lock anymore, all these operations take place
+ // with local variables.
+ const void *upcall_act = 0;
+
+ // Preinvoke (handles refcount if needed, etc.)
+ this->preinvoke (info, cur_time, upcall_act);
+
+ // Release the token before expiration upcall.
+ pre_dispatch_command.execute();
+
+ // call the functor
+ this->upcall (info, cur_time);
+
+ // Postinvoke (undo refcount if needed, etc.)
+ this->postinvoke (info, cur_time, upcall_act);
+
+ // We have dispatched a timer
+ return 1;
+}
+
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> int
+ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::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");
@@ -388,155 +435,13 @@ ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::dispatch_info_i (const ACE_Time_Valu
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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> void
+ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::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>::registration (TIMER_QUEUE &,
- ACE_Event_Handler *event_handler,
- const void *)
-{
- event_handler->add_reference ();
- return 0;
-}
-
-template <class ACE_LOCK> int
-ACE_Event_Handler_Handle_Timeout_Upcall<ACE_LOCK>::preinvoke (TIMER_QUEUE & /* timer_queue */,
- ACE_Event_Handler *event_handler,
- const void * /* timer_act */,
- int /* recurring_timer */,
- const ACE_Time_Value & /* cur_time */,
- const void *&upcall_act)
-{
- bool const requires_reference_counting =
- event_handler->reference_counting_policy ().value () ==
- ACE_Event_Handler::Reference_Counting_Policy::ENABLED;
-
- if (requires_reference_counting)
- {
- event_handler->add_reference ();
-
- upcall_act = &this->requires_reference_counting_;
- }
-
- return 0;
-}
-
-template <class ACE_LOCK> int
-ACE_Event_Handler_Handle_Timeout_Upcall<ACE_LOCK>::postinvoke (TIMER_QUEUE & /* timer_queue */,
- ACE_Event_Handler *event_handler,
- const void * /* timer_act */,
- int /* recurring_timer */,
- const ACE_Time_Value & /* cur_time */,
- const void *upcall_act)
-{
- if (upcall_act == &this->requires_reference_counting_)
- {
- event_handler->remove_reference ();
- }
-
- return 0;
-}
-
-template <class ACE_LOCK> int
-ACE_Event_Handler_Handle_Timeout_Upcall<ACE_LOCK>::timeout (TIMER_QUEUE &timer_queue,
- ACE_Event_Handler *event_handler,
- const void *act,
- int recurring_timer,
- const ACE_Time_Value &cur_time)
-{
- int requires_reference_counting = 0;
-
- if (!recurring_timer)
- {
- requires_reference_counting =
- event_handler->reference_counting_policy ().value () ==
- ACE_Event_Handler::Reference_Counting_Policy::ENABLED;
- }
-
- // Upcall to the <handler>s handle_timeout method.
- if (event_handler->handle_timeout (cur_time, act) == -1)
- {
- if (event_handler->reactor_timer_interface ())
- event_handler->reactor_timer_interface ()->cancel_timer (event_handler, 0);
- else
- timer_queue.cancel (event_handler, 0); // 0 means "call handle_close()".
- }
-
- if (!recurring_timer &&
- requires_reference_counting)
- {
- event_handler->remove_reference ();
- }
-
- return 0;
-}
-
-template <class ACE_LOCK> int
-ACE_Event_Handler_Handle_Timeout_Upcall<ACE_LOCK>::cancel_type (TIMER_QUEUE &,
- ACE_Event_Handler *event_handler,
- int dont_call,
- int &requires_reference_counting)
-{
- requires_reference_counting =
- event_handler->reference_counting_policy ().value () ==
- ACE_Event_Handler::Reference_Counting_Policy::ENABLED;
-
- // Upcall to the <handler>s handle_close method
- if (dont_call == 0)
- event_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>::cancel_timer (TIMER_QUEUE &,
- ACE_Event_Handler *event_handler,
- int,
- int requires_reference_counting)
-{
- if (requires_reference_counting)
- event_handler->remove_reference ();
-
- return 0;
-}
-
-template <class ACE_LOCK> int
-ACE_Event_Handler_Handle_Timeout_Upcall<ACE_LOCK>::deletion (TIMER_QUEUE &timer_queue,
- ACE_Event_Handler *event_handler,
- const void *)
-{
- int requires_reference_counting = 0;
-
- this->cancel_type (timer_queue,
- event_handler,
- 0,
- requires_reference_counting);
-
- this->cancel_timer (timer_queue,
- event_handler,
- 0,
- requires_reference_counting);
-
- return 0;
-}
-
ACE_END_VERSIONED_NAMESPACE_DECL
#endif /* ACE_TIMER_QUEUE_T_CPP */
diff --git a/dep/acelite/ace/Timer_Queue_T.h b/dep/acelite/ace/Timer_Queue_T.h
index 5e316e1e04b..ffd0a3726ed 100644
--- a/dep/acelite/ace/Timer_Queue_T.h
+++ b/dep/acelite/ace/Timer_Queue_T.h
@@ -4,7 +4,7 @@
/**
* @file Timer_Queue_T.h
*
- * $Id: Timer_Queue_T.h 89254 2010-02-25 22:10:39Z cleeland $
+ * $Id: Timer_Queue_T.h 95362 2011-12-18 11:56:24Z johnnyw $
*
* @author Doug Schmidt <schmidt@cs.wustl.edu>
* @author Irfan Pyarali <irfan@cs.wustl.edu> and
@@ -22,176 +22,43 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-#include "ace/Event_Handler.h"
#include "ace/Time_Value.h"
+#include "ace/Abstract_Timer_Queue.h"
+#include "ace/Timer_Queue_Iterator.h"
+#include "ace/Time_Policy.h"
+#include "ace/Copy_Disabled.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
/**
- * @class ACE_Timer_Node_Dispatch_Info_T
+ * @class ACE_Timer_Queue_Upcall_Base
*
- * @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_;
-
- /// Flag to check if the timer is recurring.
- int recurring_timer_;
-};
-
-/**
- * @class ACE_Timer_Node_T
- *
- * @brief Maintains the state associated with a Timer entry.
+ * Common base class for all timer queues with the same time source
+ * policy. This is really motivated by a single use-case in the code,
+ * namely the ACE_Proactor needs to set a backpointer in the upcall
+ * functor.
*/
-template <class TYPE>
-class ACE_Timer_Node_T
+template<typename TYPE, typename FUNCTOR>
+class ACE_Timer_Queue_Upcall_Base
+ : public ACE_Abstract_Timer_Queue<TYPE>
+ , private ACE_Copy_Disabled
{
public:
- /// Default constructor
- ACE_Timer_Node_T (void);
+ // Constructor
+ explicit ACE_Timer_Queue_Upcall_Base(FUNCTOR * upcall_functor = 0);
/// 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);
+ virtual ~ACE_Timer_Queue_Upcall_Base (void);
- /// 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;
+ /// Accessor to the upcall functor
+ FUNCTOR & upcall_functor (void);
- /// Returns true when there are no more nodes in the sequence
- virtual bool isdone (void) const = 0;
+protected:
+ /// Upcall functor
+ FUNCTOR *upcall_functor_;
- /// Returns the node at the current position in the sequence
- virtual ACE_Timer_Node_T<TYPE> *item (void) = 0;
+ /// To delete or not to delete is the question?
+ bool const delete_upcall_functor_;
};
/**
@@ -203,13 +70,11 @@ public:
* implementing specialized policies such as ACE_Timer_List
* and ACE_Timer_Heap.
*/
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY = ACE_Default_Time_Policy>
class ACE_Timer_Queue_T
+ : public ACE_Timer_Queue_Upcall_Base<TYPE,FUNCTOR>
{
public:
- /// Type of Iterator.
- typedef ACE_Timer_Queue_Iterator_T<TYPE, FUNCTOR, ACE_LOCK> ITERATOR;
-
// = Initialization and termination methods.
/**
* Default constructor. @a upcall_functor is the instance of the
@@ -218,78 +83,31 @@ public:
* 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);
+ ACE_Free_List<ACE_Timer_Node_T <TYPE> > *freelist = 0,
+ TIME_POLICY const & time_policy = TIME_POLICY());
/// Destructor - make virtual for proper destruction of inherited
/// classes.
virtual ~ACE_Timer_Queue_T (void);
- /// True if queue is empty, else false.
- virtual bool 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 @a type that will expire at @a future_time, which is
- * specified in absolute time. If it expires then @a act is passed
- * in as the value to the <functor>. If @a interval is != to
- * ACE_Time_Value::zero then it is used to reschedule the @a type
- * automatically, using relative time to the current <gettimeofday>.
- * This method returns a <timer_id> that uniquely identifies the the
- * @a 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>).
+ * Implement ACE_Abstract_Timer_Queue<TYPE>::schedule () with the right
+ * locking strategy.
*/
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 @a timer_id to
- * @a interval, which is specified in relative time to the current
- * <gettimeofday>. If @a 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 @a type. If
- * @a 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 @a 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
- * @a 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 @a 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 <= @a current_time.
- * This does not account for <timer_skew>. Returns the number of
- * timers canceled.
+ * Implement ACE_Abstract_Timer_Queue<TYPE>::expire () with the right
+ * locking strategy.
*/
virtual int expire (const ACE_Time_Value &current_time);
+ virtual int expire (void);
+ virtual int expire_single(ACE_Command_Base & pre_dispatch_command);
+ //@}
/**
* Get the dispatch information for a timer whose value is <= @a current_time.
@@ -300,73 +118,46 @@ public:
virtual 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.
+ * Implement the gettimeofday() virtual function
*/
-
- /* virtual */ int expire (void);
+ virtual ACE_Time_Value gettimeofday (void);
+ //@}
/**
- * Returns the current time of day. This method allows different
- * implementations of the timer queue to use special high resolution
- * timers.
+ * Allows applications to control how the timer queue gets the time
+ * of day.
+ * @deprecated Use TIME_POLICY support instead.
+ * This will only have effect when the TIME_POLICY used
+ * is ACE_FPointer_Time_Policy. Other standard ACE time
+ * policies will ignore this.
*/
- /* virtual */ ACE_Time_Value gettimeofday (void);
+ virtual void gettimeofday (ACE_Time_Value (*gettimeofday)(void));
+
+ /// Implement an inlined, non-abstract version of gettimeofday(),
+ /// through this member function the internals of the class can
+ /// make calls to ACE_OS::gettimeofday() with zero overhead.
+ ACE_Time_Value gettimeofday_static();
/// Allows applications to control how the timer queue gets the time
/// of day.
- void gettimeofday (ACE_Time_Value (*gettimeofday)(void));
+ void set_time_policy(TIME_POLICY const & time_policy);
/// Determine the next event to timeout. Returns @a 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 @a 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.
+ * Implement calculate_timeout() using the right locking policy
*/
+ virtual ACE_Time_Value *calculate_timeout (ACE_Time_Value *max);
virtual ACE_Time_Value *calculate_timeout (ACE_Time_Value *max,
ACE_Time_Value *the_timeout);
+ virtual ACE_Time_Value current_time();
+ //@}
/// Set the timer skew for the Timer_Queue.
void timer_skew (const ACE_Time_Value &skew);
@@ -377,21 +168,9 @@ public:
/// 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> *);
@@ -442,14 +221,8 @@ protected:
/// 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?
- bool const delete_upcall_functor_;
+ /// The policy to return the current time of day
+ TIME_POLICY time_policy_;
/// Flag to delete only if the class created the <free_list_>
bool const delete_free_list_;
@@ -461,91 +234,6 @@ private:
/// 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 a timer is registered.
- int registration (TIMER_QUEUE &timer_queue,
- ACE_Event_Handler *handler,
- const void *arg);
-
- /// This method is called before the timer expires.
- int preinvoke (TIMER_QUEUE &timer_queue,
- ACE_Event_Handler *handler,
- const void *arg,
- int recurring_timer,
- const ACE_Time_Value &cur_time,
- const void *&upcall_act);
-
- /// This method is called when the timer expires.
- int timeout (TIMER_QUEUE &timer_queue,
- ACE_Event_Handler *handler,
- const void *arg,
- int recurring_timer,
- const ACE_Time_Value &cur_time);
-
- /// This method is called after the timer expires.
- int postinvoke (TIMER_QUEUE &timer_queue,
- ACE_Event_Handler *handler,
- const void *arg,
- int recurring_timer,
- const ACE_Time_Value &cur_time,
- const void *upcall_act);
-
- /// This method is called when a handler is cancelled
- int cancel_type (TIMER_QUEUE &timer_queue,
- ACE_Event_Handler *handler,
- int dont_call,
- int &requires_reference_counting);
-
- /// This method is called when a timer is cancelled
- int cancel_timer (TIMER_QUEUE &timer_queue,
- ACE_Event_Handler *handler,
- int dont_call,
- int requires_reference_counting);
-
- /// 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:
-
- /// Flag indicating that reference counting is required for this
- /// event handler upcall.
- int requires_reference_counting_;
-
- // = 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> &))
};
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/Timer_Queue_T.inl b/dep/acelite/ace/Timer_Queue_T.inl
index 7606a2e1f62..eb896b6b8bd 100644
--- a/dep/acelite/ace/Timer_Queue_T.inl
+++ b/dep/acelite/ace/Timer_Queue_T.inl
@@ -1,160 +1,38 @@
// -*- C++ -*-
//
-// $Id: Timer_Queue_T.inl 80826 2008-03-04 14:51:23Z wotte $
+// $Id: Timer_Queue_T.inl 95332 2011-12-15 11:09:41Z mcorino $
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-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)
+template <class TYPE, class FUNCTOR> ACE_INLINE FUNCTOR &
+ACE_Timer_Queue_Upcall_Base<TYPE, FUNCTOR>::upcall_functor (void)
{
- 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_;
- info.recurring_timer_ =
- this->interval_ > ACE_Time_Value::zero;
+ return *this->upcall_functor_;
}
-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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> ACE_INLINE void
+ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::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
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> ACE_INLINE const ACE_Time_Value &
+ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> ACE_INLINE int
+ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::expire (void)
{
if (!this->is_empty ())
- return this->expire (this->gettimeofday () + timer_skew_);
+ return this->expire (this->gettimeofday_static () + 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,
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> int
+ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::dispatch_info (const ACE_Time_Value &cur_time,
ACE_Timer_Node_Dispatch_Info_T<TYPE> &info)
{
ACE_TRACE ("ACE_Timer_Queue_T::dispatch_info");
@@ -163,8 +41,8 @@ ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::dispatch_info (const ACE_Time_Value
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 (ACE_Timer_Node_Dispatch_Info_T<TYPE> &info,
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> ACE_INLINE void
+ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::upcall (ACE_Timer_Node_Dispatch_Info_T<TYPE> &info,
const ACE_Time_Value &cur_time)
{
this->upcall_functor ().timeout (*this,
@@ -174,8 +52,8 @@ ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::upcall (ACE_Timer_Node_Dispatch_Info
cur_time);
}
-template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_INLINE void
-ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::preinvoke (ACE_Timer_Node_Dispatch_Info_T<TYPE> &info,
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> ACE_INLINE void
+ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::preinvoke (ACE_Timer_Node_Dispatch_Info_T<TYPE> &info,
const ACE_Time_Value &cur_time,
const void *&upcall_act)
{
@@ -187,8 +65,8 @@ ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::preinvoke (ACE_Timer_Node_Dispatch_I
upcall_act);
}
-template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_INLINE void
-ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::postinvoke (ACE_Timer_Node_Dispatch_Info_T<TYPE> &info,
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> ACE_INLINE void
+ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::postinvoke (ACE_Timer_Node_Dispatch_Info_T<TYPE> &info,
const ACE_Time_Value &cur_time,
const void *upcall_act)
{
@@ -200,23 +78,17 @@ ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::postinvoke (ACE_Timer_Node_Dispatch_
upcall_act);
}
-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))
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> ACE_INLINE ACE_Time_Value
+ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::gettimeofday_static (void)
{
- this->gettimeofday_ = gettimeofday;
+ // Get the current time according to the time policy.
+ return this->time_policy_ ();
}
-template <class TYPE, class FUNCTOR, class ACE_LOCK> ACE_INLINE FUNCTOR &
-ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK>::upcall_functor (void)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> ACE_INLINE void
+ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::set_time_policy (TIME_POLICY const & rhs)
{
- return *this->upcall_functor_;
+ this->time_policy_ = rhs;
}
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/Timer_Queuefwd.h b/dep/acelite/ace/Timer_Queuefwd.h
index 662f29c0411..46f0612cc87 100644
--- a/dep/acelite/ace/Timer_Queuefwd.h
+++ b/dep/acelite/ace/Timer_Queuefwd.h
@@ -4,7 +4,7 @@
/**
* @file Timer_Queuefwd.h
*
- * $Id: Timer_Queuefwd.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: Timer_Queuefwd.h 95332 2011-12-15 11:09:41Z mcorino $
*
* Forward declarations and typedefs of ACE_Timer_Queue class.
*
@@ -17,19 +17,13 @@
#include /**/ "ace/pre.h"
-#include "ace/Synch_Traits.h"
+#include "ace/config-all.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-template <class TYPE, class FUNCTOR, class ACE_LOCK> class ACE_Timer_Queue_T;
-template <class ACE_LOCK> class ACE_Event_Handler_Handle_Timeout_Upcall;
-
class ACE_Event_Handler;
-
-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;
+template <class TYPE> class ACE_Abstract_Timer_Queue;
+typedef ACE_Abstract_Timer_Queue<ACE_Event_Handler*> ACE_Timer_Queue;
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/Timer_Wheel.h b/dep/acelite/ace/Timer_Wheel.h
index 21ba8776102..12b8bff0d5d 100644
--- a/dep/acelite/ace/Timer_Wheel.h
+++ b/dep/acelite/ace/Timer_Wheel.h
@@ -4,7 +4,7 @@
/**
* @file Timer_Wheel.h
*
- * $Id: Timer_Wheel.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: Timer_Wheel.h 95335 2011-12-15 13:13:17Z msmit $
*
* @author Darrell Brunsch (brunsch@cs.wustl.edu)
*/
@@ -16,6 +16,7 @@
#include /**/ "ace/pre.h"
#include "ace/Timer_Wheel_T.h"
+#include "ace/Event_Handler_Handle_Timeout_Upcall.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
@@ -27,13 +28,14 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// compatibility.
typedef ACE_Timer_Wheel_T<ACE_Event_Handler *,
- ACE_Event_Handler_Handle_Timeout_Upcall<ACE_SYNCH_RECURSIVE_MUTEX>,
+ ACE_Event_Handler_Handle_Timeout_Upcall,
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_Event_Handler_Handle_Timeout_Upcall,
+ ACE_SYNCH_RECURSIVE_MUTEX,
+ ACE_Default_Time_Policy>
ACE_Timer_Wheel_Iterator;
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/Timer_Wheel_T.cpp b/dep/acelite/ace/Timer_Wheel_T.cpp
index 529cc456d50..4d596ed2c9b 100644
--- a/dep/acelite/ace/Timer_Wheel_T.cpp
+++ b/dep/acelite/ace/Timer_Wheel_T.cpp
@@ -1,4 +1,4 @@
-// $Id: Timer_Wheel_T.cpp 89254 2010-02-25 22:10:39Z cleeland $
+// $Id: Timer_Wheel_T.cpp 95401 2011-12-31 22:17:35Z schmidt $
#ifndef ACE_TIMER_WHEEL_T_CPP
#define ACE_TIMER_WHEEL_T_CPP
@@ -41,12 +41,13 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* @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
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
+ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::ACE_Timer_Wheel_T
(FUNCTOR* upcall_functor
, FreeList* freelist
+ , TIME_POLICY const & time_policy
)
-: Base (upcall_functor, freelist)
+ : Base_Timer_Queue (upcall_functor, freelist, time_policy)
, spokes_(0)
, spoke_count_(0) // calculated in open_i
, spoke_bits_(0)
@@ -71,14 +72,15 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::ACE_Timer_Wheel_T
* @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
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
+ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::ACE_Timer_Wheel_T
(u_int spoke_count,
u_int resolution,
size_t prealloc,
FUNCTOR* upcall_functor,
- FreeList* freelist)
-: Base (upcall_functor, freelist)
+ FreeList* freelist,
+ TIME_POLICY const & time_policy)
+: Base_Timer_Queue (upcall_functor, freelist, time_policy)
, spokes_ (0)
, spoke_count_ (0) // calculated in open_i
, spoke_bits_ (0)
@@ -91,8 +93,8 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::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,
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> int
+ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::power2bits (int n,
int min_bits,
int max_bits)
{
@@ -127,14 +129,12 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::power2bits (int n,
* 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
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> void
+ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::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
@@ -164,13 +164,30 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::open_i
}
/// 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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
+ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::~ACE_Timer_Wheel_T (void)
{
ACE_TRACE ("ACE_Timer_Wheel_T::~ACE_Timer_Wheel_T");
delete iterator_;
+ this->close ();
+ 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];
+ this->free_node (root);
+ }
+
+ delete[] this->spokes_;
+}
+
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> int
+ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::close (void)
+{
+ ACE_TRACE ("ACE_Timer_Wheel_T::close");
+
+ // Remove any remaining nodes
for (u_int i = 0; i < this->spoke_count_; ++i)
{
// Free all the nodes starting at the root
@@ -184,15 +201,16 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::~ACE_Timer_Wheel_T (void)
this->free_node (n);
n = next;
}
- delete root;
}
- delete[] this->spokes_;
+
+ // Leave rest for destructor
+ return 0;
}
/// Searches for a node by timer_id within one spoke.
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
ACE_Timer_Node_T<TYPE>*
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::find_spoke_node
+ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::find_spoke_node
(u_int spoke, long timer_id) const
{
ACE_Timer_Node_T<TYPE>* root = this->spokes_[spoke];
@@ -208,9 +226,9 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::find_spoke_node
/// 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>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
ACE_Timer_Node_T<TYPE>*
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::find_node (long timer_id) const
+ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::find_node (long timer_id) const
{
if (timer_id == -1)
return 0;
@@ -244,8 +262,8 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::find_node (long timer_id) const
*
* @return True if empty
*/
-template <class TYPE, class FUNCTOR, class ACE_LOCK> bool
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::is_empty (void) const
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> bool
+ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::is_empty (void) const
{
ACE_TRACE ("ACE_Timer_Wheel_T::is_empty");
return timer_count_ == 0;
@@ -255,8 +273,8 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::is_empty (void) const
/**
* @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
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> const ACE_Time_Value &
+ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::earliest_time (void) const
{
ACE_TRACE ("ACE_Timer_Wheel_T::earliest_time");
ACE_Timer_Node_T<TYPE>* n = this->get_first_i ();
@@ -268,8 +286,8 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::earliest_time (void) const
/// 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
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> u_int
+ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::calculate_spoke
(const ACE_Time_Value& t) const
{
return static_cast<u_int> ((t.msec () >> this->res_bits_) & (this->spoke_count_ - 1));
@@ -280,8 +298,8 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::calculate_spoke
/// 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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> long
+ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::generate_timer_id (u_int spoke)
{
int cnt_bits = sizeof (long) * 8 - this->spoke_bits_;
@@ -382,8 +400,8 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::generate_timer_id (u_int spoke)
* @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_i (const TYPE& type,
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> long
+ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::schedule_i (const TYPE& type,
const void* act,
const ACE_Time_Value& future_time,
const ACE_Time_Value& interval)
@@ -418,8 +436,8 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::schedule_i (const TYPE& type,
*
* @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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> void
+ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::reschedule (ACE_Timer_Node_T<TYPE>* n)
{
ACE_TRACE ("ACE_Timer_Wheel_T::reschedule");
const ACE_Time_Value& expire = n->get_timer_value ();
@@ -428,8 +446,8 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::reschedule (ACE_Timer_Node_T<TYPE>*
}
/// 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
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> void
+ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::schedule_i
(ACE_Timer_Node_T<TYPE>* n,
u_int spoke,
const ACE_Time_Value& expire)
@@ -476,8 +494,8 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::schedule_i
*
* @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,
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> int
+ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::reset_interval (long timer_id,
const ACE_Time_Value &interval
)
{
@@ -506,8 +524,8 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::reset_interval (long timer_id,
*
* @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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> int
+ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::cancel (const TYPE& type, int skip_close)
{
ACE_TRACE ("ACE_Timer_Wheel_T::cancel");
@@ -589,8 +607,8 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::cancel (const TYPE& type, int skip_c
* @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,
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> int
+ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::cancel (long timer_id,
const void **act,
int skip_close)
{
@@ -631,8 +649,8 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::cancel (long timer_id,
}
/// 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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> void
+ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::cancel_i (ACE_Timer_Node_T<TYPE>* n)
{
this->unlink (n);
this->free_node (n);
@@ -644,8 +662,8 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::cancel_i (ACE_Timer_Node_T<TYPE>* n)
/// 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
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> void
+ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::recalc_earliest
(const ACE_Time_Value& last)
{
// This is possible because we use a count for is_empty()
@@ -687,8 +705,8 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::recalc_earliest
* 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
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> void
+ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::dump (void) const
{
#if defined (ACE_HAS_DUMP)
ACE_TRACE ("ACE_Timer_Wheel_T::dump");
@@ -723,15 +741,15 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::dump (void) const
*
* @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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> ACE_Timer_Node_T<TYPE> *
+ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> void
+ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::unlink (ACE_Timer_Node_T<TYPE>* n)
{
ACE_TRACE ("ACE_Timer_Wheel_T::unlink");
--timer_count_;
@@ -741,8 +759,8 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::unlink (ACE_Timer_Node_T<TYPE>* n)
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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> ACE_Timer_Node_T<TYPE> *
+ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::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)
@@ -759,17 +777,17 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::remove_first_expired (const ACE_Time
*
* @return The earliest timer node.
*/
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
ACE_Timer_Node_T<TYPE>*
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::get_first (void)
+ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::get_first (void)
{
ACE_TRACE ("ACE_Timer_Wheel_T::get_first");
return this->get_first_i ();
}
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
ACE_Timer_Node_T<TYPE>*
-ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::get_first_i (void) const
+ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::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 ();
@@ -782,9 +800,9 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::get_first_i (void) const
/**
* @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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
+ACE_Timer_Queue_Iterator_T<TYPE> &
+ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::iter (void)
{
this->iterator_->first ();
return *this->iterator_;
@@ -794,8 +812,8 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::iter (void)
* 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 ()
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> int
+ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::expire ()
{
return ACE_Timer_Queue_T<TYPE,FUNCTOR,ACE_LOCK>::expire ();
}
@@ -808,8 +826,8 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::expire ()
*
* @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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> int
+ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::expire (const ACE_Time_Value& cur_time)
{
ACE_TRACE ("ACE_Timer_Wheel_T::expire");
@@ -866,8 +884,8 @@ ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK>::expire (const ACE_Time_Value& cur_ti
*
* @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
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
+ACE_Timer_Wheel_Iterator_T<TYPE,FUNCTOR,ACE_LOCK,TIME_POLICY>::ACE_Timer_Wheel_Iterator_T
(Wheel& wheel)
: timer_wheel_ (wheel)
{
@@ -878,10 +896,8 @@ ACE_Timer_Wheel_Iterator_T<TYPE,FUNCTOR,ACE_LOCK>::ACE_Timer_Wheel_Iterator_T
/**
* 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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
+ACE_Timer_Wheel_Iterator_T<TYPE,FUNCTOR,ACE_LOCK,TIME_POLICY>::~ACE_Timer_Wheel_Iterator_T (void)
{
}
@@ -894,8 +910,8 @@ ACE_LOCK>::~ACE_Timer_Wheel_Iterator_T (void)
* 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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> void
+ACE_Timer_Wheel_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::first (void)
{
this->goto_next(0);
}
@@ -904,8 +920,8 @@ ACE_Timer_Wheel_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::first (void)
/**
* 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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> void
+ACE_Timer_Wheel_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::next (void)
{
if (this->isdone())
return;
@@ -919,8 +935,8 @@ ACE_Timer_Wheel_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::next (void)
}
/// 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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> void
+ACE_Timer_Wheel_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::goto_next (u_int start_spoke)
{
// Find the first non-empty entry.
u_int sc = this->timer_wheel_.spoke_count_;
@@ -943,8 +959,8 @@ ACE_Timer_Wheel_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::goto_next (u_int start_spok
/**
* @return True when we there aren't any more items (when current_node_ == 0)
*/
-template <class TYPE, class FUNCTOR, class ACE_LOCK> bool
-ACE_Timer_Wheel_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::isdone (void) const
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> bool
+ACE_Timer_Wheel_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::isdone (void) const
{
return this->current_node_ == 0;
}
@@ -953,8 +969,8 @@ ACE_Timer_Wheel_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>::isdone (void) const
* @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)
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY> ACE_Timer_Node_T<TYPE> *
+ACE_Timer_Wheel_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>::item (void)
{
return this->current_node_;
}
diff --git a/dep/acelite/ace/Timer_Wheel_T.h b/dep/acelite/ace/Timer_Wheel_T.h
index 266099f2e6a..e451deca908 100644
--- a/dep/acelite/ace/Timer_Wheel_T.h
+++ b/dep/acelite/ace/Timer_Wheel_T.h
@@ -4,7 +4,7 @@
/**
* @file Timer_Wheel_T.h
*
- * $Id: Timer_Wheel_T.h 84619 2009-02-26 12:26:16Z johnnyw $
+ * $Id: Timer_Wheel_T.h 95368 2011-12-19 13:38:49Z mcorino $
*
* @author Darrell Brunsch <brunsch@cs.wustl.edu>
*/
@@ -15,6 +15,7 @@
#include /**/ "ace/pre.h"
#include "ace/Timer_Queue_T.h"
+#include "ace/Copy_Disabled.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
@@ -23,7 +24,7 @@
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// Forward declaration
-template <class TYPE, class FUNCTOR, class ACE_LOCK>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY>
class ACE_Timer_Wheel_T;
/**
@@ -35,19 +36,19 @@ class ACE_Timer_Wheel_T;
* 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>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY = ACE_Default_Time_Policy>
class ACE_Timer_Wheel_Iterator_T
- : public ACE_Timer_Queue_Iterator_T <TYPE, FUNCTOR, ACE_LOCK>
+ : public ACE_Timer_Queue_Iterator_T <TYPE>
{
public:
- typedef ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK> Wheel;
+ typedef ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY> Wheel;
typedef ACE_Timer_Node_T<TYPE> Node;
/// Constructor
ACE_Timer_Wheel_Iterator_T (Wheel &);
/// Destructor
- ~ACE_Timer_Wheel_Iterator_T (void);
+ virtual ~ACE_Timer_Wheel_Iterator_T (void);
/// Positions the iterator at the earliest node in the Timer Queue
virtual void first (void);
@@ -88,28 +89,31 @@ private:
* 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>
+template <class TYPE, class FUNCTOR, class ACE_LOCK, typename TIME_POLICY = ACE_Default_Time_Policy>
+class ACE_Timer_Wheel_T
+ : public ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>
{
public:
/// Type of iterator
- typedef ACE_Timer_Wheel_Iterator_T<TYPE, FUNCTOR, ACE_LOCK> Iterator;
+ typedef ACE_Timer_Wheel_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY> Iterator;
/// Iterator is a friend
- friend class ACE_Timer_Wheel_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>;
+ friend class ACE_Timer_Wheel_Iterator_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY>;
typedef ACE_Timer_Node_T<TYPE> Node;
/// Type inherited from
- typedef ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK> Base;
+ typedef ACE_Timer_Queue_T<TYPE, FUNCTOR, ACE_LOCK, TIME_POLICY> Base_Timer_Queue;
typedef ACE_Free_List<Node> FreeList;
/// Default constructor
- ACE_Timer_Wheel_T (FUNCTOR* upcall_functor = 0, FreeList* freelist = 0);
+ ACE_Timer_Wheel_T (FUNCTOR* upcall_functor = 0, FreeList* freelist = 0,
+ TIME_POLICY const & time_policy = TIME_POLICY());
/// 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);
+ FreeList* freelist = 0,
+ TIME_POLICY const & time_policy = TIME_POLICY());
/// Destructor
virtual ~ACE_Timer_Wheel_T (void);
@@ -139,6 +143,11 @@ public:
const void** act = 0,
int dont_call_handle_close = 1);
+ /**
+ * Destroy timer queue. Cancels all timers.
+ */
+ virtual int close (void);
+
/// Run the <functor> for all timers whose values are <=
/// <ACE_OS::gettimeofday>. Also accounts for <timer_skew>. Returns
/// the number of timers canceled.
@@ -150,7 +159,7 @@ public:
int expire (const ACE_Time_Value& current_time);
/// Returns a pointer to this <ACE_Timer_Queue_T>'s iterator.
- virtual ACE_Timer_Queue_Iterator_T<TYPE, FUNCTOR, ACE_LOCK>& iter (void);
+ virtual ACE_Timer_Queue_Iterator_T<TYPE> & iter (void);
/// Removes the earliest node from the queue and returns it
virtual ACE_Timer_Node_T<TYPE>* remove_first (void);
@@ -205,11 +214,6 @@ private:
ACE_Time_Value wheel_time_;
/// The total number of timers currently scheduled.
u_int timer_count_;
-
- // = Don't allow these operations for now, don't split into multiple lines
- // breaks sun compilers
- 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> &))
};
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/TkReactor/ACE_TkReactor_export.h b/dep/acelite/ace/TkReactor/ACE_TkReactor_export.h
new file mode 100644
index 00000000000..bbb6a52a1e3
--- /dev/null
+++ b/dep/acelite/ace/TkReactor/ACE_TkReactor_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id: ACE_TkReactor_export.h 80826 2008-03-04 14:51:23Z wotte $
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl -s ACE_TkReactor
+// ------------------------------
+#ifndef ACE_TKREACTOR_EXPORT_H
+#define ACE_TKREACTOR_EXPORT_H
+
+#include /**/ "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ACE_TKREACTOR_HAS_DLL)
+# define ACE_TKREACTOR_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ACE_TKREACTOR_HAS_DLL */
+
+#if !defined (ACE_TKREACTOR_HAS_DLL)
+# define ACE_TKREACTOR_HAS_DLL 1
+#endif /* ! ACE_TKREACTOR_HAS_DLL */
+
+#if defined (ACE_TKREACTOR_HAS_DLL) && (ACE_TKREACTOR_HAS_DLL == 1)
+# if defined (ACE_TKREACTOR_BUILD_DLL)
+# define ACE_TkReactor_Export ACE_Proper_Export_Flag
+# define ACE_TKREACTOR_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ACE_TKREACTOR_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ACE_TKREACTOR_BUILD_DLL */
+# define ACE_TkReactor_Export ACE_Proper_Import_Flag
+# define ACE_TKREACTOR_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ACE_TKREACTOR_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ACE_TKREACTOR_BUILD_DLL */
+#else /* ACE_TKREACTOR_HAS_DLL == 1 */
+# define ACE_TkReactor_Export
+# define ACE_TKREACTOR_SINGLETON_DECLARATION(T)
+# define ACE_TKREACTOR_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ACE_TKREACTOR_HAS_DLL == 1 */
+
+// Set ACE_TKREACTOR_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ACE_TKREACTOR_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ACE_TKREACTOR_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ACE_TKREACTOR_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ACE_TKREACTOR_NTRACE */
+
+#if (ACE_TKREACTOR_NTRACE == 1)
+# define ACE_TKREACTOR_TRACE(X)
+#else /* (ACE_TKREACTOR_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ACE_TKREACTOR_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ACE_TKREACTOR_NTRACE == 1) */
+
+#endif /* ACE_TKREACTOR_EXPORT_H */
+
+// End of auto generated file.
diff --git a/dep/acelite/ace/TkReactor/TkReactor.cpp b/dep/acelite/ace/TkReactor/TkReactor.cpp
new file mode 100644
index 00000000000..1d73e0f6fe1
--- /dev/null
+++ b/dep/acelite/ace/TkReactor/TkReactor.cpp
@@ -0,0 +1,438 @@
+// $Id: TkReactor.cpp 91368 2010-08-16 13:03:34Z mhengstmengel $
+#include "ace/TkReactor/TkReactor.h"
+
+#include "ace/SOCK_Acceptor.h"
+#include "ace/SOCK_Connector.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+ACE_ALLOC_HOOK_DEFINE (ACE_TkReactor)
+
+// Must be called with lock held
+ACE_TkReactor::ACE_TkReactor (size_t size,
+ bool 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;
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/TkReactor/TkReactor.h b/dep/acelite/ace/TkReactor/TkReactor.h
new file mode 100644
index 00000000000..60ad54dd42f
--- /dev/null
+++ b/dep/acelite/ace/TkReactor/TkReactor.h
@@ -0,0 +1,136 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file TkReactor.h
+ *
+ * $Id: TkReactor.h 82723 2008-09-16 09:35:44Z johnnyw $
+ *
+ * @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 */
+
+#include "ace/TkReactor/ACE_TkReactor_export.h"
+#include "ace/Select_Reactor.h"
+#include /**/ <tk.h>
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+/**
+ * @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_TkReactor_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_TkReactor_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_TkReactor_Export ACE_TkReactor : public ACE_Select_Reactor
+{
+public:
+ // = Initialization and termination methods.
+ ACE_TkReactor (size_t size = DEFAULT_SIZE,
+ bool restart = false,
+ 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 @a 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 @a handler associated with this @a 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 &);
+};
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#include /**/ "ace/post.h"
+#endif /* ACE_TK_REACTOR_H */
diff --git a/dep/acelite/ace/Token.cpp b/dep/acelite/ace/Token.cpp
index c63370fa534..909f14c16e3 100644
--- a/dep/acelite/ace/Token.cpp
+++ b/dep/acelite/ace/Token.cpp
@@ -1,4 +1,4 @@
-// $Id: Token.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: Token.cpp 96024 2012-08-09 19:42:19Z schmidt $
#include "ace/Token.h"
@@ -204,9 +204,7 @@ ACE_Token::shared_acquire (void (*sleep_hook_func)(void *),
return 0;
}
- //
// Someone already holds the token.
- //
// Check if it is us.
if (ACE_OS::thr_equal (thr_id, this->owner_))
@@ -536,7 +534,6 @@ ACE_Token::wakeup_next_waiter (void)
// Wake up waiter and make it runable.
queue->head_->runable_ = 1;
queue->head_->signal ();
-
this->owner_ = queue->head_->thread_id_;
}
diff --git a/dep/acelite/ace/Truncate.h b/dep/acelite/ace/Truncate.h
index 223513a56d9..8ff05141516 100644
--- a/dep/acelite/ace/Truncate.h
+++ b/dep/acelite/ace/Truncate.h
@@ -4,7 +4,7 @@
/**
* @file Truncate.h
*
- * $Id: Truncate.h 83306 2008-10-17 12:19:53Z johnnyw $
+ * $Id: Truncate.h 95761 2012-05-15 18:23:04Z johnnyw $
*
* @author Steve Huston <shuston@riverace.com>
* @author Ossama Othman <ossama_othman@symantec.com>
@@ -27,10 +27,6 @@
#include "ace/If_Then_Else.h"
#include "ace/Numeric_Limits.h"
-#if defined (ACE_LACKS_LONGLONG_T)
-# include "ace/Basic_Types.h"
-#endif /* ACE_LACKS_LONGLONG_T */
-
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
namespace ACE_Utils
@@ -42,30 +38,24 @@ namespace ACE_Utils
template<> struct Sign_Check<unsigned short> { ACE_STATIC_CONSTANT (bool, is_signed = 0); };
template<> struct Sign_Check<unsigned int> { ACE_STATIC_CONSTANT (bool, is_signed = 0); };
template<> struct Sign_Check<unsigned long> { ACE_STATIC_CONSTANT (bool, is_signed = 0); };
-#if !(defined(ACE_LACKS_LONGLONG_T) || defined(ACE_LACKS_UNSIGNEDLONGLONG_T))
# ifdef __GNUC__
// Silence g++ "-pedantic" warnings regarding use of "long long"
// type.
__extension__
# endif /* __GNUC__ */
template<> struct Sign_Check<unsigned long long> { ACE_STATIC_CONSTANT (bool, is_signed = 0); };
-#else
- template<> struct Sign_Check<ACE_U_LongLong> { ACE_STATIC_CONSTANT (bool, is_signed = 0); };
-#endif /* !ACE_LACKS_LONGLONG_T */
// Specialize the signed cases.
template<> struct Sign_Check<signed char> { ACE_STATIC_CONSTANT (bool, is_signed = 1); };
template<> struct Sign_Check<signed short> { ACE_STATIC_CONSTANT (bool, is_signed = 1); };
template<> struct Sign_Check<signed int> { ACE_STATIC_CONSTANT (bool, is_signed = 1); };
template<> struct Sign_Check<signed long> { ACE_STATIC_CONSTANT (bool, is_signed = 1); };
-#ifndef ACE_LACKS_LONGLONG_T
# ifdef __GNUC__
// Silence g++ "-pedantic" warnings regarding use of "long long"
// type.
__extension__
# endif /* __GNUC__ */
template<> struct Sign_Check<signed long long> { ACE_STATIC_CONSTANT (bool, is_signed = 1); };
-#endif /* !ACE_LACKS_LONGLONG_T */
// -----------------------------------------------------
@@ -110,7 +100,6 @@ namespace ACE_Utils
unsigned_type operator() (unsigned_type x) { return x; }
};
-#if !(defined(ACE_LACKS_LONGLONG_T) || defined(ACE_LACKS_UNSIGNEDLONGLONG_T))
# ifdef __GNUC__
// Silence g++ "-pedantic" warnings regarding use of "long long"
// type.
@@ -123,15 +112,6 @@ namespace ACE_Utils
unsigned_type operator() (unsigned_type x) { return x; }
};
-#else
- template<>
- struct To_Unsigned<ACE_U_LongLong>
- {
- typedef ACE_U_LongLong unsigned_type;
-
- unsigned_type operator() (unsigned_type x) { return x; }
- };
-#endif /* !ACE_LACKS_LONGLONG_T */
// ----------------
@@ -183,7 +163,6 @@ namespace ACE_Utils
}
};
-#if !(defined(ACE_LACKS_LONGLONG_T) || defined(ACE_LACKS_UNSIGNEDLONGLONG_T))
# ifdef __GNUC__
// Silence g++ "-pedantic" warnings regarding use of "long long"
// type.
@@ -200,7 +179,6 @@ namespace ACE_Utils
return static_cast<unsigned_type> (x);
}
};
-#endif /* !ACE_LACKS_LONGLONG_T */
// -----------------------------------------------------
@@ -439,28 +417,6 @@ namespace ACE_Utils
};
-#if defined (ACE_LACKS_LONGLONG_T) || defined (ACE_LACKS_UNSIGNEDLONGLONG_T)
- // Partial specialization for the case where we're casting from
- // ACE_U_LongLong to a smaller integer. We assume that we're always
- // truncating from ACE_U_LongLong to a smaller type. The partial
- // specialization above handles the case where both the FROM and TO
- // types are ACE_U_LongLong.
- template<typename TO>
- struct Truncator<ACE_U_LongLong, TO>
- {
- TO operator() (ACE_U_LongLong const & val)
- {
- // If val less than or equal to ACE_Numeric_Limits<TO>::max(),
- // val.lo() must be less than or equal to
- // ACE_Numeric_Limits<TO>::max (), as well.
- return
- (val > ACE_Numeric_Limits<TO>::max ()
- ? ACE_Numeric_Limits<TO>::max ()
- : static_cast<TO> (val.lo ()));
- }
- };
-#endif /* ACE_LACKS_LONGLONG_T || ACE_LACKS_UNSIGNEDLONGLONG_T */
-
// -----------------------------------------------------
/**
* @struct Noop_Truncator
diff --git a/dep/acelite/ace/UUID.cpp b/dep/acelite/ace/UUID.cpp
index 8fdf150b0fd..09855ca672d 100644
--- a/dep/acelite/ace/UUID.cpp
+++ b/dep/acelite/ace/UUID.cpp
@@ -1,4 +1,4 @@
-//$Id: UUID.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+//$Id: UUID.cpp 96017 2012-08-08 22:18:09Z mitza $
#include "ace/UUID.h"
#include "ace/Guard_T.h"
@@ -359,7 +359,7 @@ namespace ACE_Utils
uuid.time_mid (static_cast<ACE_UINT16> ((timestamp >> 32) & 0xFFFF));
ACE_UINT16 tHAV = static_cast<ACE_UINT16> ((timestamp >> 48) & 0xFFFF);
- tHAV |= (version << 12);
+ tHAV = static_cast<ACE_UINT16> (tHAV | (version << 12));
uuid.time_hi_and_version (tHAV);
u_char cseqHAV;
@@ -367,7 +367,7 @@ namespace ACE_Utils
cseqHAV = static_cast<u_char> ((clock_sequence & 0x3f00) >> 8);
uuid_state_.timestamp = timestamp;
- cseqHAV |= variant;
+ cseqHAV = static_cast<u_char> (cseqHAV | variant);
uuid.clock_seq_hi_and_reserved (cseqHAV);
uuid.node (uuid_state_.node);
@@ -460,13 +460,7 @@ namespace ACE_Utils
UUID_Generator::get_systemtime (UUID_Time & timestamp)
{
const UUID_Time timeOffset =
-#if defined (ACE_LACKS_UNSIGNEDLONGLONG_T)
- ACE_U_LongLong (ACE_INT64_LITERAL (0x1B21DD213814000));
-#elif defined (ACE_LACKS_LONGLONG_T)
- ACE_U_LongLong (0x13814000u, 0x1B21DD2u);
-#else
ACE_UINT64_LITERAL (0x1B21DD213814000);
-#endif /* ACE_LACKS_UNSIGNEDLONGLONG_T */
/// Get the time of day, convert to 100ns ticks then add the offset.
ACE_Time_Value now = ACE_OS::gettimeofday ();
diff --git a/dep/acelite/ace/Unbounded_Set_Ex.cpp b/dep/acelite/ace/Unbounded_Set_Ex.cpp
index c5cd9e27b21..763d7aa01f3 100644
--- a/dep/acelite/ace/Unbounded_Set_Ex.cpp
+++ b/dep/acelite/ace/Unbounded_Set_Ex.cpp
@@ -1,4 +1,4 @@
-// $Id: Unbounded_Set_Ex.cpp 81702 2008-05-15 10:18:07Z johnnyw $
+// $Id: Unbounded_Set_Ex.cpp 94304 2011-07-07 15:25:58Z johnnyw $
#ifndef ACE_UNBOUNDED_SET_EX_CPP
#define ACE_UNBOUNDED_SET_EX_CPP
@@ -76,7 +76,7 @@ ACE_Unbounded_Set_Ex<T, C>::dump (void) const
const_iterator const the_end = this->end ();
for (const_iterator i (this->begin ());
- i != end;
+ i != the_end;
++i)
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("count = %u\n"), count++));
diff --git a/dep/acelite/ace/Value_Ptr.h b/dep/acelite/ace/Value_Ptr.h
index c9272a90cff..dbcd20a0f2c 100644
--- a/dep/acelite/ace/Value_Ptr.h
+++ b/dep/acelite/ace/Value_Ptr.h
@@ -4,7 +4,7 @@
/**
* @file Value_Ptr.h
*
- * $Id: Value_Ptr.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: Value_Ptr.h 92386 2010-10-28 07:44:37Z johnnyw $
*
* Value_Ptr implementation based on code in Herb Sutter's book "More
* Exceptional C++".
@@ -103,11 +103,6 @@ namespace ACE
return *this;
}
-#ifndef ACE_LACKS_MEMBER_TEMPLATES
-
- // Compiler can't handle member templates so we lose converting
- // copy operations.
-
/// Converting copy constructor.
template <typename U>
Value_Ptr (Value_Ptr<U> const & other)
@@ -123,12 +118,8 @@ namespace ACE
return *this;
}
-#endif /* !ACE_LACKS_MEMBER_TEMPLATES */
-
private:
-#ifndef ACE_LACKS_MEMBER_TEMPLATES
-
/// Copying method invoked when copy constructing.
template <typename U>
T * create_from (U const * p) const
@@ -136,24 +127,8 @@ namespace ACE
return p ? VP_traits<U>::clone (p) : 0;
}
-#else
-
- // Compiler can't handle member templates so we lose converting
- // copy operations.
-
- /// Copying method invoked when copy constructing.
- T * create_from (T const * p) const
- {
- return p ? VP_traits<T>::clone (p) : 0;
- }
-
-#endif /* !ACE_LACKS_MEMBER_TEMPLATES */
-
private:
-
-#ifndef ACE_LACKS_MEMBER_TEMPLATES
template <typename U> friend class Value_Ptr;
-#endif /* !ACE_LACKS_MEMBER_TEMPLATES */
/// Object owned by this @c Value_Ptr.
T * p_;
diff --git a/dep/acelite/ace/Version.h b/dep/acelite/ace/Version.h
index 835fc849fd1..33a98834bad 100644
--- a/dep/acelite/ace/Version.h
+++ b/dep/acelite/ace/Version.h
@@ -1,9 +1,9 @@
// -*- C++ -*-
-// $Id: Version.h 92364 2010-10-27 10:02:39Z johnnyw $
+// $Id: Version.h 96107 2012-08-29 06:17:32Z johnnyw $
// This is file was automatically generated by \$ACE_ROOT/bin/make_release.py
-#define ACE_MAJOR_VERSION 5
-#define ACE_MINOR_VERSION 8
-#define ACE_BETA_VERSION 3
-#define ACE_VERSION "5.8.3"
+#define ACE_MAJOR_VERSION 6
+#define ACE_MINOR_VERSION 1
+#define ACE_BETA_VERSION 4
+#define ACE_VERSION "6.1.4"
diff --git a/dep/acelite/ace/WFMO_Reactor.cpp b/dep/acelite/ace/WFMO_Reactor.cpp
index a86b9798e50..dd4086ffd06 100644
--- a/dep/acelite/ace/WFMO_Reactor.cpp
+++ b/dep/acelite/ace/WFMO_Reactor.cpp
@@ -1,4 +1,4 @@
-// $Id: WFMO_Reactor.cpp 91286 2010-08-05 09:04:31Z johnnyw $
+// $Id: WFMO_Reactor.cpp 95368 2011-12-19 13:38:49Z mcorino $
#include "ace/WFMO_Reactor.h"
@@ -1153,6 +1153,8 @@ ACE_WFMO_Reactor::open (size_t size,
// Timer Queue
if (this->delete_timer_queue_)
delete this->timer_queue_;
+ else if (this->timer_queue_)
+ this->timer_queue_->close ();
if (tq == 0)
{
@@ -1283,8 +1285,14 @@ ACE_WFMO_Reactor::timer_queue (void) const
int
ACE_WFMO_Reactor::timer_queue (ACE_Timer_Queue *tq)
{
- if (this->timer_queue_ != 0 && this->delete_timer_queue_)
- delete this->timer_queue_;
+ if (this->delete_timer_queue_)
+ {
+ delete this->timer_queue_;
+ }
+ else if (this->timer_queue_)
+ {
+ this->timer_queue_->close ();
+ }
this->timer_queue_ = tq;
this->delete_timer_queue_ = false;
return 0;
@@ -1326,6 +1334,11 @@ ACE_WFMO_Reactor::~ACE_WFMO_Reactor (void)
this->timer_queue_ = 0;
this->delete_timer_queue_ = false;
}
+ else if (this->timer_queue_)
+ {
+ this->timer_queue_->close ();
+ this->timer_queue_ = 0;
+ }
if (this->delete_signal_handler_)
{
@@ -1683,7 +1696,10 @@ ACE_WFMO_Reactor::event_handling (ACE_Time_Value *max_wait_time,
// Make sure we are not closed
if (!this->open_for_business_ || this->deactivated_)
- return -1;
+ {
+ errno = ESHUTDOWN;
+ return -1;
+ }
// Stash the current time -- the destructor of this object will
// automatically compute how much time elapsed since this method was
@@ -1952,7 +1968,6 @@ ACE_WFMO_Reactor::dispatch_handles (DWORD wait_status)
{
const bool ok = (
#if ! defined(__BORLANDC__) \
- && !defined (ghs) \
&& !defined (__MINGW32__) \
&& !defined (_MSC_VER)
// wait_status is unsigned in Borland, Green Hills,
diff --git a/dep/acelite/ace/WFMO_Reactor.h b/dep/acelite/ace/WFMO_Reactor.h
index fb3a14d28cd..e15643e3bbf 100644
--- a/dep/acelite/ace/WFMO_Reactor.h
+++ b/dep/acelite/ace/WFMO_Reactor.h
@@ -4,7 +4,7 @@
/**
* @file WFMO_Reactor.h
*
- * $Id: WFMO_Reactor.h 84727 2009-03-05 19:22:29Z johnnyw $
+ * $Id: WFMO_Reactor.h 93792 2011-04-07 11:48:50Z mcorino $
*
* @author Irfan Pyarali <irfan@cs.wustl.edu>
* @author Tim Harrison <harrison@cs.wustl.edu>
@@ -112,7 +112,7 @@ public:
* @class Common_Info
*
* @brief This struct contains the necessary information for every
- * <Event_Handler> entry. The reason the event is not in this
+ * 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.
@@ -124,25 +124,25 @@ public:
/// event
bool io_entry_;
- /// The assosiated <Event_Handler>
+ /// 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.
+ /// 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
+ * 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
+ * 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.
+ * Event_Handler removes itself from WFMO_Reactor. This entry
+ * is only valid if the io_entry_ flag is true.
*/
bool delete_event_;
@@ -150,8 +150,8 @@ public:
bool delete_entry_;
/**
- * These are the masks related to <handle_close> for the
- * <Event_Handler>. This is only valid when <delete_entry_> is
+ * 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_;
@@ -302,7 +302,7 @@ public:
/// Destructor.
virtual ~ACE_WFMO_Reactor_Handler_Repository (void);
- /// Initialize the repository of the approriate @a size.
+ /// Initialize the repository of the appropriate @a size.
int open (size_t size);
/// Close down the handler repository.
@@ -314,7 +314,7 @@ public:
/// the simple event entry.
int bind (ACE_HANDLE, ACE_Event_Handler *);
- /// Insert I/O <Event_Handler> entry into the system. This method
+ /// 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 (bool io_entry,
ACE_Event_Handler *event_handler,
@@ -363,7 +363,7 @@ public:
/**
* This method is used to calculate the network mask after a mask_op
- * request to <WFMO_Reactor>. Note that because the <Event_Handler>
+ * 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
*/
@@ -561,7 +561,7 @@ public:
/**
* Get the maximum number of times that the
- * <ACE_WFMO_Reactor_Notify::handle_input> method will iterate and
+ * 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.
@@ -592,7 +592,7 @@ private:
*/
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
+ /// 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_;
@@ -808,7 +808,7 @@ public:
* <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>
+ * the Event_Handler
*/
virtual int register_handler (ACE_HANDLE event_handle,
ACE_HANDLE io_handle,
@@ -827,7 +827,7 @@ public:
/**
* 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
+ * Event_Handler and the event handle will always be created by
* <WFMO_Reactor>
*/
virtual int register_handler (ACE_Event_Handler *event_handler,
@@ -874,10 +874,10 @@ public:
* either be the <event_handle> or the <io_handle>
*
* For the case of I/O entries, this removes the @a mask binding of
- * <Event_Handler> whose handle is @a handle from <WFMO_Reactor>. If
+ * Event_Handler whose handle is @a 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
+ * mostly ignored and the Event_Handler is always removed from
* <WFMO_Reactor>
*/
virtual int remove_handler (ACE_HANDLE handle,
@@ -885,7 +885,7 @@ public:
/**
* Removes all the @a mask bindings for handles in the @a handle_set
- * bind of <Event_Handler>. If there are no more bindings for any
+ * 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,
@@ -903,13 +903,13 @@ public:
ACE_Sig_Action *old_disp = 0,
int sigkey = -1);
- /// Calls <remove_handler> for every signal in @a sigset.
+ /// Calls remove_handler() for every signal in @a sigset.
virtual int remove_handler (const ACE_Sig_Set &sigset);
// = Suspend and resume Handlers.
/// Suspend @a event_handler temporarily. Use
- /// <ACE_Event_Handler::get_handle> to get the handle.
+ /// ACE_Event_Handler::get_handle() to get the handle.
virtual int suspend_handler (ACE_Event_Handler *event_handler);
/// Suspend @a handle temporarily.
@@ -918,7 +918,7 @@ public:
/// Suspend all @a handles in handle set temporarily.
virtual int suspend_handler (const ACE_Handle_Set &handles);
- /// Suspend all <handles> temporarily.
+ /// Suspend all handles temporarily.
virtual int suspend_handlers (void);
/// Resume @a event_handler. Use <ACE_Event_Handler::get_handle> to
@@ -975,7 +975,7 @@ public:
/**
* Resets the interval of the timer represented by @a timer_id to
* @a interval, which is specified in relative time to the current
- * <gettimeofday>. If @a interval is equal to
+ * gettimeofday(). If @a interval is equal to
* ACE_Time_Value::zero, the timer will become a non-rescheduling
* timer. Returns 0 if successful, -1 if not.
*/
@@ -1019,15 +1019,15 @@ public:
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
+ * Remove @a masks_to_be_deleted to the <handle>'s entry in
+ * WFMO_Reactor. The Event_Handler associated with @a event_handler 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
+ * Remove @a 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.
*/
diff --git a/dep/acelite/ace/WIN32_Asynch_IO.cpp b/dep/acelite/ace/WIN32_Asynch_IO.cpp
index 75da1ad6f08..8eaf745ed15 100644
--- a/dep/acelite/ace/WIN32_Asynch_IO.cpp
+++ b/dep/acelite/ace/WIN32_Asynch_IO.cpp
@@ -1,4 +1,4 @@
-// $Id: WIN32_Asynch_IO.cpp 91368 2010-08-16 13:03:34Z mhengstmengel $
+// $Id: WIN32_Asynch_IO.cpp 95652 2012-03-23 22:11:35Z shuston $
#include "ace/WIN32_Asynch_IO.h"
@@ -3367,11 +3367,15 @@ ACE_WIN32_Asynch_Read_Dgram::recv (ACE_Message_Block *message_block,
-1);
// do the scatter/gather recv
+ // NOTE! The flags value is in/out to recvfrom() - it's changed AFTER
+ // the call to WSARecvFrom returns and if it completes immediately, the
+ // result object may already be deleted. Since the changed value is not
+ // used, and not needed by result, pass a copy to avoid the race.
ssize_t initiate_result = ACE_OS::recvfrom (result->handle (),
iov,
iovcnt,
number_of_bytes_recvd,
- result->flags_,
+ flags,
result->saddr (),
&(result->addr_len_),
result,
@@ -3644,7 +3648,9 @@ ACE_WIN32_Asynch_Write_Dgram::send (ACE_Message_Block *message_block,
do
{
- if (msg_len >= 0 && iovcnt < ACE_IOV_MAX)
+ //if (msg_len >= 0 && iovcnt < ACE_IOV_MAX)
+ // msg_len >= 0 is always true since msg_len is unsigned
+ if (iovcnt < ACE_IOV_MAX)
{
u_long this_chunk_length;
if (msg_len > ULONG_MAX)
diff --git a/dep/acelite/ace/XML_Utils/XMLSchema/Traversal.hpp b/dep/acelite/ace/XML_Utils/XMLSchema/Traversal.hpp
new file mode 100644
index 00000000000..6c13fc94d9d
--- /dev/null
+++ b/dep/acelite/ace/XML_Utils/XMLSchema/Traversal.hpp
@@ -0,0 +1,76 @@
+// file : XMLSchema/Traversal.hpp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id: Traversal.hpp 95832 2012-06-06 13:09:50Z johnnyw $
+
+#ifndef XMLSCHEMA_TRAVERSAL_HPP
+#define XMLSCHEMA_TRAVERSAL_HPP
+
+#include <ace/XML_Utils/XSCRT/Traversal.hpp>
+#include <ace/XML_Utils/XMLSchema/Types.hpp>
+
+namespace XMLSchema
+{
+ namespace Traversal
+ {
+ // Automatic traversal of IDREFs.
+ //
+ //
+ struct IDREF :
+ XSCRT::Traversal::Traverser<XMLSchema::IDREF_Base, XSCRT::Type>
+ {
+ virtual void
+ traverse (XMLSchema::IDREF_Base& r)
+ {
+ if (r.get ()) dispatch (*(r.get ()));
+ }
+
+ virtual void
+ traverse (XMLSchema::IDREF_Base const& r)
+ {
+ if (r.get ()) dispatch (*(r.get ()));
+ }
+ };
+
+
+ template <typename T>
+ struct Traverser : XSCRT::Traversal::Traverser<T, XSCRT::Type>
+ {
+ };
+
+ typedef Traverser<byte> byte;
+ typedef Traverser<unsignedByte> unsignedByte;
+
+ typedef Traverser<short_> short_;
+ typedef Traverser<unsignedShort> unsignedShort;
+
+ typedef Traverser<int_> int_;
+ typedef Traverser<unsignedInt> unsignedInt;
+
+ typedef Traverser<long_> long_;
+ typedef Traverser<unsignedLong> unsignedLong;
+
+ typedef Traverser<boolean> boolean;
+
+ typedef Traverser<float_> float_;
+ typedef Traverser<double_> double_;
+
+ template <typename C>
+ struct string : Traverser<XMLSchema::string<C> >
+ {
+ };
+
+ template <typename C>
+ struct ID : Traverser<XMLSchema::ID<C> >
+ {
+ };
+
+ template <typename C>
+ struct anyURI : Traverser <XMLSchema::anyURI<C> >
+ {
+ };
+ }
+}
+
+#include <ace/XML_Utils/XMLSchema/Traversal.ipp>
+
+#endif // XMLSCHEMA_TRAVERSAL_HPP
diff --git a/dep/acelite/ace/XML_Utils/XMLSchema/Traversal.ipp b/dep/acelite/ace/XML_Utils/XMLSchema/Traversal.ipp
new file mode 100644
index 00000000000..8d467fa319a
--- /dev/null
+++ b/dep/acelite/ace/XML_Utils/XMLSchema/Traversal.ipp
@@ -0,0 +1,10 @@
+// file : XMLSchema/Traversal.ipp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id: Traversal.ipp 86462 2009-08-12 13:31:27Z wotte $
+
+namespace XMLSchema
+{
+ namespace Traversal
+ {
+ }
+}
diff --git a/dep/acelite/ace/XML_Utils/XMLSchema/TypeInfo.hpp b/dep/acelite/ace/XML_Utils/XMLSchema/TypeInfo.hpp
new file mode 100644
index 00000000000..7825bf67337
--- /dev/null
+++ b/dep/acelite/ace/XML_Utils/XMLSchema/TypeInfo.hpp
@@ -0,0 +1,22 @@
+// file : XMLSchema/TypeInfo.hpp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id: TypeInfo.hpp 95802 2012-05-31 12:37:36Z johnnyw $
+
+#ifndef XMLSCHEMA_TYPE_INFO_HPP
+#define XMLSCHEMA_TYPE_INFO_HPP
+
+#include <ace/XML_Utils/XSCRT/ExtendedTypeInfo.hpp>
+
+namespace XMLSchema
+{
+ template <typename C>
+ struct TypeInfoInitializer
+ {
+ TypeInfoInitializer (XSCRT::ExtendedTypeInfoMap&);
+ };
+}
+
+#include <ace/XML_Utils/XMLSchema/TypeInfo.ipp>
+#include <ace/XML_Utils/XMLSchema/TypeInfo.tpp>
+
+#endif // XMLSCHEMA_TYPE_INFO_HPP
diff --git a/dep/acelite/ace/XML_Utils/XMLSchema/TypeInfo.ipp b/dep/acelite/ace/XML_Utils/XMLSchema/TypeInfo.ipp
new file mode 100644
index 00000000000..8f8487311f0
--- /dev/null
+++ b/dep/acelite/ace/XML_Utils/XMLSchema/TypeInfo.ipp
@@ -0,0 +1,7 @@
+// file : XMLSchema/TypeInfo.ipp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id: TypeInfo.ipp 86462 2009-08-12 13:31:27Z wotte $
+
+namespace XMLSchema
+{
+}
diff --git a/dep/acelite/ace/XML_Utils/XMLSchema/TypeInfo.tpp b/dep/acelite/ace/XML_Utils/XMLSchema/TypeInfo.tpp
new file mode 100644
index 00000000000..1be4df0cf31
--- /dev/null
+++ b/dep/acelite/ace/XML_Utils/XMLSchema/TypeInfo.tpp
@@ -0,0 +1,98 @@
+// file : XMLSchema/TypeInfo.tpp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id: TypeInfo.tpp 91814 2010-09-17 08:33:40Z johnnyw $
+
+namespace XMLSchema
+{
+ //@@ VC6
+ //
+ template<typename T>
+ void
+ add_info (XSCRT::ExtendedTypeInfoMap& map, T*)
+ {
+ using XSCRT::TypeId;
+ using XSCRT::ExtendedTypeInfo;
+
+ TypeId id (typeid (T));
+ ExtendedTypeInfo info (id);
+
+ info.add_base (ExtendedTypeInfo::Access::public_,
+ false,
+ typeid (XSCRT::Type));
+
+ map.insert (std::make_pair (id, info));
+ }
+
+
+ template <typename C>
+ inline
+ TypeInfoInitializer<C>::
+ TypeInfoInitializer (XSCRT::ExtendedTypeInfoMap& map)
+ {
+ using XSCRT::TypeId;
+ using XSCRT::ExtendedTypeInfo;
+
+ // XSCRT::Type
+ //
+ {
+ TypeId id (typeid (XSCRT::Type));
+ map.insert (std::make_pair (id, ExtendedTypeInfo (id)));
+ }
+
+ //@@ VC6
+
+ add_info<byte> (map, 0);
+ add_info<unsignedByte> (map, 0);
+
+ add_info<short_> (map, 0);
+ add_info<unsignedShort> (map, 0);
+
+ add_info<int_> (map, 0);
+ add_info<unsignedInt> (map, 0);
+
+ add_info<long_> (map, 0);
+ add_info<unsignedLong> (map, 0);
+
+ add_info<boolean> (map, 0);
+
+ add_info<float_> (map, 0);;
+ add_info<double_> (map, 0);
+
+ add_info<string<C> > (map, 0);
+
+ add_info<normalizedString<C> > (map, 0);
+ add_info<token<C> > (map, 0);
+ add_info<NMTOKEN<C> > (map, 0);
+ add_info<Name<C> > (map, 0);
+ add_info<NCName<C> > (map, 0);
+ add_info<QName<C> > (map, 0);
+
+ add_info<ID<C> > (map, 0);
+
+ // IDREF_Base
+ //
+ {
+ TypeId id (typeid (IDREF_Base));
+ ExtendedTypeInfo info (id);
+
+ info.add_base (ExtendedTypeInfo::Access::public_,
+ false,
+ typeid (XSCRT::Type));
+
+ map.insert (std::make_pair (id, info));
+ }
+
+ // IDREF
+ //
+ {
+ TypeId id (typeid (IDREF<C>));
+ ExtendedTypeInfo info (id);
+
+ info.add_base (ExtendedTypeInfo::Access::public_,
+ false,
+ typeid (IDREF_Base));
+
+ map.insert (std::make_pair (id, info));
+ }
+ }
+}
diff --git a/dep/acelite/ace/XML_Utils/XMLSchema/Types.hpp b/dep/acelite/ace/XML_Utils/XMLSchema/Types.hpp
new file mode 100644
index 00000000000..fdbcdb43928
--- /dev/null
+++ b/dep/acelite/ace/XML_Utils/XMLSchema/Types.hpp
@@ -0,0 +1,669 @@
+// file : XMLSchema/Types.hpp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id: Types.hpp 95832 2012-06-06 13:09:50Z johnnyw $
+
+#ifndef XMLSCHEMA_TYPES_HPP
+#define XMLSCHEMA_TYPES_HPP
+
+#include <string>
+#include "ace/XML_Utils/XSCRT/Elements.hpp"
+
+#include "ace/Basic_Types.h"
+/**
+ * @@ HACK: VC7
+ *
+ * Disabled the warning about using this in the base member initialization section.
+ * Our use in this file is fine.
+ */
+#ifdef _MSC_VER
+# pragma warning ( disable: 4355 )
+#endif
+namespace XMLSchema
+{
+ typedef XSCRT::FundamentalType<ACE_INT8> byte;
+ typedef XSCRT::FundamentalType<ACE_UINT8> unsignedByte;
+
+ typedef XSCRT::FundamentalType<ACE_INT16> short_;
+ typedef XSCRT::FundamentalType<ACE_UINT16> unsignedShort;
+
+ typedef XSCRT::FundamentalType<ACE_INT32> int_;
+ typedef XSCRT::FundamentalType<ACE_UINT32> unsignedInt;
+
+ typedef XSCRT::FundamentalType<ACE_INT64> long_;
+ typedef XSCRT::FundamentalType<ACE_UINT64> unsignedLong;
+
+ //@@ It would be nice to use some arbitrary-length integer class.
+ //
+ typedef long_ decimal;
+ typedef decimal integer;
+ typedef integer nonPositiveInteger;
+ typedef integer nonNegativeInteger;
+ typedef nonNegativeInteger positiveInteger;
+ typedef nonPositiveInteger negativeInteger;
+
+
+ typedef XSCRT::FundamentalType<bool> boolean;
+
+ typedef XSCRT::FundamentalType<float> float_;
+ typedef XSCRT::FundamentalType<double> double_;
+
+ // Just to make GCC 3.3 and other broken compilers shutup.
+ //
+ using std::basic_string;
+
+
+ template <typename C>
+ class string : public XSCRT::Type, public basic_string<C>
+ {
+ protected:
+ typedef basic_string<C> Base__ ;
+
+ public:
+ // typedef ACE_Refcounted_Auto_Ptr < string, ACE_Null_Mutex > _ptr;
+
+ //@@ VC6 does not inject XSCRT::Type into the scope so I have
+ // to qualify it all the time.
+ //
+
+ string ()
+ {
+ }
+
+ string (XSCRT::XML::Element<C> const& e)
+ : Base__ (e.value ())
+ {
+ }
+
+ string (XSCRT::XML::Attribute<C> const& a)
+ : Base__ (a.value ())
+ {
+ }
+
+ string (Base__ const& x)
+ : Base__ (x)
+ {
+ }
+
+ string (C const* x)
+ : Base__ (x)
+ {
+ }
+
+ string&
+ operator= (Base__ const& x)
+ {
+ static_cast<Base__&> (*this) = x;
+ return *this;
+ }
+ };
+
+
+ template <typename C>
+ class normalizedString : public string<C>
+ {
+ protected:
+ typedef typename string<C>::Base__ Base__;
+
+ public:
+ normalizedString ()
+ {
+ }
+
+ normalizedString (XSCRT::XML::Element<C> const& e)
+ : string<C> (e)
+ {
+ }
+
+ normalizedString (XSCRT::XML::Attribute<C> const& a)
+ : string<C> (a)
+ {
+ }
+
+ normalizedString (Base__ const& x)
+ : string<C> (x)
+ {
+ }
+
+ normalizedString (C const* x)
+ : string<C> (x)
+ {
+ }
+
+ normalizedString&
+ operator= (Base__ const& x)
+ {
+ static_cast<Base__&> (*this) = x;
+ return *this;
+ }
+ };
+
+
+ template <typename C>
+ class token : public normalizedString<C>
+ {
+ protected:
+ typedef typename normalizedString<C>::Base__ Base__;
+
+ public:
+ token ()
+ {
+ }
+
+ token (XSCRT::XML::Element<C> const& e)
+ : normalizedString<C> (e)
+ {
+ }
+
+ token (XSCRT::XML::Attribute<C> const& a)
+ : normalizedString<C> (a)
+ {
+ }
+
+ token (Base__ const& x)
+ : normalizedString<C> (x)
+ {
+ }
+
+ token (C const* x)
+ : normalizedString<C> (x)
+ {
+ }
+
+ token&
+ operator= (Base__ const& x)
+ {
+ static_cast<Base__&> (*this) = x;
+ return *this;
+ }
+ };
+
+
+ template <typename C>
+ class NMTOKEN : public token<C>
+ {
+ protected:
+ typedef typename token<C>::Base__ Base__;
+
+ public:
+ NMTOKEN ()
+ {
+ }
+
+ NMTOKEN (XSCRT::XML::Element<C> const& e)
+ : token<C> (e)
+ {
+ }
+
+ NMTOKEN (XSCRT::XML::Attribute<C> const& a)
+ : token<C> (a)
+ {
+ }
+
+ NMTOKEN (Base__ const& x)
+ : token<C> (x)
+ {
+ }
+
+ NMTOKEN (C const* x)
+ : token<C> (x)
+ {
+ }
+
+ NMTOKEN&
+ operator= (Base__ const& x)
+ {
+ static_cast<Base__&> (*this) = x;
+ return *this;
+ }
+ };
+
+ template <typename C>
+ class Name: public token<C>
+ {
+ protected:
+ typedef typename token<C>::Base__ Base__;
+
+ public:
+ Name()
+ {
+ }
+
+ Name(XSCRT::XML::Element<C> const& e)
+ : token<C> (e)
+ {
+ }
+
+ Name(XSCRT::XML::Attribute<C> const& a)
+ : token<C> (a)
+ {
+ }
+
+ Name(Base__ const& x)
+ : token<C> (x)
+ {
+ }
+
+ Name (C const* x)
+ : token<C> (x)
+ {
+ }
+
+ Name&
+ operator= (Base__ const& x)
+ {
+ static_cast<Base__&> (*this) = x;
+ return *this;
+ }
+ };
+
+
+ template <typename C>
+ class NCName: public Name<C>
+ {
+ protected:
+ typedef typename Name<C>::Base__ Base__;
+
+ public:
+ NCName()
+ {
+ }
+
+ NCName(XSCRT::XML::Element<C> const& e)
+ : Name<C> (e)
+ {
+ }
+
+ NCName(XSCRT::XML::Attribute<C> const& a)
+ : Name<C> (a)
+ {
+ }
+
+ NCName(Base__ const& x)
+ : Name<C> (x)
+ {
+ }
+
+ NCName (C const* x)
+ : Name<C> (x)
+ {
+ }
+
+ NCName&
+ operator= (Base__ const& x)
+ {
+ static_cast<Base__&> (*this) = x;
+ return *this;
+ }
+ };
+
+ template <typename C>
+ class QName: public Name<C>
+ {
+ protected:
+ typedef typename Name<C>::Base__ Base__;
+
+ public:
+ QName()
+ {
+ }
+
+ QName(XSCRT::XML::Element<C> const& e)
+ : Name<C> (e)
+ {
+ }
+
+ QName(XSCRT::XML::Attribute<C> const& a)
+ : Name<C> (a)
+ {
+ }
+
+ QName(Base__ const& x)
+ : Name<C> (x)
+ {
+ }
+
+ QName (C const* x)
+ : Name<C> (x)
+ {
+ }
+
+ QName&
+ operator= (Base__ const& x)
+ {
+ static_cast<Base__&> (*this) = x;
+ return *this;
+ }
+ };
+
+ template <typename C>
+ struct IdentityProvider : XSCRT::IdentityProvider
+ {
+ IdentityProvider (NCName<C> const& id)
+ : id_ (id)
+ {
+ }
+
+ virtual ~IdentityProvider (void)
+ {
+ }
+
+ virtual bool
+ before (XSCRT::IdentityProvider const& y) const
+ {
+ return id_ < dynamic_cast<IdentityProvider const&> (y).id_;
+ }
+
+ private:
+ NCName<C> const& id_;
+
+ private:
+ IdentityProvider (IdentityProvider const&);
+
+ IdentityProvider&
+ operator= (IdentityProvider const&);
+ };
+
+
+ template <typename C>
+ class ID : public NCName<C>
+ {
+ protected:
+ typedef typename NCName<C>::Base__ Base__;
+
+ public:
+ ~ID()
+ {
+ unregister_id ();
+ }
+
+ ID ()
+ : id_provider_ (*this)
+ {
+ }
+
+ ID (XSCRT::XML::Element<C> const& e)
+ : NCName<C> (e), id_provider_ (*this)
+ {
+ }
+
+ ID (XSCRT::XML::Attribute<C> const& a)
+ : NCName<C> (a), id_provider_ (*this)
+ {
+ }
+
+ ID (ID const& x)
+ : NCName<C> (x), id_provider_ (*this)
+ {
+ }
+
+ ID (Base__ const& x)
+ : NCName<C> (x), id_provider_ (*this)
+ {
+ }
+
+ ID (C const* x)
+ : NCName<C> (x), id_provider_ (*this)
+ {
+ }
+
+ ID&
+ operator= (Base__ const& x)
+ {
+ unregister_id ();
+
+ static_cast<NCName<C>&>(*this) = x;
+
+ register_id ();
+
+ return *this;
+ }
+
+ ID&
+ operator= (ID const& x)
+ {
+ unregister_id ();
+
+ static_cast<NCName<C>&>(*this) = static_cast<NCName<C> const&>(x);
+
+ register_id ();
+
+ return *this;
+ }
+
+ public:
+ using NCName<C>::container;
+
+ virtual void
+ container (XSCRT::Type* c)
+ {
+ unregister_id ();
+
+ NCName<C>::container (c);
+
+ register_id ();
+ }
+
+ private:
+ using NCName<C>::empty;
+ using NCName<C>::root;
+
+ void
+ register_id ()
+ {
+ if (NCName<C>::container () != this && !empty ())
+ {
+ //std::wcerr << "registering " << container ()
+ // << " as '" << *this
+ // << "' on " << container () << std::endl;
+ NCName<C>::container ()->register_id (id_provider_,
+ NCName<C>::container ());
+ }
+ }
+
+ void
+ unregister_id ()
+ {
+ if (NCName<C>::container () != this && !empty ())
+ {
+ //std::wcerr << "un-registering " << container ()
+ // << " as '" << *this
+ // << "' on " << container () << std::endl;
+ NCName<C>::container ()->unregister_id (id_provider_);
+ }
+ }
+
+ private:
+ IdentityProvider<C> id_provider_;
+ };
+
+ struct IDREF_Base : public XSCRT::Type
+ {
+ virtual XSCRT::Type const*
+ get () const = 0;
+
+ virtual XSCRT::Type*
+ get () = 0;
+ };
+
+ template <typename C>
+ class IDREF : public IDREF_Base
+ {
+ public:
+ typedef C CDR_Type__;
+ IDREF ()
+ : id_provider_ (id_)
+ {
+ }
+
+ IDREF (XSCRT::XML::Element<C> const& e)
+ : id_ (e), id_provider_ (id_)
+ {
+ }
+
+ IDREF (XSCRT::XML::Attribute<C> const& a)
+ : id_ (a), id_provider_ (id_)
+ {
+ }
+
+ IDREF (IDREF const& x)
+ : XMLSchema::IDREF_Base (),
+ id_ (x.id_), id_provider_ (id_)
+ {
+ }
+
+ IDREF (basic_string<C> const& id)
+ : id_ (id), id_provider_ (id_)
+ {
+ }
+
+ IDREF (C const* id)
+ : id_ (id), id_provider_ (id_)
+ {
+ }
+
+ IDREF&
+ operator= (IDREF const& x)
+ {
+ id_ = x.id_;
+ return *this;
+ }
+
+ IDREF&
+ operator= (basic_string<C> const& x)
+ {
+ id_ = x;
+ return *this;
+ }
+
+ public:
+ NCName<C>
+ id () const
+ {
+ return id_;
+ }
+
+ public:
+ XSCRT::Type const*
+ operator-> () const
+ {
+ return get ();
+ }
+
+ XSCRT::Type*
+ operator-> ()
+ {
+ return get ();
+ }
+
+ XSCRT::Type const&
+ operator* () const
+ {
+ return *(get ());
+ }
+
+ XSCRT::Type&
+ operator* ()
+ {
+ return *(get ());
+ }
+
+ virtual XSCRT::Type const*
+ get () const
+ {
+ if (!id_.empty () && container () != this)
+ {
+ return root ()->lookup_id (id_provider_);
+ }
+ else
+ {
+ return 0;
+ }
+ }
+
+ virtual XSCRT::Type*
+ get ()
+ {
+ if (!id_.empty () && container () != this)
+ {
+ return root ()->lookup_id (id_provider_);
+ }
+ else
+ {
+ return 0;
+ }
+ }
+
+ // conversion to bool
+ //
+ typedef void (IDREF::*bool_convertable)();
+
+ operator bool_convertable () const
+ {
+ return get () ? &IDREF::true_ : 0;
+ }
+
+ private:
+ void true_ ()
+ {
+ }
+
+ private:
+ NCName<C> id_;
+ IdentityProvider<C> id_provider_;
+ };
+
+ template <typename C>
+ class anyURI : public XSCRT::Type, public basic_string <C>
+ {
+ protected:
+ typedef basic_string <C> Base__ ;
+
+ public:
+ // Trait for marshaling string
+ typedef C CDR_Type__;
+
+ //@@ VC6 does not inject XSCRT::Type into the scope so I have
+ // to qualify it all the time.
+ //
+
+ anyURI (void)
+ {
+ }
+
+ anyURI (XSCRT::XML::Element<C> const& e)
+ : Base__ (e.value ())
+ {
+ }
+
+ anyURI (XSCRT::XML::Attribute<C> const& a)
+ : Base__ (a.value ())
+ {
+ }
+
+ anyURI (Base__ const& x)
+ : Base__ (x)
+ {
+ }
+
+ anyURI (C const * x)
+ : Base__ (x)
+ {
+ }
+
+ anyURI (const anyURI& s)
+ : Base__ (s)
+ {
+
+ }
+
+ anyURI & operator= (Base__ const& x)
+ {
+ static_cast <Base__ &> (*this) = x;
+ return *this;
+ }
+ };
+}
+
+#include "ace/XML_Utils/XMLSchema/Types.ipp"
+
+#endif // XMLSCHEMA_TYPES_HPP
diff --git a/dep/acelite/ace/XML_Utils/XMLSchema/Types.ipp b/dep/acelite/ace/XML_Utils/XMLSchema/Types.ipp
new file mode 100644
index 00000000000..9362a5b0066
--- /dev/null
+++ b/dep/acelite/ace/XML_Utils/XMLSchema/Types.ipp
@@ -0,0 +1,8 @@
+// file : XMLSchema/Types.ipp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id: Types.ipp 86462 2009-08-12 13:31:27Z wotte $
+
+namespace XMLSchema
+{
+
+}
diff --git a/dep/acelite/ace/XML_Utils/XMLSchema/Writer.hpp b/dep/acelite/ace/XML_Utils/XMLSchema/Writer.hpp
new file mode 100644
index 00000000000..f54737a2846
--- /dev/null
+++ b/dep/acelite/ace/XML_Utils/XMLSchema/Writer.hpp
@@ -0,0 +1,158 @@
+// file : XMLSchema/Writer.hpp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id: Writer.hpp 95832 2012-06-06 13:09:50Z johnnyw $
+
+#ifndef XMLSCHEMA_WRITER_HPP
+#define XMLSCHEMA_WRITER_HPP
+
+#include <sstream>
+
+#include <ace/XML_Utils/XSCRT/Writer.hpp>
+
+#include <ace/XML_Utils/XMLSchema/Types.hpp>
+#include <ace/XML_Utils/XMLSchema/Traversal.hpp>
+
+#include <iostream>
+
+namespace XMLSchema
+{
+ namespace Writer
+ {
+ template <typename T, typename C>
+ struct FundamentalType : Traversal::Traverser<T>,
+ virtual XSCRT::Writer<C>
+ {
+ FundamentalType (XSCRT::XML::Element<C>& e)
+ : XSCRT::Writer<C> (e)
+ {
+ }
+
+ using XSCRT::Writer<C>::top_;
+ using XSCRT::Writer<C>::attr_;
+
+ virtual void
+ traverse (T const& o)
+ {
+ using namespace XSCRT::XML;
+
+ std::basic_ostringstream<C> os;
+
+ os << o;
+
+ if (Attribute<C>* a = attr_ ())
+ {
+ a->value (os.str ());
+ }
+ else
+ {
+ top_().value (os.str ());
+ }
+ }
+
+ protected:
+ virtual void
+ traverse (T &t)
+ {
+ Traversal::Traverser<T>::traverse (t);
+ }
+
+ FundamentalType ()
+ {
+ }
+ };
+
+ template<typename C>
+ struct FundamentalType <XSCRT::FundamentalType<bool>, C> :
+ Traversal::Traverser<XSCRT::FundamentalType<bool> >,
+ virtual XSCRT::Writer<C>
+ {
+ FundamentalType (XSCRT::XML::Element<C> &e)
+ : XSCRT::Writer<C> (e)
+ {
+ }
+
+ using XSCRT::Writer<C>::top_;
+ using XSCRT::Writer<C>::attr_;
+
+ virtual void
+ traverse (XSCRT::FundamentalType<bool> const &o)
+ {
+ using namespace XSCRT::XML;
+
+ std::basic_ostringstream<C> os;
+
+ if (o)
+ {
+ os << "true";
+ }
+ else
+ {
+ os << "false";
+ }
+
+ if (Attribute<C>* a = attr_ ())
+ {
+ a->value (os.str ());
+ }
+ else
+ {
+ top_().value (os.str ());
+ }
+ }
+
+ protected:
+ virtual void
+ traverse (XSCRT::FundamentalType<bool> &t)
+ {
+ Traversal::Traverser<XSCRT::FundamentalType<bool> >::traverse (t);
+ }
+
+ FundamentalType ()
+ {
+ }
+ };
+
+
+ template <typename C>
+ struct IDREF : Traversal::Traverser<XMLSchema::IDREF<C> >,
+ virtual XSCRT::Writer<C>
+ {
+ IDREF (XSCRT::XML::Element<C>& e)
+ : XSCRT::Writer<C> (e)
+ {
+ }
+
+ virtual void
+ traverse (
+ typename Traversal::Traverser<XMLSchema::IDREF<C> >::Type const& o)
+ {
+ using namespace XSCRT::XML;
+
+ if (Attribute<C>* a = XSCRT::Writer<C>::attr_ ())
+ {
+ a->value (o.id ());
+ }
+ else
+ {
+ XSCRT::Writer<C>::top_().value (o.id ());
+ }
+ }
+
+ protected:
+
+ virtual void
+ traverse (typename Traversal::Traverser<XMLSchema::IDREF<C> >::Type &o)
+ {
+ Traversal::Traverser<XMLSchema::IDREF<C> >::traverse (o);
+ }
+
+ IDREF ()
+ {
+ }
+ };
+ }
+}
+
+#include <ace/XML_Utils/XMLSchema/Writer.ipp>
+
+#endif // XMLSCHEMA_WRITER_HPP
diff --git a/dep/acelite/ace/XML_Utils/XMLSchema/Writer.ipp b/dep/acelite/ace/XML_Utils/XMLSchema/Writer.ipp
new file mode 100644
index 00000000000..04019b1b1b9
--- /dev/null
+++ b/dep/acelite/ace/XML_Utils/XMLSchema/Writer.ipp
@@ -0,0 +1,10 @@
+// file : XMLSchema/Writer.ipp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id: Writer.ipp 84406 2009-02-11 14:59:08Z wotte $
+
+namespace XMLSchema
+{
+ namespace Writer
+ {
+ }
+}
diff --git a/dep/acelite/ace/XML_Utils/XMLSchema/id_map.hpp b/dep/acelite/ace/XML_Utils/XMLSchema/id_map.hpp
new file mode 100644
index 00000000000..0356e250c48
--- /dev/null
+++ b/dep/acelite/ace/XML_Utils/XMLSchema/id_map.hpp
@@ -0,0 +1,144 @@
+// -*- C++ -*-
+// $Id: id_map.hpp 95802 2012-05-31 12:37:36Z johnnyw $
+
+//=============================================================================
+/**
+ * @file id_map.hpp
+ *
+ * This file contains the ID_Map class which has the responsibility of linking
+ * XML IDREF objects to their XML ID counterparts. In the output files, this
+ * means that a <IDREF name>_ptr() will return a pointer to the identified
+ * object.
+ *
+ * Exception NULL_PTR_Entry is thrown when a program attempts to add a NULL_PTR
+ * to either the id_map or idref_map.
+ *
+ * Exception Unresolved_IDREF is thrown if an element in an XML document attempts
+ * to reference an ID that does not exist.
+ *
+ * @author Jason R. Cody <jason.r.cody@vanderbilt.edu; jason.r.cody@gmail.com>
+ */
+//=============================================================================
+
+#ifndef _ID_MAP_H
+#define _ID_MAP_H
+
+//ID_Map makes use of the Types::idref_ data member to set it to the appropriate
+//object created during parsing
+#include "ace/XML_Utils/XMLSchema/Types.hpp"
+
+//The ID_Map is a Thread Specific Storage element.
+#include "ace/TSS_T.h"
+#include "ace/ace_wchar.h"
+
+ /**
+ * @class ID_Map
+ *
+ * @brief A class that handles the mapping of IDREF objects to objects with the
+ * respective ID.
+ */
+ class ID_Map
+ {
+ public:
+
+ //Trait to allow for ease of thread specific storage.
+ typedef ACE_TSS<ID_Map> TSS_ID_Map;
+ typedef std::map<std::basic_string<ACE_TCHAR>, XSCRT::Type*>::iterator id_iterator;
+ typedef std::multimap<std::basic_string<ACE_TCHAR>, XSCRT::Type*>::iterator idref_iterator;
+ typedef std::map<std::basic_string<ACE_TCHAR>, XSCRT::Type*> ID_MAP;
+ typedef std::multimap<std::basic_string<ACE_TCHAR>, XSCRT::Type*> IDREF_MAP;
+
+
+ //Exception Classes
+ //NULL_PTR_Entry thrown when a NULL PTR is added to the
+ //ID_Map
+ class NULL_PTR_Entry {};
+
+ //Unresolved_IDREF thrown when there are IDREF's in the
+ //XML document.
+ class Unresolved_IDREF {};
+
+ //Only a default constructor and destructor are needed
+ //Constructor
+ ID_Map ()
+ {
+ }
+
+ //Destructor
+ ~ID_Map ()
+ {
+ }
+
+ //Add an ID to the ID map
+ void add_id (std::basic_string<ACE_TCHAR> id, XSCRT::Type *obj_ref)
+ {
+ if (obj_ref)
+ {
+ this->id_map_.insert (ID_MAP::value_type(id, obj_ref));
+ }
+ else
+ {
+ throw NULL_PTR_Entry();
+ }
+ return;
+ }
+
+ //Add an IDREF to the IDREF map
+ void add_idref (std::basic_string<ACE_TCHAR> idref, XSCRT::Type *obj_ref)
+ {
+ if (obj_ref)
+ {
+ this->idref_map_.insert (IDREF_MAP::value_type(idref, obj_ref));
+ }
+ else
+ {
+ throw NULL_PTR_Entry();
+ }
+ return;
+ }
+
+ //Sets the referencing elements XSCRT::Type::idref_ to point to the
+ //referenced element.
+ //Note: The pointer is of type "XSCRT::Type*"
+ void resolve_idref ( void )
+ {
+ //Declare iterators to navigate the maps
+ ID_Map::id_iterator id_iterator;
+ ID_Map::idref_iterator idref_iterator;
+
+ for (idref_iterator = this->idref_map_.begin();
+ idref_iterator != this->idref_map_.end();
+ ++idref_iterator)
+ {
+ //Find the ID that matches the IDREF element
+ id_iterator = this->id_map_.find(idref_iterator->first);
+ if (id_iterator != this->id_map_.end())
+ {
+ //Add the IDREF identifier and the reference to the
+ //identified object
+ std::basic_string<ACE_TCHAR> temp_id = id_iterator->first;
+ idref_iterator->second->set_idref(temp_id, id_iterator->second);
+ }
+ else
+ {
+ //throw Unresolved_IDREF();
+ }
+ }
+ }
+
+ void reset (void)
+ {
+ id_map_.clear ();
+ idref_map_.clear ();
+ }
+
+ private:
+ //id_map_: maps the ID string to the element with the
+ // ID attribute
+ //idref_map_: multimap that maps the IDREF string to the
+ // element with the IDREF attribute
+ ID_MAP id_map_;
+ IDREF_MAP idref_map_;
+ };
+
+#endif /* _ID_MAP_HPP */
diff --git a/dep/acelite/ace/XML_Utils/XML_Error_Handler.cpp b/dep/acelite/ace/XML_Utils/XML_Error_Handler.cpp
new file mode 100644
index 00000000000..093a85ec942
--- /dev/null
+++ b/dep/acelite/ace/XML_Utils/XML_Error_Handler.cpp
@@ -0,0 +1,77 @@
+// $Id: XML_Error_Handler.cpp 95885 2012-06-14 14:05:44Z johnnyw $
+
+#include "XML_Error_Handler.h"
+#include "ace/Log_Msg.h"
+#include "ace/Auto_Ptr.h"
+#include "ace/ACE.h"
+#include <xercesc/util/XMLString.hpp>
+#include <xercesc/dom/DOMLocator.hpp>
+#include <xercesc/sax/SAXParseException.hpp>
+#include "XercesString.h"
+#include <iostream>
+
+using xercesc::SAXParseException;
+
+namespace XML
+{
+ XML_Error_Handler::XML_Error_Handler (void)
+ : errors_ (false)
+ {
+ }
+
+ XML_Error_Handler::~XML_Error_Handler()
+ {
+ }
+
+ void XML_Error_Handler::warning(const SAXParseException& toCatch)
+ {
+ if (ACE::debug ())
+ {
+ XStr file (toCatch.getSystemId ());
+ XStr msg (toCatch.getMessage ());
+
+ std::cerr << "Warning: " << file << ':' << toCatch.getLineNumber ()
+ << ':' << toCatch.getColumnNumber () << " - "
+ << msg << std::endl;
+ }
+ }
+
+ void XML_Error_Handler::error(const SAXParseException& toCatch)
+ {
+ if (ACE::debug ())
+ {
+ XStr file (toCatch.getSystemId ());
+ XStr msg (toCatch.getMessage ());
+
+ std::cerr << "Error: " << file << ':' << toCatch.getLineNumber ()
+ << ':' << toCatch.getColumnNumber () << " - "
+ << msg << std::endl;
+ }
+ this->errors_ = true;
+ }
+
+ void XML_Error_Handler::fatalError(const SAXParseException& toCatch)
+ {
+ if (ACE::debug ())
+ {
+ XStr file (toCatch.getSystemId ());
+ XStr msg (toCatch.getMessage ());
+
+ std::cerr << "Fatal Error: " << file << ':' << toCatch.getLineNumber ()
+ << ':' << toCatch.getColumnNumber () << " - "
+ << msg << std::endl;
+ }
+ this->errors_ = true;
+ }
+
+ void XML_Error_Handler::resetErrors()
+ {
+ this->errors_ = false;
+ }
+
+ bool
+ XML_Error_Handler::getErrors (void) const
+ {
+ return this->errors_;
+ }
+}
diff --git a/dep/acelite/ace/XML_Utils/XML_Error_Handler.h b/dep/acelite/ace/XML_Utils/XML_Error_Handler.h
new file mode 100644
index 00000000000..4047df6a09a
--- /dev/null
+++ b/dep/acelite/ace/XML_Utils/XML_Error_Handler.h
@@ -0,0 +1,60 @@
+//==============================================================
+/**
+ * @file XML_Error_Handler.h
+ *
+ * $Id: XML_Error_Handler.h 95801 2012-05-31 09:14:36Z johnnyw $
+ *
+ * @brief Error handler for Xerces
+ *
+ * @author Bala Natarajan <bala@dre.vanderbilt.edu>
+ */
+//================================================================
+#ifndef ACE_XML_ERROR_HANDLER_H
+#define ACE_XML_ERROR_HANDLER_H
+
+#include /**/ "ace/pre.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "XML_Utils_Export.h"
+
+#include <xercesc/sax/ErrorHandler.hpp>
+
+using xercesc::SAXParseException;
+
+namespace XML
+{
+ /**
+ * @class XML_Error_Hander
+ *
+ * @brief Error handler for XERCES
+ *
+ */
+ class XML_Utils_Export XML_Error_Handler
+ : public xercesc::ErrorHandler
+ {
+ public:
+
+ XML_Error_Handler (void);
+
+ ~XML_Error_Handler (void);
+
+ void warning(const SAXParseException& toCatch);
+ void error(const SAXParseException& toCatch);
+ void fatalError(const SAXParseException& toCatch);
+ void resetErrors();
+ bool getErrors (void) const;
+ private :
+ // Disallow copying
+ XML_Error_Handler (const XML_Error_Handler&);
+ XML_Error_Handler& operator= (const XML_Error_Handler&);
+
+ bool errors_;
+ };
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* ACE_XML_ERROR_HANDLER_H */
diff --git a/dep/acelite/ace/XML_Utils/XML_Helper.h b/dep/acelite/ace/XML_Utils/XML_Helper.h
new file mode 100644
index 00000000000..4bb0e8161f2
--- /dev/null
+++ b/dep/acelite/ace/XML_Utils/XML_Helper.h
@@ -0,0 +1,99 @@
+// $Id: XML_Helper.h 95801 2012-05-31 09:14:36Z johnnyw $
+//============================================================
+/**
+ * @file XML_Helper.h
+ *
+ * @brief Some helper functions for XML
+ *
+ * @author Bala Natarajan <bala@dre.vanderbilt.edu>
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ */
+//============================================================
+#ifndef ACE_XML_HELPER_H
+#define ACE_XML_HELPER_H
+#include /**/ "ace/pre.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "XML_Error_Handler.h"
+#include "XML_Schema_Resolver.h"
+
+#include "xercesc/util/XercesDefs.hpp"
+#include "xercesc/parsers/XercesDOMParser.hpp"
+
+#include <memory>
+
+namespace XERCES_CPP_NAMESPACE
+{
+ class DOMDocument;
+ class DOMWriter;
+ class DOMImplementation;
+ class DOMDocumentType;
+}
+
+namespace XML
+{
+ /**
+ * @class XML_Helper
+ *
+ * @brief Helper class for some routine XML stuff.
+ */
+ template <typename Resolver = XML_Schema_Resolver <>,
+ typename Error_Handler = XML_Error_Handler>
+ class XML_Helper
+ {
+ public:
+ // XML_Helper (void);
+ XML_Helper (Resolver *resolver = 0, Error_Handler *eh = 0);
+
+ ~XML_Helper (void);
+
+ /// Create a DOM tree
+ XERCES_CPP_NAMESPACE::DOMDocument *
+ create_dom (const ACE_TCHAR *uri) const;
+
+ XERCES_CPP_NAMESPACE::DOMDocument *
+ create_dom (const ACE_TCHAR *root,
+ const ACE_TCHAR *ns,
+ XERCES_CPP_NAMESPACE::DOMDocumentType * doctype = 0) const;
+
+ XERCES_CPP_NAMESPACE::DOMDocumentType *
+ create_doctype (const ACE_TCHAR *qn,
+ const ACE_TCHAR *pid,
+ const ACE_TCHAR *sid) const;
+
+ /// Writes out a DOMDocument to an XML file
+ bool write_DOM (XERCES_CPP_NAMESPACE::DOMDocument *doc,
+ const ACE_TCHAR *file) const;
+
+ bool is_initialized (void) const;
+
+ /// Terminate the parser
+ void terminate_parser (void);
+
+ Resolver &get_resolver (void);
+
+ Error_Handler &get_error_handler (void);
+
+ protected:
+ /// Intialize the parser
+ void init_parser (void);
+
+ private:
+ bool initialized_;
+ XERCES_CPP_NAMESPACE::DOMImplementation *impl_;
+ mutable std::auto_ptr<XERCES_CPP_NAMESPACE::XercesDOMParser> parser_;
+
+ Resolver *resolver_;
+ bool release_resolver_;
+ Error_Handler *e_handler_;
+ bool release_e_handler_;
+ };
+}
+
+#include "XML_Helper.tpp"
+
+#include /**/ "ace/post.h"
+#endif/*ACE_XML_HELPER_H*/
diff --git a/dep/acelite/ace/XML_Utils/XML_Schema_Resolver.cpp b/dep/acelite/ace/XML_Utils/XML_Schema_Resolver.cpp
new file mode 100644
index 00000000000..26914d99439
--- /dev/null
+++ b/dep/acelite/ace/XML_Utils/XML_Schema_Resolver.cpp
@@ -0,0 +1,77 @@
+// $Id: XML_Schema_Resolver.cpp 95760 2012-05-15 13:46:19Z msmit $
+#include "XML_Schema_Resolver.h"
+
+#include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/util/XercesDefs.hpp>
+
+#include "XercesString.h"
+
+#include "ace/Env_Value_T.h"
+
+#include <iostream>
+
+namespace XML
+{
+ Basic_Resolver::Basic_Resolver (const ACE_TCHAR *path)
+ : path_ (path)
+ {
+ }
+
+ XMLCh *
+ Basic_Resolver::operator() (const XMLCh *const,
+ const XMLCh *const systemId) const
+ {
+ XStr path (path_);
+ path.append (systemId);
+ return path.release ();
+ }
+
+ Environment_Resolver::Environment_Resolver (void)
+ {
+ }
+
+ Environment_Resolver::Environment_Resolver (const ACE_TCHAR *variable,
+ const ACE_TCHAR *relpath)
+ {
+ this->add_path (variable, relpath);
+ }
+
+ using xercesc::XMLPlatformUtils;
+
+ void
+ Environment_Resolver::add_path (const ACE_TCHAR *variable,
+ const ACE_TCHAR *relpath)
+ {
+ ACE_Env_Value <const ACE_TCHAR *> path_env (variable,
+ ACE_TEXT(""));
+
+ XStr xpath (path_env);
+ XStr xrelpath (relpath);
+
+ xpath.append (xrelpath);
+
+ paths_.push_back (xpath);
+ }
+
+ XMLCh *
+ Environment_Resolver::operator() (const XMLCh *const,
+ const XMLCh *const systemId) const
+ {
+ for (std::vector<XStr>::const_iterator i = this->paths_.begin ();
+ i != this->paths_.end ();
+ ++i)
+ {
+ XStr path (*i);
+ path.append(systemId);
+
+ FileHandle file (XMLPlatformUtils::openFile (path));
+
+ if (file != 0)
+ {
+ XMLPlatformUtils::closeFile (file);
+ return path.release ();
+ }
+ }
+ return 0;
+ }
+}
diff --git a/dep/acelite/ace/XML_Utils/XML_Schema_Resolver.h b/dep/acelite/ace/XML_Utils/XML_Schema_Resolver.h
new file mode 100644
index 00000000000..174e3ea56e7
--- /dev/null
+++ b/dep/acelite/ace/XML_Utils/XML_Schema_Resolver.h
@@ -0,0 +1,110 @@
+/**
+ * @file XML_Schema_Resolver.h
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * $Id: XML_Schema_Resolver.h 95801 2012-05-31 09:14:36Z johnnyw $
+ *
+ * Resolves schema locations.
+ */
+
+#ifndef ACE_XML_SCHEMA_RESOLVER_H
+#define ACE_XML_SCHEMA_RESOLVER_H
+#include /**/ "ace/pre.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "XML_Utils_Export.h"
+#include "XercesString.h"
+
+#include <xercesc/sax/EntityResolver.hpp>
+#include <vector>
+#include <string>
+
+using namespace xercesc;
+
+namespace XML
+{
+ // forward decl.
+ struct NoOp_Resolver;
+
+ /**
+ * @class XML_Schema_Resolver
+ * @brief Resolves schema locations
+ *
+ * Template argument Resolver should be a functor with an operation
+ * const ACE_TCHAR * operator () (...arguments from resolveEntity...)
+ */
+ template <typename Resolver = NoOp_Resolver>
+ class XML_Schema_Resolver
+ : public virtual EntityResolver
+ {
+ public:
+ XML_Schema_Resolver (void);
+
+ XML_Schema_Resolver (Resolver &resolver);
+
+ /// This function is called by the Xerces infrastructure to
+ /// actually resolve the location of a schema.
+ virtual InputSource * resolveEntity (const XMLCh *const publicId,
+ const XMLCh *const systemId);
+
+ Resolver &get_resolver (void);
+
+ private:
+ XML_Schema_Resolver (XML_Schema_Resolver<Resolver> &);
+
+ Resolver resolver_;
+ };
+
+ /**
+ * @class NoOp_Resolver
+ * @brief Resolver that does nothing.
+ */
+ struct NoOp_Resolver
+ {
+ const XMLCh* operator() (const XMLCh *const,
+ const XMLCh *const systemId) const
+ { return systemId; };
+ };
+
+ /**
+ * @class Basic_Resolver
+ * @brief Resolves a schema location from a fixed path.
+ */
+ struct Basic_Resolver
+ {
+ Basic_Resolver (const ACE_TCHAR *path);
+
+ XMLCh* operator() (const XMLCh *const publicId,
+ const XMLCh *const systemId) const;
+ XStr path_;
+ };
+
+ /**
+ * @class Environment_Resolver
+ * @brief Resolves a schema location from a path from an environment variable.
+ */
+ struct XML_Utils_Export Environment_Resolver
+ {
+ Environment_Resolver (void);
+
+ Environment_Resolver (const ACE_TCHAR *variable,
+ const ACE_TCHAR *path);
+
+ void add_path (const ACE_TCHAR *variable,
+ const ACE_TCHAR *path);
+
+ XMLCh* operator() (const XMLCh *const publicId,
+ const XMLCh *const systemId) const;
+
+ std::vector<XStr> paths_;
+ };
+}
+
+#include "XML_Schema_Resolver.tpp"
+
+#include /**/ "ace/post.h"
+
+#endif /* ACE_XML_SCHEMA_RESOLVER_H */
diff --git a/dep/acelite/ace/XML_Utils/XML_Typedefs.cpp b/dep/acelite/ace/XML_Utils/XML_Typedefs.cpp
new file mode 100644
index 00000000000..aad41d82e80
--- /dev/null
+++ b/dep/acelite/ace/XML_Utils/XML_Typedefs.cpp
@@ -0,0 +1,8 @@
+// $Id: XML_Typedefs.cpp 95760 2012-05-15 13:46:19Z msmit $
+
+#include "XML_Typedefs.h"
+
+namespace XML
+{
+ XML_Typedef::HELPER XML_Typedef::XML_HELPER;
+}
diff --git a/dep/acelite/ace/XML_Utils/XML_Typedefs.h b/dep/acelite/ace/XML_Utils/XML_Typedefs.h
new file mode 100644
index 00000000000..c41da608f76
--- /dev/null
+++ b/dep/acelite/ace/XML_Utils/XML_Typedefs.h
@@ -0,0 +1,32 @@
+/**
+ * @file XML_Typedefs.h
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ * $Id: XML_Typedefs.h 95760 2012-05-15 13:46:19Z msmit $
+ * Typedefs from the XML Utilities.
+ */
+#ifndef XML_TYPEDEFS_H
+#define XML_TYPEDEFS_H
+
+#include "XML_Utils_Export.h"
+#include "XML_Helper.h"
+#include "XML_Schema_Resolver.h"
+#include "XML_Error_Handler.h"
+
+namespace XML
+{
+ class XML_Utils_Export XML_Typedef
+ {
+ public:
+ typedef ::XML::Environment_Resolver PATH_RESOLVER;
+ typedef ::XML::XML_Schema_Resolver< ::XML::Environment_Resolver > XML_RESOLVER;
+ typedef ::XML::XML_Error_Handler ERROR_HANDLER;
+ typedef ::XML::XML_Helper< XML_RESOLVER, ERROR_HANDLER > HELPER;
+
+ static ERROR_HANDLER _xml_error_handler;
+
+ public:
+ static HELPER XML_HELPER;
+ };
+}
+
+#endif /* XML_TYPEDEFS_H */
diff --git a/dep/acelite/ace/XML_Utils/XML_Utils_Export.h b/dep/acelite/ace/XML_Utils/XML_Utils_Export.h
new file mode 100644
index 00000000000..56ea76a248b
--- /dev/null
+++ b/dep/acelite/ace/XML_Utils/XML_Utils_Export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id: XML_Utils_Export.h 95760 2012-05-15 13:46:19Z msmit $
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl XML_Utils
+// ------------------------------
+#ifndef XML_UTILS_EXPORT_H
+#define XML_UTILS_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (XML_UTILS_HAS_DLL)
+# define XML_UTILS_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && XML_UTILS_HAS_DLL */
+
+#if !defined (XML_UTILS_HAS_DLL)
+# define XML_UTILS_HAS_DLL 1
+#endif /* ! XML_UTILS_HAS_DLL */
+
+#if defined (XML_UTILS_HAS_DLL) && (XML_UTILS_HAS_DLL == 1)
+# if defined (XML_UTILS_BUILD_DLL)
+# define XML_Utils_Export ACE_Proper_Export_Flag
+# define XML_UTILS_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define XML_UTILS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* XML_UTILS_BUILD_DLL */
+# define XML_Utils_Export ACE_Proper_Import_Flag
+# define XML_UTILS_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define XML_UTILS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* XML_UTILS_BUILD_DLL */
+#else /* XML_UTILS_HAS_DLL == 1 */
+# define XML_Utils_Export
+# define XML_UTILS_SINGLETON_DECLARATION(T)
+# define XML_UTILS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* XML_UTILS_HAS_DLL == 1 */
+
+// Set XML_UTILS_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (XML_UTILS_NTRACE)
+# if (ACE_NTRACE == 1)
+# define XML_UTILS_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define XML_UTILS_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !XML_UTILS_NTRACE */
+
+#if (XML_UTILS_NTRACE == 1)
+# define XML_UTILS_TRACE(X)
+#else /* (XML_UTILS_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define XML_UTILS_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (XML_UTILS_NTRACE == 1) */
+
+#endif /* XML_UTILS_EXPORT_H */
+
+// End of auto generated file.
diff --git a/dep/acelite/ace/XML_Utils/XSCRT/Elements.hpp b/dep/acelite/ace/XML_Utils/XSCRT/Elements.hpp
new file mode 100644
index 00000000000..d0afe1aaf2d
--- /dev/null
+++ b/dep/acelite/ace/XML_Utils/XSCRT/Elements.hpp
@@ -0,0 +1,569 @@
+// file : XSCRT/Elements.hpp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id: Elements.hpp 95832 2012-06-06 13:09:50Z johnnyw $
+
+#ifndef XSCRT_ELEMENTS_HPP
+#define XSCRT_ELEMENTS_HPP
+
+#include <map>
+#include <string>
+#include <sstream>
+#include "ace/ace_wchar.h"
+// #include <iostream> //@@ tmp
+
+#include <ace/XML_Utils/XSCRT/Parser.hpp>
+#include "ace/Refcounted_Auto_Ptr.h"
+
+namespace XSCRT
+{
+ struct IdentityProvider
+ {
+ virtual bool
+ before (IdentityProvider const&) const = 0;
+
+ virtual ~IdentityProvider (void)
+ {
+
+ }
+ };
+
+ class Type
+ {
+ public:
+
+ virtual ~Type (void)
+ {
+ }
+
+ protected:
+ Type (void)
+ : container_ (0)
+ {
+ }
+
+ template <typename C>
+ Type (XML::Element<C> const&)
+ : container_ (0)
+ {
+ }
+
+ template <typename C>
+ Type (XML::Attribute<C> const&)
+ : container_ (0)
+ {
+ }
+
+ Type (Type const&)
+ : container_ (0)
+ {
+ }
+
+ Type&
+ operator= (Type const&)
+ {
+ //@@ I don't need this.
+ //if (map_.get ()) map_->clear (); // Flush the map.
+ return *this;
+ }
+
+ public:
+ Type const*
+ container () const
+ {
+ return container_ ? container_ : this;
+ }
+
+ Type*
+ container ()
+ {
+ return container_ ? container_ : this;
+ }
+
+
+ Type const*
+ root () const
+ {
+ Type const* r = container ();
+
+ //@@ VC6 can't handle this inside the loop.
+ //
+ Type const* c = r->container ();
+
+ for (; c != r; c = c->container ()) r = c;
+
+ return r;
+ }
+
+ Type*
+ root ()
+ {
+ Type* r = container ();
+
+ for (Type* c = r->container (); c != r; c = c->container ()) r = c;
+
+ return r;
+ }
+
+ //@@
+ //protected:
+
+ public:
+ virtual void
+ container (Type* c)
+ {
+ if (container_ == c) return;
+
+ // Revoke registrations from our old container.
+ //
+ if (container_ != 0 && map_.get ())
+ {
+ for (Map_::iterator i (map_->begin ()); i != map_->end (); ++i)
+ {
+ //std::wcerr << "revoking " << i->second
+ // << " to " << container_ << std::endl;
+
+ container_->unregister_id (*(i->first));
+ }
+ }
+
+ // Copy registrations to our new container.
+ //
+ if (c != 0 && map_.get ())
+ {
+ for (Map_::iterator i (map_->begin ()); i != map_->end (); ++i)
+ {
+ //std::wcerr << "copying " << i->second
+ // << " to " << c << std::endl;
+
+ c->register_id (*(i->first), i->second);
+ }
+ }
+
+ container_ = c;
+ }
+
+ //@@
+ //protected:
+
+ public:
+ void
+ register_id (IdentityProvider const& id, Type* t)
+ {
+ if (map_.get () == 0)
+ {
+ map_ = std::auto_ptr<Map_> (new Map_);
+ }
+
+ if (!map_->insert (
+ std::pair<IdentityProvider const*, Type*> (&id, t)).second)
+ {
+ throw 1;
+ }
+
+ if (container () != this) container ()->register_id (id, t);
+ }
+
+ void
+ unregister_id (IdentityProvider const& id)
+ {
+ if (map_.get ())
+ {
+ Map_::iterator it (map_->find (&id));
+
+ if (it != map_->end ())
+ {
+ map_->erase (it);
+
+ if (container () != this) container ()->unregister_id (id);
+
+ return;
+ }
+ }
+
+ throw 1;
+ }
+
+ Type*
+ lookup_id (IdentityProvider const& id) const
+ {
+ if (map_.get ())
+ {
+ Map_::const_iterator it (map_->find (&id));
+
+ if (it != map_->end ())
+ {
+ return it->second;
+ }
+ }
+
+ return 0;
+ }
+
+ //Get and set methods for the idref_map_ data member
+ Type* get_idref (const char* name)
+ {
+ std::basic_string<ACE_TCHAR> name_string (ACE_TEXT_CHAR_TO_TCHAR(name));
+ std::map<std::basic_string<ACE_TCHAR>, XSCRT::Type*>::iterator i =
+ this->idref_map_.find(name_string);
+ if (i != idref_map_.end())
+ {
+ return i->second;
+ }
+ else
+ {
+ return 0;
+ }
+ }
+
+ Type* get_idref (const wchar_t *name)
+ {
+ std::basic_string<ACE_TCHAR> name_string (ACE_TEXT_WCHAR_TO_TCHAR(name));
+ std::map<std::basic_string<ACE_TCHAR>, XSCRT::Type*>::iterator i =
+ this->idref_map_.find(name_string);
+ if (i != idref_map_.end())
+ {
+ return i->second;
+ }
+ else
+ {
+ return 0;
+ }
+ }
+
+
+ void set_idref (std::basic_string<ACE_TCHAR> name, Type* new_idref)
+ {
+ this->idref_map_.insert(std::pair<std::basic_string<ACE_TCHAR>,Type*>(name, new_idref));
+ return;
+ }
+
+ private:
+
+ //Data member to handle unbounded IDREF attributes and elements
+ std::map<std::basic_string<ACE_TCHAR>, XSCRT::Type*> idref_map_;
+
+ Type* container_;
+
+ struct IdentityComparator
+ {
+ bool operator () (IdentityProvider const* x,
+ IdentityProvider const* y) const
+ {
+ return x->before (*y);
+ }
+ };
+
+ typedef
+ std::map<IdentityProvider const*, Type*, IdentityComparator>
+ Map_;
+
+ std::auto_ptr<Map_> map_;
+ };
+
+ // Fundamental types template.
+ //
+ //
+ template <typename X>
+ class FundamentalType : public Type
+ {
+ public:
+ // Trait for marshaling a FundamentalType X
+ typedef X CDR_Type__;
+#if !defined (__BORLANDC__) || (__BORLANDC__ >= 0x620)
+ typedef ACE_Refcounted_Auto_Ptr < FundamentalType, ACE_Null_Mutex > _ptr;
+#endif /* !__BORLANDC__ */
+
+ FundamentalType ()
+ {
+ }
+
+ template<typename C>
+ FundamentalType (XML::Element<C> const& e)
+ {
+ std::basic_stringstream<C> s;
+ s << e.value ();
+ s >> x_;
+ }
+
+ template<typename C>
+ FundamentalType (XML::Attribute<C> const& a)
+ {
+ std::basic_stringstream<C> s;
+ s << a.value ();
+ s >> x_;
+ }
+
+ FundamentalType (X const& x)
+ : x_ (x)
+ {
+ }
+
+ FundamentalType&
+ operator= (X const& x)
+ {
+ x_ = x;
+ return *this;
+ }
+
+ public:
+ operator X const& () const
+ {
+ return x_;
+ }
+
+ operator X& ()
+ {
+ return x_;
+ }
+
+ protected:
+ X x_;
+ };
+
+#if !((defined (__GNUC__) && (__GNUC__ == 3 && (__GNUC_MINOR__ < 3))) || \
+ (defined (__BORLANDC__) && (__BORLANDC__ < 0x620)) || \
+ (defined (__SUNPRO_CC) && (__SUNPRO_CC <= 0x5100)))
+
+ // Stuff for normal compilers.
+ //
+
+ // Specialization for `signed char'
+ //
+ //
+ template<>
+ template<typename C>
+ inline
+ FundamentalType<signed char>::
+ FundamentalType (XML::Element<C> const& e)
+ {
+ std::basic_stringstream<C> s;
+ s << e.value ();
+
+ short t;
+ s >> t;
+
+ x_ = static_cast<signed char> (t);
+ }
+
+ template<>
+ template<typename C>
+ inline
+ FundamentalType<signed char>::
+ FundamentalType (XML::Attribute<C> const& a)
+ {
+ std::basic_stringstream<C> s;
+ s << a.value ();
+
+ short t;
+ s >> t;
+
+ x_ = static_cast<signed char> (t);
+ }
+
+ // Specialization for `unsigned char'
+ //
+ //
+ template<>
+ template<typename C>
+ inline
+ FundamentalType<unsigned char>::
+ FundamentalType (XML::Element<C> const& e)
+ {
+ std::basic_stringstream<C> s;
+ s << e.value ();
+
+ unsigned short t;
+ s >> t;
+
+ x_ = static_cast<unsigned char> (t);
+ }
+
+ template<>
+ template<typename C>
+ inline
+ FundamentalType<unsigned char>::
+ FundamentalType (XML::Attribute<C> const& a)
+ {
+ std::basic_stringstream<C> s;
+ s << a.value ();
+
+ unsigned short t;
+ s >> t;
+
+ x_ = static_cast<unsigned char> (t);
+ }
+
+#else
+
+ // Stuff for broken VC6 & gcc < 3.3. Don't like what you see - use better
+ // compiler!
+ //
+
+ // Specialization for signed char.
+ //
+ template <>
+ class FundamentalType<signed char> : public Type
+ {
+ public:
+ FundamentalType ()
+ {
+ }
+
+ template<typename C>
+ FundamentalType (XML::Element<C> const& e)
+ {
+ std::basic_stringstream<C> s;
+ s << e.value ();
+
+ short t;
+ s >> t;
+
+ x_ = static_cast<signed char> (t);
+ }
+
+ template<typename C>
+ FundamentalType (XML::Attribute<C> const& a)
+ {
+ std::basic_stringstream<C> s;
+ s << a.value ();
+
+ short t;
+ s >> t;
+
+ x_ = static_cast<signed char> (t);
+ }
+
+ FundamentalType (signed char const& x)
+ : x_ (x)
+ {
+ }
+
+ FundamentalType&
+ operator= (signed char const& x)
+ {
+ x_ = x;
+ return *this;
+ }
+
+ public:
+ operator signed char const& () const
+ {
+ return x_;
+ }
+
+ operator signed char& ()
+ {
+ return x_;
+ }
+
+ protected:
+ signed char x_;
+ };
+
+ // Specialization for unsigned char.
+ //
+ template <>
+ class FundamentalType<unsigned char> : public Type
+ {
+ public:
+ FundamentalType ()
+ {
+ }
+
+ template<typename C>
+ FundamentalType (XML::Element<C> const& e)
+ {
+ std::basic_stringstream<C> s;
+ s << e.value ();
+
+ unsigned short t;
+ s >> t;
+
+ x_ = static_cast<unsigned char> (t);
+ }
+
+ template<typename C>
+ FundamentalType (XML::Attribute<C> const& a)
+ {
+ std::basic_stringstream<C> s;
+ s << a.value ();
+
+ unsigned short t;
+ s >> t;
+
+ x_ = static_cast<unsigned char> (t);
+ }
+
+ FundamentalType (unsigned char const& x)
+ : x_ (x)
+ {
+ }
+
+ FundamentalType&
+ operator= (unsigned char const& x)
+ {
+ x_ = x;
+ return *this;
+ }
+
+ public:
+ operator unsigned char const& () const
+ {
+ return x_;
+ }
+
+ operator unsigned char& ()
+ {
+ return x_;
+ }
+
+ protected:
+ unsigned char x_;
+ };
+
+#endif
+
+
+ // Specialization for bool.
+ //
+ //
+
+ template<>
+ template<>
+ inline
+ FundamentalType<bool>::
+ FundamentalType (XML::Element<char> const& e)
+ {
+ x_ = (e.value () == "true") || (e.value () == "1");
+ }
+
+ template<>
+ template<>
+ inline
+ FundamentalType<bool>::
+ FundamentalType (XML::Element<wchar_t> const& e)
+ {
+ x_ = (e.value () == L"true") || (e.value () == L"1");
+ }
+
+ template<>
+ template<>
+ inline
+ FundamentalType<bool>::
+ FundamentalType (XML::Attribute<char> const& a)
+ {
+ x_ = (a.value () == "true") || (a.value () == "1");
+ }
+
+ template<>
+ template<>
+ inline
+ FundamentalType<bool>::
+ FundamentalType (XML::Attribute<wchar_t> const& a)
+ {
+ x_ = (a.value () == L"true") || (a.value () == L"1");
+ }
+
+}
+
+#endif // XSCRT_ELEMENTS_HPP
diff --git a/dep/acelite/ace/XML_Utils/XSCRT/ExtendedTypeInfo.hpp b/dep/acelite/ace/XML_Utils/XSCRT/ExtendedTypeInfo.hpp
new file mode 100644
index 00000000000..89f6da81f52
--- /dev/null
+++ b/dep/acelite/ace/XML_Utils/XSCRT/ExtendedTypeInfo.hpp
@@ -0,0 +1,182 @@
+// file : XSCRT/ExtendedTypeInfo.hpp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id: ExtendedTypeInfo.hpp 95802 2012-05-31 12:37:36Z johnnyw $
+
+#ifndef XSCRT_EXTENDED_TYPE_INFO_HPP
+#define XSCRT_EXTENDED_TYPE_INFO_HPP
+
+#include <map>
+#include <vector>
+#include <typeinfo>
+
+namespace XSCRT
+{
+ //
+ //
+ //
+ class TypeId
+ {
+ public:
+ template<typename T>
+ TypeId (T const& t);
+
+ TypeId (std::type_info const& tid);
+
+ public:
+ bool
+ operator == (TypeId const& other) const;
+
+ bool
+ operator != (TypeId const& other) const;
+
+ bool
+ operator < (TypeId const& other) const;
+
+ /*
+ friend std::ostream&
+ operator << (std::ostream& os, TypeId const& t);
+ */
+
+ public:
+ char const*
+ name () const
+ {
+ return tid_->name ();
+ }
+
+ private:
+ std::type_info const* tid_;
+ };
+
+
+ //
+ //
+ //
+ class ExtendedTypeInfo
+ {
+ public:
+
+ //
+ //
+ //
+ struct Access
+ {
+ enum Value
+ {
+ private_,
+ protected_,
+ public_
+ };
+ };
+
+
+ //
+ //
+ //
+ class BaseInfo
+ {
+ public:
+ BaseInfo (Access::Value access, bool virtual_base, TypeId const& tid);
+
+ public:
+ ExtendedTypeInfo const&
+ type_info () const;
+
+ Access::Value
+ access () const;
+
+ bool
+ virtual_base () const;
+
+ private:
+ TypeId tid_;
+ mutable ExtendedTypeInfo const* ti_;
+ bool virtual_base_;
+ Access::Value access_;
+ };
+
+ private:
+ typedef
+ std::vector<BaseInfo>
+ BaseInfoList;
+
+ public:
+ typedef
+ BaseInfoList::const_iterator
+ BaseIterator;
+
+ public:
+ ExtendedTypeInfo (TypeId const& tid);
+
+ TypeId
+ type_id () const;
+
+ BaseIterator
+ begin_base () const;
+
+ BaseIterator
+ end_base () const;
+
+ void
+ add_base (Access::Value access, bool virtual_base, TypeId const& tid);
+
+ private:
+ TypeId tid_;
+ BaseInfoList base_;
+ };
+
+ typedef
+ std::map<TypeId, ExtendedTypeInfo>
+ ExtendedTypeInfoMap;
+
+
+ ExtendedTypeInfoMap&
+ extended_type_info_map ();
+
+
+ class NotAvailable {};
+
+
+ template<typename T>
+ ExtendedTypeInfo const&
+ extended_type_info (T const& t)
+ {
+ return extended_type_info (typeid (t));
+ }
+
+ template<typename T>
+ ExtendedTypeInfo const&
+ extended_type_info ()
+ {
+ return extended_type_info (typeid (T));
+ }
+
+ //@@ Had to use function template specialization because VC6
+ // cannot handle simply overloaded functions.
+ //
+
+ template <>
+ inline
+ ExtendedTypeInfo const&
+ extended_type_info<TypeId> (TypeId const& tid)
+ {
+ ExtendedTypeInfoMap::const_iterator i (
+ extended_type_info_map ().find (tid));
+
+ if (i == extended_type_info_map ().end ()) throw NotAvailable ();
+
+ return i->second;
+ }
+
+ template <>
+ inline
+ ExtendedTypeInfo const&
+ extended_type_info<std::type_info> (std::type_info const& tid)
+ {
+ return extended_type_info (TypeId (tid));
+ }
+}
+
+#include <ace/XML_Utils/XSCRT/ExtendedTypeInfo.ipp>
+
+#endif // XSCRT_EXTENDED_TYPE_INFO_HPP
diff --git a/dep/acelite/ace/XML_Utils/XSCRT/ExtendedTypeInfo.ipp b/dep/acelite/ace/XML_Utils/XSCRT/ExtendedTypeInfo.ipp
new file mode 100644
index 00000000000..5d62821347f
--- /dev/null
+++ b/dep/acelite/ace/XML_Utils/XSCRT/ExtendedTypeInfo.ipp
@@ -0,0 +1,141 @@
+// file : XSCRT/ExtendedTypeInfo.ipp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id: ExtendedTypeInfo.ipp 86462 2009-08-12 13:31:27Z wotte $
+
+
+/*
+ * @@HACK: Visual Studio.
+ * I think the return value for operator== for type_info
+ * in VC7 (perhaps others) is int when is should be bool.
+ * This causes a warning about converting the return value from
+ * int to bool.
+ */
+#ifdef _MSC_VER
+# pragma warning( disable: 4800 )
+#endif
+
+namespace XSCRT
+{
+ // TypeId
+ //
+ //
+ inline
+ TypeId::
+ TypeId (std::type_info const& tid)
+ : tid_ (&tid)
+ {
+ }
+
+ inline
+ bool TypeId::
+ operator == (TypeId const& other) const
+ {
+ return *tid_ == *other.tid_;
+ }
+
+ inline
+ bool TypeId::
+ operator != (TypeId const& other) const
+ {
+ return *tid_ != *other.tid_;
+ }
+
+ inline
+ bool TypeId::
+ operator < (TypeId const& other) const
+ {
+ return tid_->before (*other.tid_);
+ }
+
+
+ // ExtendedTypeInfo::BaseInfo
+ //
+ //
+
+ inline
+ ExtendedTypeInfo::BaseInfo::
+ BaseInfo (Access::Value access, bool virtual_base, TypeId const& tid)
+ : tid_ (tid),
+ ti_ (0),
+ virtual_base_ (virtual_base),
+ access_ (access)
+ {
+ }
+
+ inline
+ ExtendedTypeInfo const& ExtendedTypeInfo::BaseInfo::
+ type_info () const
+ {
+ if (ti_ == 0) ti_ = &(extended_type_info (tid_));
+
+ return *ti_;
+ }
+
+
+ inline
+ ExtendedTypeInfo::Access::Value ExtendedTypeInfo::BaseInfo::
+ access () const
+ {
+ return access_;
+ }
+
+ inline
+ bool ExtendedTypeInfo::BaseInfo::
+ virtual_base () const
+ {
+ return virtual_base_;
+ }
+
+
+ // ExtendedTypeInfo
+ //
+ //
+ inline
+ ExtendedTypeInfo::
+ ExtendedTypeInfo (TypeId const& tid)
+ : tid_ (tid)
+ {
+ }
+
+ inline
+ TypeId ExtendedTypeInfo::
+ type_id () const
+ {
+ return tid_;
+ }
+
+ inline
+ ExtendedTypeInfo::BaseIterator ExtendedTypeInfo::
+ begin_base () const
+ {
+ return base_.begin ();
+ }
+
+
+ inline
+ ExtendedTypeInfo::BaseIterator ExtendedTypeInfo::
+ end_base () const
+ {
+ return base_.end ();
+ }
+
+ inline
+ void ExtendedTypeInfo::
+ add_base (Access::Value access, bool virtual_base, TypeId const& tid)
+ {
+ base_.push_back (BaseInfo (access, virtual_base, tid));
+ }
+
+ // ExtendedTypeInfoMap
+ //
+ //
+
+ inline
+ ExtendedTypeInfoMap&
+ extended_type_info_map ()
+ {
+ static ExtendedTypeInfoMap extended_type_info_map_;
+
+ return extended_type_info_map_;
+ }
+}
diff --git a/dep/acelite/ace/XML_Utils/XSCRT/Parser.hpp b/dep/acelite/ace/XML_Utils/XSCRT/Parser.hpp
new file mode 100644
index 00000000000..52f7c6dcb14
--- /dev/null
+++ b/dep/acelite/ace/XML_Utils/XSCRT/Parser.hpp
@@ -0,0 +1,64 @@
+// file : XSCRT/Parser.hpp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id: Parser.hpp 95832 2012-06-06 13:09:50Z johnnyw $
+
+#ifndef XSCRT_PARSER_HPP
+#define XSCRT_PARSER_HPP
+
+#include <string>
+
+#include "ace/XML_Utils/XSCRT/XML.hpp"
+
+namespace XSCRT
+{
+ template <typename C>
+ class Parser
+ {
+ public:
+ Parser (XML::Element<C> const& e)
+ : e_ (e.dom_element ()->getChildNodes ()), ei_ (0),
+ a_ (e.dom_element ()->getAttributes ()), ai_ (0)
+ {
+ }
+
+ bool
+ more_elements () const
+ {
+ return e_->getLength () > ei_;
+ }
+
+ XML::Element<C>
+ next_element ()
+ {
+ return XML::Element<C> (XML::dom_cast <xercesc::DOMElement*> (e_->item (ei_++)));
+ }
+
+ bool
+ more_attributes () const
+ {
+ return a_->getLength () > ai_;
+ }
+
+ XML::Attribute<C>
+ next_attribute ()
+ {
+ return XML::Attribute<C> (
+ XML::dom_cast <xercesc::DOMAttr*> (a_->item (ai_++)));
+ }
+
+ private:
+ xercesc::DOMNodeList const* e_;
+ unsigned long ei_;
+
+ xercesc::DOMNamedNodeMap const* a_;
+ unsigned long ai_;
+
+ private:
+ Parser (Parser const&);
+
+ void
+ operator= (Parser const&);
+ };
+}
+
+#endif // XSCRT_PARSER_HPP
diff --git a/dep/acelite/ace/XML_Utils/XSCRT/Traversal.hpp b/dep/acelite/ace/XML_Utils/XSCRT/Traversal.hpp
new file mode 100644
index 00000000000..ea04567fe7c
--- /dev/null
+++ b/dep/acelite/ace/XML_Utils/XSCRT/Traversal.hpp
@@ -0,0 +1,265 @@
+// file : XSCRT/Traversal.hpp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id: Traversal.hpp 95833 2012-06-06 14:53:45Z johnnyw $
+
+#ifndef XSCRT_TRAVERSAL_HPP
+#define XSCRT_TRAVERSAL_HPP
+
+#include <map>
+#include <set>
+#include <vector>
+
+#include "ace/XML_Utils/XSCRT/ExtendedTypeInfo.hpp"
+
+namespace XSCRT
+{
+ namespace Traversal
+ {
+ //
+ //
+ //
+ template<typename B>
+ class TraverserBase
+ {
+ protected:
+ virtual
+ ~TraverserBase ();
+
+ //@@ VC6
+ public:
+ virtual void
+ trampoline (B& n) = 0;
+
+ virtual void
+ trampoline (B const& n) = 0;
+ };
+
+
+ //
+ //
+ //
+ template <typename B>
+ class DispatcherBase
+ {
+ public:
+ virtual
+ ~DispatcherBase ();
+
+ virtual void
+ dispatch (B& n);
+
+ virtual void
+ dispatch (B const& n);
+
+ void
+ map (TypeId id, TraverserBase<B>& t)
+ {
+ //wcerr << "map for " << id.name () << " to " << &t
+ // << " in " << &traversal_map_ << endl;
+
+ //@@ VC6
+ Traversers& traversers = traversal_map_[id];
+ traversers.push_back (&t);
+ }
+
+ public:
+ typedef
+ std::vector<TraverserBase<B>*>
+ Traversers;
+
+ typedef
+ std::map<TypeId, Traversers>
+ TraversalMap;
+
+ typedef
+ typename TraversalMap::const_iterator
+ Iterator;
+
+ Iterator
+ begin () const
+ {
+ return traversal_map_.begin ();
+ }
+
+ Iterator
+ end () const
+ {
+ return traversal_map_.end ();
+ }
+
+ private:
+ struct TypeInfoComparator
+ {
+ bool
+ operator () (ExtendedTypeInfo const& x,
+ ExtendedTypeInfo const& y) const
+ {
+ return x.type_id () < y.type_id ();
+ }
+ };
+
+ typedef
+ std::map<ExtendedTypeInfo, unsigned long, TypeInfoComparator>
+ LevelMap;
+
+ typedef
+ std::set<ExtendedTypeInfo, TypeInfoComparator>
+ TypeInfoSet;
+
+ static unsigned long
+ compute_levels (ExtendedTypeInfo const& ti,
+ unsigned long cur,
+ LevelMap& map);
+
+ static void
+ flatten_tree (ExtendedTypeInfo const& ti, TypeInfoSet& set);
+
+ private:
+ TraversalMap traversal_map_;
+ };
+
+
+ //
+ //
+ //
+ template <typename B>
+ class Dispatcher : public virtual DispatcherBase<B>
+ {
+ public:
+ Dispatcher ()
+ : merge_ (true)
+ {
+ }
+
+ void
+ traverser (DispatcherBase<B>& d)
+ {
+ for (typename DispatcherBase<B>::Iterator
+ i (d.begin ()), end (d.end ());
+ i != end; ++i)
+ {
+ for (typename DispatcherBase<B>::Traversers::const_iterator
+ t (i->second.begin ()), end (i->second.end ());
+ t != end; ++t)
+ {
+ dispatcher_.map (i->first, **t);
+ }
+ }
+ }
+
+ public:
+ virtual void
+ dispatch (B& n)
+ {
+ merge ();
+ dispatcher_.dispatch (n);
+ }
+
+ virtual void
+ dispatch (B const& n)
+ {
+ merge ();
+ dispatcher_.dispatch (n);
+ }
+
+ using DispatcherBase<B>::begin;
+ using DispatcherBase<B>::end;
+
+ private:
+ void
+ merge ()
+ {
+ if (merge_)
+ {
+ for (typename DispatcherBase<B>::Iterator
+ i (begin ()), e (end ()); i != e; ++i)
+ {
+ for (typename DispatcherBase<B>::Traversers::const_iterator
+ t (i->second.begin ()), e (i->second.end ()); t != e; ++t)
+ {
+ dispatcher_.map (i->first, **t);
+ }
+ }
+
+ merge_ = false;
+ }
+ }
+
+ protected:
+ // DispatcherBase<B>&
+ // traverser ()
+ // {
+ // return dispatcher_;
+ // }
+
+ template <typename X, typename A, typename I>
+ void
+ iterate_and_dispatch (I begin, I end, X& x, void (X::*next)(A&), A& a)
+ {
+ for (; begin != end;)
+ {
+ dispatch (*begin);
+
+ if (++begin != end) (x.*next) (a);
+ }
+ }
+
+ private:
+ bool merge_;
+ DispatcherBase<B> dispatcher_;
+ };
+
+
+
+ //
+ //
+ //
+ template <typename T, typename B>
+ struct Traverser : TraverserBase<B>, virtual Dispatcher<B>
+ {
+ typedef
+ T
+ Type;
+
+ Traverser ()
+ {
+ DispatcherBase<B>::map (typeid (Type), *this);
+ }
+
+ virtual void
+ traverse (Type&)
+ {
+ abort ();
+ }
+
+ virtual void
+ traverse (Type const&)
+ {
+ abort ();
+ }
+
+ protected:
+ virtual void
+ trampoline (B& n)
+ {
+ //wcerr << "trampoline for " << &n << " to type "
+ // << typeid (Type).name () << endl;
+
+ traverse (dynamic_cast<Type&> (n));
+ }
+
+ virtual void
+ trampoline (B const& n)
+ {
+ //wcerr << "trampoline for " << &n << " to type "
+ // << typeid (Type).name () << endl;
+
+ traverse (dynamic_cast<Type const&> (n));
+ }
+ };
+ }
+}
+
+#include <ace/XML_Utils/XSCRT/Traversal.tpp>
+
+#endif // XSCRT_TRAVERSAL_HPP
diff --git a/dep/acelite/ace/XML_Utils/XSCRT/Traversal.tpp b/dep/acelite/ace/XML_Utils/XSCRT/Traversal.tpp
new file mode 100644
index 00000000000..f4e3d96fce1
--- /dev/null
+++ b/dep/acelite/ace/XML_Utils/XSCRT/Traversal.tpp
@@ -0,0 +1,195 @@
+// file : XSCRT/Traversal.tpp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id: Traversal.tpp 95833 2012-06-06 14:53:45Z johnnyw $
+
+namespace XSCRT
+{
+ namespace Traversal
+ {
+ // TraverserBase
+ //
+ //
+
+ template<typename B>
+ TraverserBase<B>::
+ ~TraverserBase ()
+ {
+ }
+
+ // DispatcherBase
+ //
+ //
+
+ template <typename B>
+ DispatcherBase<B>::
+ ~DispatcherBase ()
+ {
+ }
+
+ //@@ merge after dropping VC6
+ //
+ //
+ template <typename B>
+ void DispatcherBase<B>::
+ dispatch (B& n)
+ {
+ LevelMap levels;
+
+ //@@ VC6
+ ExtendedTypeInfo const& ti = extended_type_info (n);
+
+ unsigned long max = compute_levels (ti, 0, levels);
+
+
+ //wcerr << "starting dispatch process for "
+ // << typeid (n).name () << " with "
+ // << max << " levels" << endl;
+
+ for (unsigned long l = 0; l < max + 1; ++l)
+ {
+ TypeInfoSet dispatched;
+
+ for (typename LevelMap::const_iterator
+ i (levels.begin ()), e (levels.end ());
+ i != e; ++i)
+ {
+ if (i->second == l)
+ {
+ typename TraversalMap::const_iterator v (
+ traversal_map_.find (i->first.type_id ()));
+
+ if (v != traversal_map_.end ())
+ {
+ //wcerr << "dispatching traversers for "
+ // << typeid (n).name () << " as "
+ // << i->first.type_id ().name () << endl;
+
+ //@@ VC6
+ Traversers const& traversers = v->second;
+ for (typename Traversers::const_iterator
+ ti (traversers.begin ()), te (traversers.end ());
+ ti != te; ++ti)
+ {
+ (*ti)->trampoline (n);
+ }
+
+ flatten_tree (i->first, dispatched);
+ }
+ }
+ }
+
+ // Remove traversed types from the level map.
+ //
+ //@@ VC6
+ {
+ for (typename TypeInfoSet::const_iterator i = dispatched.begin ();
+ i != dispatched.end ();
+ ++i)
+ {
+ levels.erase (*i);
+ }
+ }
+ }
+ }
+
+ template <typename B>
+ void DispatcherBase<B>::
+ dispatch (B const& n)
+ {
+ LevelMap levels;
+
+ //@@ VC6
+ ExtendedTypeInfo const& ti = extended_type_info (n);
+
+ unsigned long max = compute_levels (ti, 0, levels);
+
+
+ //wcerr << "starting dispatch process for "
+ // << typeid (n).name () << " with "
+ // << max << " levels" << endl;
+
+ //wcerr << "using " << &traversal_map_ << " traversal map" << endl;
+
+ for (unsigned long l = 0; l < max + 1; ++l)
+ {
+ TypeInfoSet dispatched;
+
+ for (typename LevelMap::const_iterator
+ i (levels.begin ()), e (levels.end ());
+ i != e; ++i)
+ {
+ if (i->second == l)
+ {
+ typename TraversalMap::const_iterator v (
+ traversal_map_.find (i->first.type_id ()));
+
+ if (v != traversal_map_.end ())
+ {
+ //wcerr << "dispatching traversers for "
+ // << typeid (n).name () << " as "
+ // << i->first.type_id ().name () << endl;
+
+ //@@ VC6
+ Traversers const& traversers = v->second;
+ for (typename Traversers::const_iterator
+ ti (traversers.begin ()), te (traversers.end ());
+ ti != te; ++ti)
+ {
+ (*ti)->trampoline (n);
+ }
+
+ flatten_tree (i->first, dispatched);
+ }
+ }
+ }
+
+ // Remove traversed types from the level map.
+ //
+ //@@ VC6
+ {
+ for (typename TypeInfoSet::const_iterator i = dispatched.begin ();
+ i != dispatched.end ();
+ ++i)
+ {
+ levels.erase (*i);
+ }
+ }
+ }
+ }
+
+ template <typename B>
+ unsigned long DispatcherBase<B>::
+ compute_levels (ExtendedTypeInfo const& ti,
+ unsigned long cur,
+ LevelMap& map)
+ {
+ unsigned long ret = cur;
+
+ if (map.find (ti) == map.end () || map[ti] < cur) map[ti] = cur;
+
+ for (ExtendedTypeInfo::BaseIterator i = ti.begin_base ();
+ i != ti.end_base ();
+ i++)
+ {
+ unsigned long t = compute_levels (i->type_info (), cur + 1, map);
+ if (t > ret) ret = t;
+ }
+
+ return ret;
+ }
+
+ template <typename B>
+ void DispatcherBase<B>::
+ flatten_tree (ExtendedTypeInfo const& ti, TypeInfoSet& set)
+ {
+ set.insert (ti);
+
+ for (ExtendedTypeInfo::BaseIterator i = ti.begin_base ();
+ i != ti.end_base ();
+ i++)
+ {
+ flatten_tree (i->type_info (), set);
+ }
+ }
+ }
+}
diff --git a/dep/acelite/ace/XML_Utils/XSCRT/Writer.hpp b/dep/acelite/ace/XML_Utils/XSCRT/Writer.hpp
new file mode 100644
index 00000000000..10dd392304d
--- /dev/null
+++ b/dep/acelite/ace/XML_Utils/XSCRT/Writer.hpp
@@ -0,0 +1,78 @@
+// file : XSCRT/Writer.hpp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id: Writer.hpp 95832 2012-06-06 13:09:50Z johnnyw $
+
+#ifndef XSCRT_WRITER_HPP
+#define XSCRT_WRITER_HPP
+
+#include <stack>
+#include <string>
+
+#include "ace/XML_Utils/XSCRT/XML.hpp"
+
+namespace XSCRT
+{
+ template <typename C>
+ class Writer
+ {
+ public:
+ Writer (XML::Element<C>& e)
+ : attr__ (0)
+ {
+ push_ (e);
+ }
+
+ protected:
+ // This c-tor should never be called.
+ //
+ Writer ()
+ {
+ abort ();
+ }
+
+ public:
+ void
+ push_ (XML::Element<C> const& e)
+ {
+ stack_.push (e);
+ }
+
+ void
+ pop_ ()
+ {
+ stack_.pop ();
+ }
+
+ XML::Element<C>&
+ top_ ()
+ {
+ return stack_.top ();
+ }
+
+ public:
+ XML::Attribute<C>*
+ attr_ ()
+ {
+ return attr__;
+ }
+
+ void
+ attr_ (XML::Attribute<C>* a)
+ {
+ attr__ = a;
+ }
+
+ private:
+ std::stack<XML::Element<C> > stack_;
+
+ XML::Attribute<C>* attr__;
+
+ private:
+ Writer (Writer const&);
+
+ void
+ operator= (Writer const&);
+ };
+}
+
+#endif // XSCRT_WRITER_HPP
diff --git a/dep/acelite/ace/XML_Utils/XSCRT/XML.hpp b/dep/acelite/ace/XML_Utils/XSCRT/XML.hpp
new file mode 100644
index 00000000000..24f1968ba80
--- /dev/null
+++ b/dep/acelite/ace/XML_Utils/XSCRT/XML.hpp
@@ -0,0 +1,490 @@
+// file : XSCRT/XML.hpp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id: XML.hpp 95832 2012-06-06 13:09:50Z johnnyw $
+
+
+#ifndef XSCRT_XML_HPP
+#define XSCRT_XML_HPP
+
+#include <string>
+
+#include <xercesc/dom/DOM.hpp>
+#include <xercesc/util/XMLString.hpp>
+
+namespace XSCRT
+{
+ namespace XML
+ {
+ //@@ VC6
+ //
+ template <typename C>
+ std::basic_string<C>
+ transcode (XMLCh const* s, C*);
+
+ template <typename C>
+ XMLCh*
+ transcode (std::basic_string<C> const& s);
+
+ //
+ //
+ //
+ class string
+ {
+ public :
+ template <typename C>
+ string (std::basic_string<C> const& s)
+ : s_ (XSCRT::XML::transcode<C> (s))
+ {
+ }
+
+ template <typename C>
+ string (C const* s)
+ : s_ (XSCRT::XML::transcode<C> (s))
+ {
+ }
+
+ ~string ()
+ {
+ delete[] s_;
+ }
+
+ XMLCh const*
+ c_str () const
+ {
+ return s_;
+ }
+
+ private :
+ XMLCh* s_;
+ };
+
+
+ template <>
+ inline
+ std::basic_string<char>
+ transcode<char> (XMLCh const* s, char*)
+ {
+ if (s == 0) return std::basic_string<char> ();
+
+ char* buf = xercesc::XMLString::transcode (s);
+
+ std::basic_string<char> r (buf);
+
+ xercesc::XMLString::release (&buf);
+
+ return r;
+ }
+
+ template <>
+ inline
+ std::basic_string<wchar_t>
+ transcode<wchar_t> (XMLCh const* s, wchar_t*)
+ {
+ if (s == 0) return std::basic_string<wchar_t> ();
+
+ // std::wcerr << s << std::endl;
+
+ std::basic_string<wchar_t> r (xercesc::XMLString::stringLen (s), L'0');
+
+ for (std::size_t i (0); *s != XMLCh (0); ++s, ++i)
+ {
+ r[i] = *s;
+ }
+
+ return r;
+ }
+
+ template <>
+ inline
+ XMLCh*
+ transcode (std::basic_string<char> const& s)
+ {
+ return xercesc::XMLString::transcode (s.c_str ());
+ }
+
+ template <>
+ inline
+ XMLCh*
+ transcode (std::basic_string<wchar_t> const& s)
+ {
+ //@@ VC6
+ std::size_t l = s.length ();
+
+ //@@ VC6
+ XMLCh* r = new XMLCh[l + 1];
+ XMLCh* ir = r;
+
+ for (std::size_t i (0); i < l; ++ir, ++i)
+ {
+ *ir = static_cast<XMLCh>(s[i]);
+ //std::wcerr << s[i] << "->" << *ir << std::endl;
+ }
+
+ *ir = XMLCh (0);
+
+ // std::wcerr << r << std::endl;
+
+ return r;
+ }
+
+
+ template <typename C>
+ class Element;
+
+ template <typename C>
+ std::basic_string<C>
+ ns_prefix (std::basic_string<C> const& ns, Element<C> const& e);
+
+ // Casting helpers, made necessary by the Xerces project's braindead
+ // avoidance of RTTI.
+ template <typename DERIVED> struct dom_traits;
+
+ // Specializations for different node types
+ template <>
+ struct dom_traits<xercesc::DOMElement *>
+ {
+ static const xercesc::DOMNode::NodeType node_type = xercesc::DOMNode::ELEMENT_NODE;
+ };
+
+ template <>
+ struct dom_traits<xercesc::DOMAttr *>
+ {
+ static const xercesc::DOMNode::NodeType node_type = xercesc::DOMNode::ATTRIBUTE_NODE;
+ };
+
+ template <typename DERIVED_PTR>
+ DERIVED_PTR dom_cast (xercesc::DOMNode *node)
+ {
+ DERIVED_PTR elem = 0;
+ if ((node != 0) &&
+ (node->getNodeType () == dom_traits<DERIVED_PTR>::node_type))
+ {
+ elem = reinterpret_cast <DERIVED_PTR> (node);
+ }
+ return elem;
+ }
+
+ template <typename C>
+ class Element
+ {
+ typedef std::basic_string<C> string_;
+
+ public:
+ Element (xercesc::DOMElement const* e)
+ : e_ (0),
+ ce_ (e),
+ name_ (transcode<C> (e->getLocalName (), 0)),
+ namespace__ (transcode<C> (e->getNamespaceURI (), 0))
+ {
+ }
+
+ Element (xercesc::DOMElement* e)
+ : e_ (e),
+ ce_ (e),
+ name_ (transcode<C> (e->getLocalName (), 0)),
+ namespace__ (transcode<C> (e->getNamespaceURI (), 0))
+ {
+ }
+
+ Element (string_ const& name, Element& parent)
+ : e_ (0),
+ ce_ (0),
+ name_ (name)
+ {
+ xercesc::DOMDocument* doc (
+ parent.dom_element ()->getOwnerDocument ());
+
+ e_ = doc->createElement (string (name).c_str ());
+
+ parent.dom_element ()->appendChild (e_);
+
+ ce_ = e_;
+ }
+
+ Element (string_ const& name, string_ const& ns, Element& parent)
+ : e_ (0),
+ ce_ (0),
+ name_ (name),
+ namespace__ (ns)
+ {
+ string_ prefix (ns_prefix (ns, parent));
+
+ xercesc::DOMDocument* doc (
+ parent.dom_element ()->getOwnerDocument ());
+
+ e_ = doc->createElementNS (
+ string (ns).c_str (),
+ string (prefix.empty ()
+ ? name
+ : prefix + string_ (1, ':') + name).c_str ());
+
+ parent.dom_element ()->appendChild (e_);
+
+ ce_ = e_;
+ }
+
+ public:
+ string_
+ name () const
+ {
+ return name_;
+ }
+
+ string_
+ namespace_ () const
+ {
+ return namespace__;
+ }
+
+ public:
+ Element<C>
+ parent () const
+ {
+ return dom_cast <xercesc::DOMElement const*>(ce_->getParentNode ());
+ }
+
+ public:
+ string_
+ value () const
+ {
+ return XML::transcode<C> (dom_element ()->getTextContent (), 0);
+ }
+
+ void
+ value (string_ const& v)
+ {
+ xercesc::DOMText* text (
+ dom_element ()->getOwnerDocument ()->createTextNode(
+ string (v).c_str ()));
+
+ dom_element ()->appendChild (text);
+ }
+
+ public:
+ string_
+ operator[] (string_ const& s) const
+ {
+ //@@ VC6
+ XMLCh const* value = ce_->getAttribute (string (s).c_str ());
+
+ return transcode<C> (value, 0);
+ }
+
+ public:
+ xercesc::DOMElement const*
+ dom_element () const
+ {
+ return ce_;
+ }
+
+ xercesc::DOMElement*
+ dom_element ()
+ {
+ return e_;
+ }
+
+ private:
+ xercesc::DOMElement* e_;
+ xercesc::DOMElement const* ce_;
+
+ string_ name_;
+ string_ namespace__;
+ };
+
+
+ template <typename C>
+ class Attribute
+ {
+ typedef std::basic_string<C> string_;
+
+ public:
+ Attribute (xercesc::DOMAttr const* a)
+ : a_ (0),
+ ca_ (a),
+ name_ (transcode<C> (a->getLocalName (), 0)),
+ value_ (transcode<C> (a->getValue (), 0))
+ {
+ }
+
+ Attribute (xercesc::DOMAttr* a)
+ : a_ (a),
+ ca_ (a),
+ name_ (transcode<C> (a->getLocalName (), 0)),
+ value_ (transcode<C> (a->getValue (), 0))
+ {
+ }
+
+ Attribute (string_ const& name,
+ string_ const& v,
+ Element<C>& parent)
+ : a_ (0),
+ ca_ (0),
+ name_ (name),
+ value_ ()
+ {
+ xercesc::DOMDocument* doc (
+ parent.dom_element ()->getOwnerDocument ());
+
+ a_ = doc->createAttribute (string (name).c_str ());
+
+ value (v);
+
+ parent.dom_element ()->setAttributeNode (a_);
+
+ ca_ = a_;
+ }
+
+ Attribute (string_ const& name,
+ string_ const& ns,
+ string_ const& v,
+ Element<C>& parent)
+ : a_ (0),
+ ca_ (0),
+ name_ (name),
+ value_ ()
+ {
+ string_ prefix (ns_prefix (ns, parent));
+
+ xercesc::DOMDocument* doc (
+ parent.dom_element ()->getOwnerDocument ());
+
+ a_ = doc->createAttributeNS (
+ string (ns).c_str (),
+ string (prefix.empty ()
+ ? name
+ : prefix + string_ (1, ':') + name).c_str ());
+
+ value (v);
+
+ parent.dom_element ()->setAttributeNodeNS (a_);
+
+ ca_ = a_;
+ }
+
+ string_
+ name () const
+ {
+ return name_;
+ }
+
+ string_
+ value () const
+ {
+ return value_;
+ }
+
+ void
+ value (string_ const& v)
+ {
+ value_ = v;
+ a_->setValue (string (v).c_str ());
+ }
+
+ public:
+ xercesc::DOMAttr const*
+ dom_attribute () const
+ {
+ return ca_;
+ }
+
+ xercesc::DOMAttr*
+ dom_attribute ()
+ {
+ return a_;
+ }
+
+ private:
+
+ private:
+ xercesc::DOMAttr* a_;
+ xercesc::DOMAttr const* ca_;
+
+ string_ name_;
+ string_ value_;
+ };
+
+ template <typename C>
+ std::basic_string<C>
+ prefix (std::basic_string<C> const& n)
+ {
+ std::size_t i (0);
+ while (i < n.length () && n[i] != ':') ++i;
+
+ //std::wcerr << "prefix " << n << " "
+ // << std::wstring (n, i == n.length () ? i : 0, i) << std::endl;
+
+ return std::basic_string<C> (n, i == n.length () ? i : 0, i);
+ }
+
+ template <typename C>
+ std::basic_string<C>
+ uq_name (std::basic_string<C> const& n)
+ {
+ std::size_t i (0);
+ while (i < n.length () && n[i] != ':') ++i;
+
+ return std::basic_string<C> (n.c_str () + (i == n.length () ? 0 : i + 1));
+ }
+
+ template <typename C>
+ std::basic_string<C>
+ ns_name (Element<C> const& e, std::basic_string<C> const& n)
+ {
+ std::basic_string<C> wp (prefix (n));
+
+ //@@ VC6
+ XMLCh const* xns = e.dom_element ()->lookupNamespaceURI (
+ wp.empty () ? 0 : string (wp).c_str ());
+
+
+ std::basic_string<C> ns (
+ xns ? transcode<C> (xns, 0) : std::basic_string<C> ());
+
+ return ns;
+
+ }
+
+ template <typename C>
+ std::basic_string<C>
+ fq_name (Element<C> const& e, std::basic_string<C> const& n)
+ {
+ std::basic_string<C> ns (ns_name (e, n));
+ std::basic_string<C> un (uq_name (n));
+
+ return ns.empty () ? un : (ns + C ('#') + un);
+ }
+
+ class no_prefix {};
+
+ template <typename C>
+ std::basic_string<C>
+ ns_prefix (std::basic_string<C> const& ns, Element<C> const& e)
+ {
+ string xns (ns);
+
+#if defined(XERCES_VERSION_MAJOR) && XERCES_VERSION_MAJOR > 2
+ XMLCh const* p (e.dom_element ()->lookupPrefix (xns.c_str ()));
+#else
+ XMLCh const* p (e.dom_element ()->lookupNamespacePrefix (xns.c_str (), false));
+#endif
+
+ if (p == 0)
+ {
+ bool r (e.dom_element ()->isDefaultNamespace (xns.c_str ()));
+
+ if (r)
+ {
+ return std::basic_string<C> ();
+ }
+ else
+ {
+ throw no_prefix ();
+ }
+ }
+
+ return transcode<C> (p, 0);
+ }
+ }
+}
+
+#endif // XSCRT_XML_HPP
diff --git a/dep/acelite/ace/XML_Utils/XSCRT/XMLSchema.hpp b/dep/acelite/ace/XML_Utils/XSCRT/XMLSchema.hpp
new file mode 100644
index 00000000000..f975238f363
--- /dev/null
+++ b/dep/acelite/ace/XML_Utils/XSCRT/XMLSchema.hpp
@@ -0,0 +1,588 @@
+// file : XSCRT/XMLSchema.hpp
+// author : Boris Kolpackov <boris@dre.vanderbilt.edu>
+// cvs-id : $Id: XMLSchema.hpp 95802 2012-05-31 12:37:36Z johnnyw $
+
+#ifndef XSCRT_XMLSCHEMA_HPP
+#define XSCRT_XMLSCHEMA_HPP
+
+#include <string>
+// #include <iostream> //@@ tmp
+
+#include "ace/XML_Utils/XMLSchema/XSCRT/Elements.hpp"
+
+namespace XMLSchema
+{
+ typedef XSCRT::FundamentalType<signed char> byte;
+ typedef XSCRT::FundamentalType<unsigned char> unsignedByte;
+
+ typedef XSCRT::FundamentalType<short> short_;
+ typedef XSCRT::FundamentalType<unsigned short> unsignedShort;
+
+ typedef XSCRT::FundamentalType<int> int_;
+ typedef XSCRT::FundamentalType<unsigned int> unsignedInt;
+
+ typedef XSCRT::FundamentalType<long long> long_;
+ typedef XSCRT::FundamentalType<unsigned long long> unsignedLong;
+
+ //@@ It would be nice to use some arbitrary-length integer class.
+ //
+ typedef long_ decimal;
+ typedef decimal integer;
+ typedef integer nonPositiveInteger;
+ typedef integer nonNegativeInteger;
+ typedef nonNegativeInteger positiveInteger;
+ typedef nonPositiveInteger negativeInteger;
+
+
+ typedef XSCRT::FundamentalType<bool> boolean;
+
+ typedef XSCRT::FundamentalType<float> float_;
+ typedef XSCRT::FundamentalType<double> double_;
+
+ // Just to make GCC 3.3 and other broken compilers shutup.
+ //
+ using std::basic_string;
+
+
+ template <typename C>
+ class string : public XSCRT::Type, public basic_string<C>
+ {
+ protected:
+ typedef basic_string<C> Base__ ;
+
+ public:
+
+ //@@ VC6 does not inject XSCRT::Type into the scope so I have
+ // to qualify it all the time.
+ //
+
+ string ()
+ {
+ }
+
+ string (XSCRT::XML::Element<C> const& e)
+ : Base__ (e.value ())
+ {
+ }
+
+ string (XSCRT::XML::Attribute<C> const& a)
+ : Base__ (a.value ())
+ {
+ }
+
+ string (Base__ const& x)
+ : Base__ (x)
+ {
+ }
+
+ string&
+ operator= (Base__ const& x)
+ {
+ static_cast<Base__&> (*this) = x;
+ return *this;
+ }
+ };
+
+
+ template <typename C>
+ class normalizedString : public string<C>
+ {
+ protected:
+ typedef typename string<C>::Base__ Base__;
+
+ public:
+ normalizedString ()
+ {
+ }
+
+ normalizedString (XSCRT::XML::Element<C> const& e)
+ : string<C> (e)
+ {
+ }
+
+ normalizedString (XSCRT::XML::Attribute<C> const& a)
+ : string<C> (a)
+ {
+ }
+
+ normalizedString (Base__ const& x)
+ : string<C> (x)
+ {
+ }
+
+ normalizedString&
+ operator= (Base__ const& x)
+ {
+ static_cast<Base__&> (*this) = x;
+ return *this;
+ }
+ };
+
+
+ template <typename C>
+ class token : public normalizedString<C>
+ {
+ protected:
+ typedef typename normalizedString<C>::Base__ Base__;
+
+ public:
+ token ()
+ {
+ }
+
+ token (XSCRT::XML::Element<C> const& e)
+ : normalizedString<C> (e)
+ {
+ }
+
+ token (XSCRT::XML::Attribute<C> const& a)
+ : normalizedString<C> (a)
+ {
+ }
+
+ token (Base__ const& x)
+ : normalizedString<C> (x)
+ {
+ }
+
+ token&
+ operator= (Base__ const& x)
+ {
+ static_cast<Base__&> (*this) = x;
+ return *this;
+ }
+ };
+
+
+ template <typename C>
+ class NMTOKEN : public token<C>
+ {
+ protected:
+ typedef typename token<C>::Base__ Base__;
+
+ public:
+ NMTOKEN ()
+ {
+ }
+
+ NMTOKEN (XSCRT::XML::Element<C> const& e)
+ : token<C> (e)
+ {
+ }
+
+ NMTOKEN (XSCRT::XML::Attribute<C> const& a)
+ : token<C> (a)
+ {
+ }
+
+ NMTOKEN (Base__ const& x)
+ : token<C> (x)
+ {
+ }
+
+ NMTOKEN&
+ operator= (Base__ const& x)
+ {
+ static_cast<Base__&> (*this) = x;
+ return *this;
+ }
+ };
+
+ template <typename C>
+ class Name: public token<C>
+ {
+ protected:
+ typedef typename token<C>::Base__ Base__;
+
+ public:
+ Name()
+ {
+ }
+
+ Name(XSCRT::XML::Element<C> const& e)
+ : token<C> (e)
+ {
+ }
+
+ Name(XSCRT::XML::Attribute<C> const& a)
+ : token<C> (a)
+ {
+ }
+
+ Name(Base__ const& x)
+ : token<C> (x)
+ {
+ }
+
+ Name&
+ operator= (Base__ const& x)
+ {
+ static_cast<Base__&> (*this) = x;
+ return *this;
+ }
+ };
+
+
+ template <typename C>
+ class NCName: public Name<C>
+ {
+ protected:
+ typedef typename Name<C>::Base__ Base__;
+
+ public:
+ NCName()
+ {
+ }
+
+ NCName(XSCRT::XML::Element<C> const& e)
+ : Name<C> (e)
+ {
+ }
+
+ NCName(XSCRT::XML::Attribute<C> const& a)
+ : Name<C> (a)
+ {
+ }
+
+ NCName(Base__ const& x)
+ : Name<C> (x)
+ {
+ }
+
+ NCName&
+ operator= (Base__ const& x)
+ {
+ static_cast<Base__&> (*this) = x;
+ return *this;
+ }
+ };
+
+ template <typename C>
+ class QName: public Name<C>
+ {
+ protected:
+ typedef typename Name<C>::Base__ Base__;
+
+ public:
+ QName()
+ {
+ }
+
+ QName(XSCRT::XML::Element<C> const& e)
+ : Name<C> (e)
+ {
+ }
+
+ QName(XSCRT::XML::Attribute<C> const& a)
+ : Name<C> (a)
+ {
+ }
+
+ QName(Base__ const& x)
+ : Name<C> (x)
+ {
+ }
+
+ QName&
+ operator= (Base__ const& x)
+ {
+ static_cast<Base__&> (*this) = x;
+ return *this;
+ }
+ };
+
+ template <typename C>
+ struct IdentityProvider : XSCRT::IdentityProvider
+ {
+ IdentityProvider (NCName<C> const& id)
+ : id_ (id)
+ {
+ }
+
+ virtual bool
+ before (XSCRT::IdentityProvider const& y) const
+ {
+ return id_ < dynamic_cast<IdentityProvider const&> (y).id_;
+ }
+
+ private:
+ NCName<C> const& id_;
+
+ private:
+ IdentityProvider (IdentityProvider const&);
+
+ IdentityProvider&
+ operator= (IdentityProvider const&);
+ };
+
+
+ template <typename C>
+ class ID : public NCName<C>
+ {
+ protected:
+ typedef typename NCName<C>::Base__ Base__;
+
+ public:
+ ~ID()
+ {
+ unregister_id ();
+ }
+
+ ID ()
+ : id_provider_ (*this)
+ {
+ }
+
+ ID (XSCRT::XML::Element<C> const& e)
+ : NCName<C> (e), id_provider_ (*this)
+ {
+ }
+
+ ID (XSCRT::XML::Attribute<C> const& a)
+ : NCName<C> (a), id_provider_ (*this)
+ {
+ }
+
+ ID (ID const& x)
+ : NCName<C> (x), id_provider_ (*this)
+ {
+ }
+
+ ID (Base__ const& x)
+ : NCName<C> (x), id_provider_ (*this)
+ {
+ }
+
+ ID&
+ operator= (Base__ const& x)
+ {
+ unregister_id ();
+
+ static_cast<NCName<C>&>(*this) = x;
+
+ register_id ();
+
+ return *this;
+ }
+
+ ID&
+ operator= (ID const& x)
+ {
+ unregister_id ();
+
+ static_cast<NCName<C>&>(*this) = static_cast<NCName<C> const&>(x);
+
+ register_id ();
+
+ return *this;
+ }
+
+ public:
+ using NCName<C>::container;
+
+ virtual void
+ container (XSCRT::Type* c)
+ {
+ unregister_id ();
+
+ NCName<C>::container (c);
+
+ register_id ();
+ }
+
+ private:
+ using NCName<C>::empty;
+ using NCName<C>::root;
+
+ void
+ register_id ()
+ {
+ if (container () != this && !empty ())
+ {
+ //std::wcerr << "registering " << container ()
+ // << " as '" << *this
+ // << "' on " << container () << std::endl;
+ container ()->register_id (id_provider_, container ());
+ }
+ }
+
+ void
+ unregister_id ()
+ {
+ if (container () != this && !empty ())
+ {
+ //std::wcerr << "un-registering " << container ()
+ // << " as '" << *this
+ // << "' on " << container () << std::endl;
+ container ()->unregister_id (id_provider_);
+ }
+ }
+
+ private:
+ IdentityProvider<C> id_provider_;
+ };
+
+ struct IDREF_Base : public XSCRT::Type
+ {
+ virtual XSCRT::Type*
+ get () const = 0;
+ };
+
+ template <typename C>
+ class IDREF : public IDREF_Base
+ {
+ public:
+ IDREF ()
+ : id_provider_ (id_)
+ {
+ }
+
+ IDREF (XSCRT::XML::Element<C> const& e)
+ : id_ (e), id_provider_ (id_)
+ {
+ }
+
+ IDREF (XSCRT::XML::Attribute<C> const& a)
+ : id_ (a), id_provider_ (id_)
+ {
+ }
+
+ IDREF (IDREF const& x)
+ : id_ (x.id_), id_provider_ (id_)
+ {
+ }
+
+ IDREF (basic_string<C> const& id)
+ : id_ (id), id_provider_ (id_)
+ {
+ }
+
+ IDREF&
+ operator= (IDREF const& x)
+ {
+ id_ = x.id_;
+ return *this;
+ }
+
+ IDREF&
+ operator= (basic_string<C> const& x)
+ {
+ id_ = x;
+ return *this;
+ }
+
+ public:
+ XSCRT::Type*
+ operator-> () const
+ {
+ return get ();
+ }
+
+ XSCRT::Type&
+ operator* () const
+ {
+ return *(get ());
+ }
+
+ virtual XSCRT::Type*
+ get () const
+ {
+ if (!id_.empty () && container () != this)
+ {
+ return root ()->lookup_id (id_provider_);
+ }
+ else
+ {
+ return 0;
+ }
+ }
+
+ // conversion to bool
+ //
+ typedef XSCRT::Type* (IDREF::*bool_convertable)() const;
+
+ operator bool_convertable () const
+ {
+ return get () ? &IDREF::operator-> : 0;
+ }
+
+ private:
+ NCName<C> id_;
+ IdentityProvider<C> id_provider_;
+ };
+}
+
+// Traversal
+//
+//
+
+#include "ace/XML_Utils/XSCRT/Traversal.hpp"
+
+namespace XMLSchema
+{
+ namespace Traversal
+ {
+ template <typename T>
+ struct Traverser : XSCRT::Traversal::Traverser<T, XSCRT::Type>,
+ XSCRT::Traversal::Traverser<IDREF_Base, XSCRT::Type>
+ {
+ typedef
+ T
+ Type;
+
+ virtual void
+ traverse (XMLSchema::IDREF_Base& r)
+ {
+ if (r.get ()) dispatch (*(r.get ()));
+ }
+ };
+
+ typedef Traverser<byte> byte;
+ typedef Traverser<unsignedByte> unsignedByte;
+
+ typedef Traverser<short_> short_;
+ typedef Traverser<unsignedShort> unsignedShort;
+
+ typedef Traverser<int_> int_;
+ typedef Traverser<unsignedInt> unsignedInt;
+
+ typedef Traverser<long_> long_;
+ typedef Traverser<unsignedLong> unsignedLong;
+
+ typedef Traverser<boolean> boolean;
+
+ typedef Traverser<float_> float_;
+ typedef Traverser<double_> double_;
+
+ template <typename C>
+ struct string : Traverser<XMLSchema::string<C> >
+ {
+ };
+
+ template <typename C>
+ struct ID : Traverser<XMLSchema::ID<C> >
+ {
+ };
+ }
+}
+
+
+// ExtendedTypeInfo for XML Schema types
+//
+//
+
+#include "ace/XML_Utils/XSCRT/ExtendedTypeInfo.hpp"
+
+namespace XMLSchema
+{
+ template <typename C>
+ struct TypeInfoInitializer
+ {
+ TypeInfoInitializer (XSCRT::ExtendedTypeInfoMap&);
+ };
+}
+
+#include "ace/XML_Utils/XSCRT/XMLSchema.ipp"
+#include "ace/XML_Utils/XSCRT/XMLSchema.tpp"
+
+#endif // XSCRT_XMLSCHEMA_HPP
diff --git a/dep/acelite/ace/XML_Utils/XercesString.cpp b/dep/acelite/ace/XML_Utils/XercesString.cpp
new file mode 100644
index 00000000000..41cfa49d988
--- /dev/null
+++ b/dep/acelite/ace/XML_Utils/XercesString.cpp
@@ -0,0 +1,167 @@
+// $Id: XercesString.cpp 95760 2012-05-15 13:46:19Z msmit $
+
+#include <ostream>
+#include <algorithm>
+
+#include "XercesString.h"
+#include "xercesc/util/PlatformUtils.hpp"
+
+using xercesc::XMLString;
+using xercesc::XMLPlatformUtils;
+
+namespace XML
+{
+// On unicode windows, ACE_TCHAR == XMLCh
+#if !defined (_MSC_VER) || !defined (ACE_USES_WCHAR)
+ XStr::XStr (const ACE_TCHAR* str)
+ : _wstr(0)
+ {
+ _wstr = XMLString::transcode(ACE_TEXT_ALWAYS_CHAR (str));
+ }
+#endif
+
+ XStr::XStr (XMLCh *wstr)
+ : _wstr(wstr)
+ {
+
+ }
+
+ XStr::XStr (const XMLCh* wstr)
+ : _wstr(0)
+ {
+ _wstr = XMLString::replicate(wstr);
+ }
+
+ XStr::XStr (const XStr &right)
+ : _wstr(0)
+ {
+ _wstr = XMLString::replicate(right._wstr);
+ }
+
+ XStr& XStr::operator= (const XStr& rhs)
+ {
+ if (&rhs == this)
+ return *this;
+ XStr temp (rhs);
+ std::swap (this->_wstr, temp._wstr);
+ return *this;
+ }
+
+ XStr::~XStr ()
+ {
+ this->reset ();
+ }
+
+ const XMLCh* XStr::begin () const
+ {
+ return _wstr;
+ }
+
+ const XMLCh* XStr::end () const
+ {
+ return _wstr + size();
+ }
+
+ bool XStr::append(const XMLCh *tail)
+ {
+ int iTailLen = XMLString::stringLen(tail);
+ int iWorkLen = XMLString::stringLen(_wstr);
+
+ XMLSize_t bytes = (iWorkLen + iTailLen + 1) * sizeof (XMLCh);
+ void *tmp = XMLPlatformUtils::fgMemoryManager->allocate (bytes);
+ XMLCh *result = reinterpret_cast<XMLCh *> (tmp);
+
+ bool bOK = result != 0;
+ if (bOK)
+ {
+ XMLCh *target = result;
+ XMLString::moveChars(target, _wstr, iWorkLen);
+ target += iWorkLen;
+ XMLString::moveChars(target, tail, iTailLen);
+ target += iTailLen;
+ *target++ = 0;
+ XMLString::release(&_wstr);
+ _wstr = result;
+ }
+ return bOK;
+ }
+
+ bool XStr::erase(const XMLCh *head, const XMLCh *tail)
+ {
+ bool bOK = head <= tail && head >= begin() && tail <= end();
+ if (bOK)
+ {
+ XMLSize_t bytes = (size() - (tail - head) + 1 ) * sizeof (XMLCh);
+ void *tmp = XMLPlatformUtils::fgMemoryManager->allocate (bytes);
+ XMLCh *result = reinterpret_cast<XMLCh *> (tmp);
+
+ XMLCh *target = result;
+ bOK = target != 0;
+ if (bOK)
+ {
+ const XMLCh *cursor = begin();
+
+ while (cursor != head) *target++ = *cursor++;
+ cursor = tail;
+ while ( cursor != end() ) *target++ = *cursor++;
+ *target ++ = 0;
+ XMLString::release(&_wstr);
+ _wstr = result;
+ }
+ }
+ return bOK;
+ }
+
+ int XStr::size () const
+ {
+ return XMLString::stringLen(_wstr);
+ }
+
+ XMLCh XStr::operator [] (const int i)
+ {
+ return _wstr[i];
+ }
+
+ XMLCh XStr::operator [] (const int i) const
+ {
+ return _wstr[i];
+ }
+
+ XMLCh * XStr::release (void)
+ {
+ XMLCh* tmp = _wstr;
+ this->_wstr = 0;
+ return tmp;
+ }
+
+ void
+ XStr::reset (void)
+ {
+ if (_wstr)
+ XMLString::release(&_wstr);
+ _wstr = 0;
+ }
+
+ bool operator== (const XStr& lhs, const XStr& rhs)
+ {
+ return XMLString::compareIString (lhs,rhs) == 0;
+ }
+
+ bool operator!= (const XStr& lhs, const XStr& rhs)
+ {
+ return !operator==(lhs, rhs);
+ }
+
+
+ std::ostream&
+ operator<< (std::ostream& o, XStr const& str)
+ {
+ char* s = XMLString::transcode (str);
+
+ o << s;
+
+ XMLString::release (&s); // idiots?
+ return o;
+ }
+
+}
diff --git a/dep/acelite/ace/XML_Utils/XercesString.h b/dep/acelite/ace/XML_Utils/XercesString.h
new file mode 100644
index 00000000000..7073184a491
--- /dev/null
+++ b/dep/acelite/ace/XML_Utils/XercesString.h
@@ -0,0 +1,82 @@
+// $Id: XercesString.h 95760 2012-05-15 13:46:19Z msmit $
+
+#ifndef _XERCESSTRING_H
+#define _XERCESSTRING_H
+
+#include /**/ "ace/pre.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include <iosfwd>
+
+#ifdef __BORLANDC__
+using std::memcpy;
+#endif
+
+#include <xercesc/util/XMLString.hpp>
+
+// Utility class that provides a std::string like facade to XMLString.
+// Doesn't implement all of the methods of std::string.
+#include "XML_Utils_Export.h"
+
+namespace XML
+{
+ class XML_Utils_Export XStr
+ {
+ public:
+ XStr() : _wstr(0L) { };
+
+// On unicode windows, ACE_TCHAR == XMLCh
+#if !defined (_MSC_VER) || !defined (ACE_USES_WCHAR)
+ XStr (const ACE_TCHAR* str);
+#endif
+
+ XStr (XMLCh* wstr);
+
+ XStr (const XMLCh* wstr);
+
+ XStr (const XStr& copy);
+
+ XStr& operator= (const XStr& rhs);
+
+ ~XStr();
+
+ const XMLCh* begin() const;
+
+ const XMLCh* end() const;
+
+ bool append(const XMLCh* tail);
+
+ bool erase (const XMLCh* head, const XMLCh* tail);
+
+ int size() const;
+
+ XMLCh operator [] (const int i);
+
+ XMLCh operator [] (const int i) const;
+
+ operator const XMLCh* () const { return _wstr; };
+
+ XMLCh * release (void);
+
+ /// Release the held string and free its memory.
+ void reset (void);
+ private:
+
+ XMLCh* _wstr; // Internal representation
+
+ };
+
+ XML_Utils_Export bool operator== (const XStr& lhs, const XStr& rhs);
+ XML_Utils_Export bool operator!= (const XStr& lhs, const XStr& rhs);
+
+ XML_Utils_Export std::ostream&
+ operator<< (std::ostream& o, XStr const& str);
+
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* _XERCESSTRING_H */
diff --git a/dep/acelite/ace/XtReactor/ACE_XtReactor_export.h b/dep/acelite/ace/XtReactor/ACE_XtReactor_export.h
new file mode 100644
index 00000000000..323355be750
--- /dev/null
+++ b/dep/acelite/ace/XtReactor/ACE_XtReactor_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id: ACE_XtReactor_export.h 80826 2008-03-04 14:51:23Z wotte $
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl -s ACE_XtReactor
+// ------------------------------
+#ifndef ACE_XTREACTOR_EXPORT_H
+#define ACE_XTREACTOR_EXPORT_H
+
+#include /**/ "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ACE_XTREACTOR_HAS_DLL)
+# define ACE_XTREACTOR_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ACE_XTREACTOR_HAS_DLL */
+
+#if !defined (ACE_XTREACTOR_HAS_DLL)
+# define ACE_XTREACTOR_HAS_DLL 1
+#endif /* ! ACE_XTREACTOR_HAS_DLL */
+
+#if defined (ACE_XTREACTOR_HAS_DLL) && (ACE_XTREACTOR_HAS_DLL == 1)
+# if defined (ACE_XTREACTOR_BUILD_DLL)
+# define ACE_XtReactor_Export ACE_Proper_Export_Flag
+# define ACE_XTREACTOR_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ACE_XTREACTOR_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ACE_XTREACTOR_BUILD_DLL */
+# define ACE_XtReactor_Export ACE_Proper_Import_Flag
+# define ACE_XTREACTOR_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ACE_XTREACTOR_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ACE_XTREACTOR_BUILD_DLL */
+#else /* ACE_XTREACTOR_HAS_DLL == 1 */
+# define ACE_XtReactor_Export
+# define ACE_XTREACTOR_SINGLETON_DECLARATION(T)
+# define ACE_XTREACTOR_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ACE_XTREACTOR_HAS_DLL == 1 */
+
+// Set ACE_XTREACTOR_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ACE_XTREACTOR_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ACE_XTREACTOR_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ACE_XTREACTOR_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ACE_XTREACTOR_NTRACE */
+
+#if (ACE_XTREACTOR_NTRACE == 1)
+# define ACE_XTREACTOR_TRACE(X)
+#else /* (ACE_XTREACTOR_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ACE_XTREACTOR_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ACE_XTREACTOR_NTRACE == 1) */
+
+#endif /* ACE_XTREACTOR_EXPORT_H */
+
+// End of auto generated file.
diff --git a/dep/acelite/ace/XtReactor/XtReactor.cpp b/dep/acelite/ace/XtReactor/XtReactor.cpp
new file mode 100644
index 00000000000..1233a304d58
--- /dev/null
+++ b/dep/acelite/ace/XtReactor/XtReactor.cpp
@@ -0,0 +1,468 @@
+// $Id: XtReactor.cpp 95528 2012-02-07 12:57:33Z johnnyw $
+
+#include "ace/XtReactor/XtReactor.h"
+
+#include "ace/SOCK_Acceptor.h"
+#include "ace/SOCK_Connector.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+ACE_ALLOC_HOOK_DEFINE (ACE_XtReactor)
+
+// Must be called with lock held
+ACE_XtReactor::ACE_XtReactor (XtAppContext context,
+ size_t size,
+ bool 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);
+
+#if defined ACE_WIN32
+ // Let's handle this special case before we do any real work.
+ if (ACE_BIT_ENABLED (mask, ACE_Event_Handler::EXCEPT_MASK))
+ ACE_NOTSUP_RETURN(-1);
+#endif /* ACE_WIN32 */
+
+ int result = ACE_Select_Reactor::register_handler_i (handle,
+ handler, mask);
+ if (result == -1)
+ return -1;
+
+ synchronize_XtInput (handle);
+ 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");
+
+ int result = ACE_Select_Reactor::remove_handler_i (handle,
+ mask);
+ if (result == -1)
+ return -1;
+
+ synchronize_XtInput (handle);
+ return 0;
+}
+
+int
+ACE_XtReactor::remove_handler_i (const ACE_Handle_Set &handles,
+ ACE_Reactor_Mask mask)
+{
+ return ACE_Select_Reactor::remove_handler_i (handles,
+ mask);
+}
+
+int
+ACE_XtReactor::suspend_i (ACE_HANDLE handle)
+{
+ ACE_TRACE ("ACE_XtReactor::suspend_i");
+
+ int result = ACE_Select_Reactor::suspend_i (handle);
+
+ if (result == -1)
+ return -1;
+
+ synchronize_XtInput (handle);
+ return 0;
+}
+
+int
+ACE_XtReactor::resume_i (ACE_HANDLE handle)
+{
+ ACE_TRACE ("ACE_XtReactor::resume_i");
+
+ int result = ACE_Select_Reactor::resume_i (handle);
+
+ if (result == -1)
+ return -1;
+
+ synchronize_XtInput (handle);
+ return 0;
+}
+
+void
+ACE_XtReactor::synchronize_XtInput(ACE_HANDLE handle)
+{
+ ACE_TRACE ("ACE_XtReactor::synchronize_XtInput");
+
+ // The idea here is to call this function after the base class has
+ // processed the register/remove/suspend/resume_handler request. The
+ // resulting mask is used to find out which XtInput mask we need.
+
+ // Find existing handler in linked list.
+ ACE_XtReactorID **XtID = &(this->ids_);
+
+ while (*XtID && (*XtID)->handle_ != handle)
+ XtID = &((*XtID)->next_);
+
+ // Remove existing input handler.
+ if (*XtID)
+ ::XtRemoveInput ((*XtID)->id_);
+
+ int condition = compute_Xt_condition (handle);
+
+ if (condition == 0) // No input handler needed.
+ {
+ if (*XtID)
+ {
+ // Remove linked list entry.
+ ACE_XtReactorID *toDelete = *XtID;
+ *XtID = (*XtID)->next_;
+ delete toDelete;
+ }
+ return;
+ }
+
+ if (*XtID == 0)
+ {
+ // Create new node.
+ ACE_XtReactorID *tmp = new ACE_XtReactorID;
+ tmp->next_ = this->ids_;
+ tmp->handle_ = handle;
+ this->ids_ = tmp;
+ XtID = &(this->ids_);
+ }
+
+ // Finally, add input handler.
+ (*XtID)->id_ = ::XtAppAddInput (this->context_,
+ (int) handle,
+ reinterpret_cast <XtPointer> (condition),
+ InputCallbackProc,
+ (XtPointer) this);
+}
+
+int
+ACE_XtReactor::compute_Xt_condition(ACE_HANDLE handle)
+{
+ ACE_TRACE ("ACE_XtReactor::compute_Xt_condition");
+
+ // Retrieve current wait mask from base class.
+ // The returned value is either a combination of READ/WRITE/EXCEPT_MASK
+ // or -1.
+ int mask =this->bit_ops(handle,
+ 0,
+ this->wait_set_,
+ ACE_Reactor::GET_MASK);
+
+ if (mask == -1) // No active mask.
+ return 0;
+
+ 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);
+#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);
+ // EXCEPT_MASK is not supported for WIN32. As this was
+ // already handled in register_handler_i, no check here.
+#endif /* !ACE_WIN32 */
+
+ return condition;
+}
+
+// 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 const 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 const 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;
+ }
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/dep/acelite/ace/XtReactor/XtReactor.h b/dep/acelite/ace/XtReactor/XtReactor.h
new file mode 100644
index 00000000000..a4082f0d305
--- /dev/null
+++ b/dep/acelite/ace/XtReactor/XtReactor.h
@@ -0,0 +1,147 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file XtReactor.h
+ *
+ * $Id: XtReactor.h 91743 2010-09-13 18:24:51Z johnnyw $
+ *
+ * @author Eric C. Newton <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 */
+#include "ace/XtReactor/ACE_XtReactor_export.h"
+#include "ace/Select_Reactor.h"
+
+#include /**/ <X11/Intrinsic.h>
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+/**
+ * @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_XtReactor_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_XtReactor_Export ACE_XtReactor : public ACE_Select_Reactor
+{
+public:
+ // = Initialization and termination methods.
+ ACE_XtReactor (XtAppContext context = 0,
+ size_t size = DEFAULT_SIZE,
+ bool restart = false,
+ 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 @a 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 @a handler associated with this @a 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);
+
+ /// Suspend the <Event_Handler> associated with @a handle
+ virtual int suspend_i (ACE_HANDLE handle);
+
+ /// Resume the <Event_Handler> associated with @a handle
+ virtual int resume_i (ACE_HANDLE handle);
+
+ /// Synchronize XtInputHandler for @a handle
+ virtual void synchronize_XtInput(ACE_HANDLE handle);
+
+ /// Compute needed Xt condition by looking at base class wait set.
+ virtual int compute_Xt_condition(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 &);
+};
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#include /**/ "ace/post.h"
+
+#endif /* ACE_XTREACTOR_H */
diff --git a/dep/acelite/ace/ace_wchar.h b/dep/acelite/ace/ace_wchar.h
index 77db8f83808..ff884231b1a 100644
--- a/dep/acelite/ace/ace_wchar.h
+++ b/dep/acelite/ace/ace_wchar.h
@@ -4,7 +4,7 @@
/**
* @file ace_wchar.h
*
- * $Id: ace_wchar.h 91688 2010-09-09 11:21:50Z johnnyw $
+ * $Id: ace_wchar.h 93597 2011-03-21 12:54:52Z johnnyw $
*
* @author Darrell Brunsch <brunsch@uci.edu>
*/
@@ -148,10 +148,10 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
class ACE_Wide_To_Ascii
{
public:
- /// Ctor must take a wchar string.
+ /// Constructor must take a wchar string.
ACE_Wide_To_Ascii (const wchar_t *s);
- /// Dtor will free up the memory.
+ /// Destructor will free up the memory.
~ACE_Wide_To_Ascii (void);
/// Return the internal char* representation.
@@ -186,10 +186,10 @@ private:
class ACE_Ascii_To_Wide
{
public:
- /// Ctor must take a wchar string.
+ /// Constructor must take a wchar string.
ACE_Ascii_To_Wide (const char *s);
- /// Dtor will free up the memory.
+ /// Destructor will free up the memory.
~ACE_Ascii_To_Wide (void);
/// Return the internal wchar* representation.
diff --git a/dep/acelite/ace/config-WinCE.h b/dep/acelite/ace/config-WinCE.h
index 93040583980..121f46555f9 100644
--- a/dep/acelite/ace/config-WinCE.h
+++ b/dep/acelite/ace/config-WinCE.h
@@ -1,4 +1,4 @@
-// $Id: config-WinCE.h 89494 2010-03-15 20:11:18Z olli $
+// $Id: config-WinCE.h 93622 2011-03-22 15:45:57Z johnnyw $
// 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
@@ -53,6 +53,7 @@
// the information using getenv.
#define ACE_DEFAULT_LD_SEARCH_PATH ACE_TEXT (".\\;\\windows")
+#define ACE_LACKS_ABORT
#define ACE_LACKS_FCNTL_H
#define ACE_LACKS_SYS_TYPES_H
#define ACE_LACKS_GETCWD
@@ -61,6 +62,7 @@
#define ACE_LACKS_GMTIME
#define ACE_LACKS_GMTIME_R
#define ACE_LACKS_LOCALTIME
+#define ACE_LACKS_STRTOK_R
#define ACE_LACKS_PERROR
#define ACE_LACKS_STRFTIME
#define ACE_LACKS_WIN32_SETFILEPOINTEREX
@@ -74,8 +76,6 @@
#define ACE_LACKS_RAISE
#define ACE_LACKS_BSEARCH
-#define ACE_HAS_POSITION_INDEPENDENT_POINTERS 1
-
#define ACE_LACKS_MSG_WFMO
#define ACE_LACKS_UMASK
#define ACE_HAS_TYPES_H
diff --git a/dep/acelite/ace/config-aix-5.x.h b/dep/acelite/ace/config-aix-5.x.h
index 3e212059507..edff471a0f9 100644
--- a/dep/acelite/ace/config-aix-5.x.h
+++ b/dep/acelite/ace/config-aix-5.x.h
@@ -1,4 +1,4 @@
-// $Id: config-aix-5.x.h 91685 2010-09-09 09:35:14Z johnnyw $
+// $Id: config-aix-5.x.h 93530 2011-03-11 12:12:40Z olli $
//
// Config file for AIX 5.1 and higher.
@@ -312,7 +312,6 @@
#undef ACE_LACKS_NETINET_TCP_H
#define ACE_HAS_3_PARAM_READDIR_R
-#define ACE_HAS_POSIX_GETPWNAM_R
#define ACE_HAS_SCANDIR
#define ACE_SCANDIR_CMP_USES_VOIDPTR
#define ACE_SCANDIR_SEL_LACKS_CONST
diff --git a/dep/acelite/ace/config-aix-7.h b/dep/acelite/ace/config-aix-7.h
new file mode 100644
index 00000000000..29ae0802344
--- /dev/null
+++ b/dep/acelite/ace/config-aix-7.h
@@ -0,0 +1,29 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file config-aix-7.h
+ *
+ * $Id: config-aix-7.h 93556 2011-03-16 12:12:04Z shuston $
+ *
+ * This is the config file for AIX 7 and higher.
+ *
+ * @author Steve Huston <shuston@riverace.com>
+ */
+//=============================================================================
+
+#ifndef ACE_CONFIG_AIX_7_H
+#define ACE_CONFIG_AIX_7_H
+
+// Diffs from prior AIX versions are related to scandir() arguments.
+#include "ace/config-aix-5.x.h"
+
+#ifdef ACE_SCANDIR_CMP_USES_VOIDPTR
+# undef ACE_SCANDIR_CMP_USES_VOIDPTR
+#endif /* ACE_SCANDIR_CMP_USES_VOIDPTR */
+
+#ifdef ACE_SCANDIR_SEL_LACKS_CONST
+# undef ACE_SCANDIR_SEL_LACKS_CONST
+#endif /* ACE_SCANDIR_SEL_LACKS_CONST */
+
+#endif /* ACE_CONFIG_AIX_7_H */
diff --git a/dep/acelite/ace/config-linux-common.h b/dep/acelite/ace/config-android.h
index a2367bb81f6..26be6ffec7a 100644
--- a/dep/acelite/ace/config-linux-common.h
+++ b/dep/acelite/ace/config-android.h
@@ -1,22 +1,87 @@
-/* -*- C++ -*- */
-// $Id: config-linux-common.h 92183 2010-10-08 08:44:15Z olli $
-
-// 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
+// -*- C++ -*-
+// $Id: config-android.h 94491 2011-09-12 11:17:33Z johnnyw $
+
+// The following configuration file is designed to work for Android
+// platforms using GNU C++.
+
+#ifndef ACE_CONFIG_ANDROID_H
+#define ACE_CONFIG_ANDROID_H
#include /**/ "ace/pre.h"
-#define ACE_HAS_BYTESEX_H
+// Location of the __ANDROID_API__ define
+// #include $NDK_ROOT/sysroot/usr/include/android/api-level.h
+#include "android/api-level.h"
-#if ! defined (__ACE_INLINE__)
-#define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
+#if !defined (__ANDROID_API__)
+# error __ANDROID_API__ must be defined
+#endif
+
+#define ACE_HAS_SSIZE_T
+
+// system errorno is a volatile int
+#define ACE_HAS_VOLATILE_ERRNO
+
+#define ACE_ERRNO_TYPE volatile int
+
+// Android doesn't check is sig is out of range.
+#define ACE_HAS_SIGISMEMBER_BUG
+
+#define ACE_HAS_PTHREADS_UNIX98_EXT
+
+// Android does not support pthread concurrency (yet)
+#define ACE_LACKS_MUTEXATTR_PSHARED 1
+
+// the android definition of struct stat{} uses
+// unsigned long rather than time_t for st_[acm]time
+// members of the stat struct used to report file
+// status details.
+#define ACE_USES_ULONG_FOR_STAT_TIME
+
+#define ACE_LACKS_NEW_H
+#define ACE_LACKS_SEARCH_H
+#define ACE_LACKS_SIGINFO_H
+#define ACE_LACKS_STROPTS_H
+#define ACE_LACKS_SYS_SEM_H
+#define ACE_LACKS_SYS_MSG_H
+#define ACE_LACKS_SYS_SHM_H
+#define ACE_LACKS_SYS_SYSCTL_H
+#define ACE_LACKS_UCONTEXT_H
+
+#define ACE_LACKS_CUSERID
+#define ACE_LACKS_FD_MASK
+#define ACE_LACKS_GETHOSTENT
+#define ACE_LACKS_GETLOADAVG
+#define ACE_LACKS_ISCTYPE
+#define ACE_LACKS_LOG2
+#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
+#define ACE_LACKS_PWD_FUNCTIONS
+#define ACE_LACKS_PTHREAD_CANCEL
+#define ACE_LACKS_SEEKDIR
+#define ACE_LACKS_SEMBUF_T
+#define ACE_LACKS_SETINHERITSCHED
+#define ACE_LACKS_STD_WSTRING
+#define ACE_LACKS_STRRECVFD
+#define ACE_LACKS_SWAB
+#define ACE_LACKS_SYSV_SHMEM
+#define ACE_LACKS_TELLDIR
+#define ACE_LACKS_WCSTOLL
+#define ACE_LACKS_WCSTOULL
+
+#define ACE_LACKS_RAND_R
+
+// Android seems to have 64 keys of which Android itself use 5
+#define ACE_DEFAULT_THREAD_KEYS 59
+
+// Android Standalone compiler std library does not include
+// wide character support
+// Used in tests/Sequence_Unit_Tests/string_sequence_tester.hpp
+# define TAO_LACKS_WCHAR_CXX_STDLIB
+
+#if !defined (ACE_MT_SAFE)
+# define ACE_MT_SAFE 1
+#endif
+
+#define ACE_PLATFORM_CONFIG config-android.h
// Needed to differentiate between libc 5 and libc 6 (aka glibc).
#include <features.h>
@@ -25,10 +90,10 @@
# define ACE_HAS_PTHREADS_UNIX98_EXT
#endif /* _XOPEN_SOURCE - 0 >= 500 */
-#if !defined (ACE_LACKS_LINUX_NPTL)
-
# include "ace/config-posix.h"
+#if !defined (ACE_LACKS_LINUX_NPTL)
+
// Temporary fix because NPTL kernels do have shm_open but there is a problem
// with shm_open/shm_unlink pairing in ACE which needs to be fixed when I have time.
# if defined (ACE_HAS_SHM_OPEN)
@@ -50,6 +115,14 @@
# endif /* ACE_HAS_POSIX_SEM */
#endif /* !ACE_LACKS_LINUX_NPTL */
+// AIO support pulls in the rt library, which pulls in the pthread
+// library. Disable AIO in single-threaded builds.
+#if defined (ACE_HAS_THREADS)
+# define ACE_HAS_CLOCK_GETTIME
+#else
+# undef ACE_HAS_AIO_CALLS
+#endif
+
// First the machine specific part
#if defined (__powerpc__) || defined (__x86_64__)
@@ -64,93 +137,17 @@
# endif /* ! ACE_DEFAULT_BASE_ADDR */
#endif /* ! __powerpc__ && ! __ia64 */
-// Then glibc/libc5 specific parts
-
-#if defined(__GLIBC__)
-# if (__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 1)
-# define ACE_HAS_NONCONST_SETRLIMIT
-# endif
-# if (__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 3)
-# define ACE_HAS_RUSAGE_WHO_ENUM enum __rusage_who
-# define ACE_HAS_RLIMIT_RESOURCE_ENUM enum __rlimit_resource
-# define ACE_LACKS_ISCTYPE
-# endif
-# 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
-
- // This is probably not a 100%-sure-fire check... Red Hat Linux 9
- // and Enterprise Linux 3 and up have a new kernel that can send signals
- // across threads. This was not possible prior because there was no real
- // difference between a process and a thread. With this, the
- // ACE_POSIX_SIG_Proactor is the only chance of getting asynch I/O working.
- // There are restrictions, such as all socket operations being silently
- // converted to synchronous by the kernel, that make aio a non-starter
- // for most Linux platforms at this time. But we'll start to crawl...
-# define ACE_POSIX_SIG_PROACTOR
-# 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
-
-// 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.
-
-# 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_HAS_SIGINFO_T
+#define ACE_HAS_SOCKLEN_T
+#define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
+
+#define ACE_HAS_LSEEK64
+//#define ACE_LACKS_LSEEK64_PROTOTYPE
+
+#define ACE_HAS_P_READ_WRITE
// 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 */
+#define ACE_HAS_ALT_CUSERID
#if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)
# define ACE_HAS_ISASTREAM_PROTOTYPE
@@ -160,22 +157,11 @@
// Then the compiler specific parts
-#if defined (__INTEL_COMPILER)
-# include "ace/config-icc-common.h"
-#elif defined (__GNUG__)
+#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 (__SUNCC_PRO) || defined (__SUNPRO_CC)
-# include "ace/config-suncc-common.h"
-#elif defined (__PGI)
-// Portable group compiler
-# define ACE_HAS_CPLUSPLUS_HEADERS
-# define ACE_HAS_STDCPP_STL_INCLUDES
-# define ACE_HAS_STANDARD_CPP_LIBRARY 1
-# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-# define ACE_LACKS_SWAB
#elif defined (__GNUC__)
/**
* GNU C compiler.
@@ -187,7 +173,7 @@
*/
#else /* ! __GNUG__ && !__DECCXX && !__INTEL_COMPILER && && !__PGI */
# ifdef __cplusplus /* Let it slide for C compilers. */
-# error unsupported compiler in ace/config-linux-common.h
+# error unsupported compiler in ace/config-android.h
# endif /* __cplusplus */
#endif /* ! __GNUG__*/
@@ -198,40 +184,21 @@
#define ACE_HAS_SIGSUSPEND
-#define ACE_HAS_UALARM
-
#define ACE_HAS_STRSIGNAL
-#if __GLIBC__ >= 2
#ifndef ACE_HAS_POSIX_REALTIME_SIGNALS
-#define 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
-# define ACE_HAS_VFWPRINTF
-#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_HAS_XPG4_MULTIBYTE_CHAR
+#define ACE_HAS_VFWPRINTF
#define ACE_LACKS_ITOW
#define ACE_LACKS_WCSICMP
#define ACE_LACKS_WCSNICMP
#define ACE_LACKS_ISWASCII
-#if __GLIBC__ >= 2
-# define ACE_HAS_3_PARAM_WCSTOK
-#endif
+#define ACE_HAS_3_PARAM_WCSTOK
#define ACE_HAS_3_PARAM_READDIR_R
@@ -239,11 +206,7 @@
# define ACE_DEFAULT_BASE_ADDR ((char *) 0x80000000)
#endif /* ! ACE_DEFAULT_BASE_ADDR */
-// Compiler/platform supports alloca().
-// Although ACE does have alloca() on this compiler/platform combination, it is
-// disabled by default since it can be dangerous. Uncomment the following line
-// if you ACE to use it.
-//#define ACE_HAS_ALLOCA
+#define ACE_HAS_ALLOCA
// Compiler/platform has <alloca.h>
#define ACE_HAS_ALLOCA_H
@@ -258,8 +221,8 @@
#define ACE_HAS_BSWAP_16
#define ACE_HAS_BSWAP_32
-#if defined __GNUC__ && __GNUC__ >= 2
-# define ACE_HAS_BSWAP_64
+#if defined (__GNUC__)
+# define ACE_HAS_BSWAP_64
#endif
#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
@@ -294,59 +257,25 @@
#define ACE_HAS_GETPAGESIZE 1
-#if (__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 2)
-// glibc supports wchar, but lacks fgetwc and ungetwc
-# define ACE_LACKS_FGETWC
-# define ACE_HAS_NONCONST_MSGSND
-# define ACE_LACKS_STRNLEN_PROTOTYPE
-#endif
-
-// glibc requires _XOPEN_SOURCE_EXTENDED to make this prototype
-// visible, so force ACE to declare one. Yuk!
-#ifndef _XOPEN_SOURCE_EXTENDED
-# define ACE_LACKS_MKSTEMP_PROTOTYPE
-#endif /* !_XOPEN_SOURCE_EXTENDED */
-
// Platform defines struct timespec but not timespec_t
#define ACE_LACKS_TIMESPEC_T
// Platform supplies scandir()
#define ACE_HAS_SCANDIR
-#if (__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 10)
-// Although the scandir man page says otherwise, this setting is correct.
-// The setting was fixed in 2.10, so do not use the hack after that.
-#define ACE_SCANDIR_CMP_USES_CONST_VOIDPTR
-#endif
-// 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
+#define ACE_MMAP_NO_ZERO
// Compiler/platform contains the <sys/syscall.h> file.
#define ACE_HAS_SYS_SYSCALL_H
-// Platform/compiler supports global timezone variable.
-#define ACE_HAS_TIMEZONE
-
#define ACE_HAS_TIMEZONE_GETTIMEOFDAY
-// 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
@@ -364,7 +293,7 @@
# define ACE_HAS_STRBUF_T
#endif
-#if defined (__ia64) || defined(__alpha) || defined (__x86_64__)
+#if defined (__ia64) || defined(__alpha) || defined (__x86_64__) || defined(__powerpc64__)
// 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_ASCII "%lu"
@@ -390,8 +319,6 @@
#define ACE_HAS_VOIDPTR_MMAP
-#define ACE_HAS_ICMP_SUPPORT 1
-
#define ACE_HAS_VASPRINTF
// According to man pages Linux uses different (compared to UNIX systems) types
@@ -405,9 +332,6 @@
# include "ace/config-posix-nonetworking.h"
#else
# define ACE_HAS_NETLINK
-# if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
-# define ACE_HAS_GETIFADDRS
-# endif
#endif
#if !defined (ACE_GETNAME_RETURNS_RANDOM_SIN_ZERO)
@@ -428,11 +352,26 @@
# if !defined (ACE_LACKS_LINUX_VERSION_H)
# include <linux/version.h>
# endif /* !ACE_LACKS_LINUX_VERSION_H */
-# if (LINUX_VERSION_CODE > KERNEL_VERSION (2,6,0))
-# define ACE_HAS_EVENT_POLL
-# endif
+#endif
+
+#define ACE_HAS_SVR4_DYNAMIC_LINKING
+#define ACE_HAS_AUTOMATIC_INIT_FINI
+#define ACE_HAS_DLSYM_SEGFAULT_ON_INVALID_HANDLE
+#define ACE_HAS_RECURSIVE_MUTEXES
+#define ACE_HAS_THREAD_SPECIFIC_STORAGE
+#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
+#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
+#define ACE_HAS_REENTRANT_FUNCTIONS
+
+#if __ANDROID_API__ == 8
+# define ACE_LACKS_REGEX_H 1
+# define ACE_LACKS_CONDATTR 1
+#elif __ANDROID_API__ == 9
+# define ACE_HAS_TIMEZONE
+#else
+# error Unsupported Android release
#endif
#include /**/ "ace/post.h"
-#endif /* ACE_LINUX_COMMON_H */
+#endif /* ACE_CONFIG_ANDROID_H */
diff --git a/dep/acelite/ace/config-cray.h b/dep/acelite/ace/config-cray.h
deleted file mode 100644
index 1b944876112..00000000000
--- a/dep/acelite/ace/config-cray.h
+++ /dev/null
@@ -1,205 +0,0 @@
-/* -*- C++ -*- */
-// $Id: config-cray.h 87169 2009-10-19 20:26:55Z olli $
-
-#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 */
-
-#define ACE_DEFAULT_CLOSE_ALL_HANDLES 0
-
-// Defines the page size of the system.
-#define ACE_PAGE_SIZE 4096
-
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-#define ACE_HAS_SSIZE_T
-
-#define ACE_HAS_SYSV_IPC
-
-#define ACE_MT_SAFE 1
-
-#define ACE_HAS_THREADS
-
-#define ACE_HAS_PTHREADS
-
-#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
-
-// Platform has POSIX terminal interface.
-#define ACE_HAS_TERMIOS
-
-#define ACE_HAS_DIRENT
-
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-#define ACE_HAS_IP_MULTICAST
-
-#define ACE_HAS_SOCKADDR_IN_SIN_LEN
-
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-
-#define ACE_HAS_NONCONST_READLINK
-
-#define ACE_HAS_CHARPTR_SOCKOPT
-
-#define ACE_HAS_NONCONST_GETBY
-#define ACE_HAS_NONCONST_INET_ADDR
-
-// has man pages, but links with missing symbols and I can't find lib yet
-/* #define ACE_HAS_REGEX */
-
-#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_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
-
-// 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_NAMED_POSIX_SEM */
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CONFIG_CRAY_H */
diff --git a/dep/acelite/ace/config-cxx-common.h b/dep/acelite/ace/config-cxx-common.h
deleted file mode 100644
index 024c25fd27e..00000000000
--- a/dep/acelite/ace/config-cxx-common.h
+++ /dev/null
@@ -1,86 +0,0 @@
-// -*- C++ -*-
-//
-// $Id: config-cxx-common.h 81935 2008-06-12 22:01:53Z jtc $
-
-#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_STANDARD_CPP_LIBRARY 1
-# define ACE_HAS_TEMPLATE_TYPEDEFS
-
-# 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
-# pragma message disable notusetmpfunprm
-# pragma message disable bltinclnk
-
-# 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/dep/acelite/ace/config-cygwin32.h b/dep/acelite/ace/config-cygwin32.h
index 35c517c3ca6..4fc15437100 100644
--- a/dep/acelite/ace/config-cygwin32.h
+++ b/dep/acelite/ace/config-cygwin32.h
@@ -1,5 +1,5 @@
/* -*- C++ -*- */
-// $Id: config-cygwin32.h 87169 2009-10-19 20:26:55Z olli $
+// $Id: config-cygwin32.h 93530 2011-03-11 12:12:40Z olli $
// The following configuration file is designed to work for CygWin
// platforms using GNU C++.
@@ -64,7 +64,6 @@
#define ACE_HAS_VOIDPTR_SOCKOPT 1
#define ACE_HAS_UALARM 1
#define ACE_HAS_STRNLEN 1
-#define ACE_HAS_POSIX_GETPWNAM_R 1
#define ACE_HAS_POSIX_NONBLOCK 1
#define ACE_HAS_POSIX_TIME
#define ACE_HAS_CLOCK_GETTIME 1
@@ -73,11 +72,9 @@
#define ACE_DEFAULT_BASE_ADDR ((char *) 0x8000000)
#define ACE_HAS_NONCONST_SELECT_TIMEVAL
#define ACE_HAS_SVR4_DYNAMIC_LINKING
-//#define ACE_HAS_SYSV_IPC
#define ACE_HAS_VOIDPTR_MMAP
#define ACE_HAS_CPLUSPLUS_HEADERS
#define ACE_HAS_POLL
-#define ACE_HAS_POSITION_INDEPENDENT_POINTERS 1
#define ACE_HAS_SOCKADDR_MSG_NAME 1
#define ACE_LACKS_PRI_T 1
#define ACE_HAS_3_PARAM_READDIR_R
diff --git a/dep/acelite/ace/config-doxygen.h b/dep/acelite/ace/config-doxygen.h
deleted file mode 100644
index 5664338e3a0..00000000000
--- a/dep/acelite/ace/config-doxygen.h
+++ /dev/null
@@ -1,119 +0,0 @@
-// -*- C++ -*-
-
-/**
- * This is a configuration file to define all the macros that Doxygen
- * needs
- *
- * @file config-doxygen.h
- *
- * $Id: config-doxygen.h 91685 2010-09-09 09:35:14Z johnnyw $
- *
- * @author Carlos O'Ryan <coryan@uci.edu>
- * @author Darrell Brunsch <brunsch@uci.edu>
- *
- */
-#ifndef ACE_CONFIG_DOXYGEN_H
-#define ACE_CONFIG_DOXYGEN_H
-
-/// Make sure that we always turn inlining on.
-#define __ACE_INLINE__
-
-/// 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_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
-
-/// 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
-#define TAO_HAS_SCIOP 1
-#define TAO_HAS_COIOP 1
-#define TAO_HAS_TRANSPORT_CURRENT 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_DEV_POLL
-
-/// Generate ACE_Log_Msg_NT_Event_Log documentation
-#define ACE_HAS_LOG_MSG_NT_EVENT_LOG
-
-/// Generate icmp documentation
-#define ACE_HAS_ICMP_SUPPORT 1
-
-/// Parse some ACE_SSL classes that depend on recent versions of
-/// OpenSSL.
-#define OPENSSL_VERSION_NUMBER 0x00905820L
-
-/// Enable IPv6
-#define ACE_HAS_IPV6
-
-/// Enable netlink socket support
-#define ACE_HAS_NETLINK
-
-#define ACE_HAS_IP_MULTICAST
-
-#define ACE_INLINE
-#define ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-#define ACE_END_VERSIONED_NAMESPACE_DECL
-#define TAO_BEGIN_VERSIONED_NAMESPACE_DECL
-#define TAO_END_VERSIONED_NAMESPACE_DECL
-
-#define ACE_HAS_POSITION_INDEPENDENT_POINTERS 1
-
-#endif /* ACE_CONFIG_DOXYGEN_H */
diff --git a/dep/acelite/ace/config-freebsd.h b/dep/acelite/ace/config-freebsd.h
index b83394ddece..afd68e53c62 100644
--- a/dep/acelite/ace/config-freebsd.h
+++ b/dep/acelite/ace/config-freebsd.h
@@ -1,5 +1,5 @@
/* -*- C++ -*- */
-// $Id: config-freebsd.h 87483 2009-11-11 13:50:04Z olli $
+// $Id: config-freebsd.h 95430 2012-01-11 20:45:28Z mcorino $
// The following configuration file is designed to work for FreeBSD
@@ -8,49 +8,20 @@
#include /**/ "ace/pre.h"
#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
+# define ACE_MT_SAFE 1
#endif
-#if ACE_MT_SAFE
- // Yes, we do have threads.
-# define ACE_HAS_THREADS 1
-#else
- // Set to 0 since that's what config-posix.h checks for.
-# define ACE_HAS_THREADS 0
-#endif /* ACE_MT_SAFE */
-
-#include "ace/config-posix.h"
-
// Make sure we source in the OS version.
#include <osreldate.h>
-#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 */
+#include "ace/config-posix.h"
-#if defined (__GNUG__)
-# include "ace/config-g++-common.h"
-#endif /* __GNUG__ */
+#include "ace/config-g++-common.h"
#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_3_PARAM_READDIR_R
#define ACE_HAS_3_PARAM_WCSTOK
#define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
@@ -91,6 +62,8 @@
#define ACE_HAS_TIMEZONE_GETTIMEOFDAY
#define ACE_HAS_UALARM
+#define ACE_HAS_XPG4_MULTIBYTE_CHAR
+
#define ACE_LACKS_CONDATTR_PSHARED
#define ACE_LACKS_ISCTYPE
#define ACE_LACKS_ITOW
@@ -155,12 +128,12 @@
#if (__FreeBSD_version < 400000)
# define ACE_LACKS_SIGSET
+# define ACE_LACKS_SIGSET_T
# 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
-# define ACE_LACKS_RAND_REENTRANT_FUNCTIONS
enum schedparam_policy {
SCHED_RR,
@@ -189,7 +162,6 @@ enum schedparam_policy {
#if (__FreeBSD_version < 501000)
# define ACE_LACKS_STDINT_H
-# define ACE_LACKS_PWD_REENTRANT_FUNCTIONS
#endif
#if (__FreeBSD_version >= 501000)
diff --git a/dep/acelite/ace/config-g++-common.h b/dep/acelite/ace/config-g++-common.h
index 4146b5c2147..6bd902d6e68 100644
--- a/dep/acelite/ace/config-g++-common.h
+++ b/dep/acelite/ace/config-g++-common.h
@@ -1,6 +1,6 @@
// -*- C++ -*-
//
-// $Id: config-g++-common.h 92120 2010-10-01 12:00:01Z johnnyw $
+// $Id: config-g++-common.h 93500 2011-03-07 16:19:27Z vzykov $
// This configuration file is designed to be included by another,
// specific configuration file. It provides config information common
@@ -24,20 +24,10 @@
#define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
#define ACE_TEMPLATES_REQUIRE_SOURCE
-#if ( __GNUC__ == 2 && __GNUC_MINOR__ < 97 )
- // gcc 2.97 and lower use old iostreams
-# define ACE_USES_OLD_IOSTREAMS
-#endif /* __GNUC__ >= 2.97 */
-
#if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
# define ACE_EXPLICIT_TEMPLATE_DESTRUCTOR_TAKES_ARGS
#endif /* __GNUC__ >= 3.4 */
-#if (__GNUC__ < 3)
-# define ACE_LACKS_MEMBER_TEMPLATES
-# define ACE_LACKS_NUMERIC_LIMITS
-#endif /* __GNUC__ < 3 */
-
#define ACE_NEW_THROWS_EXCEPTIONS
#if (__GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3))
// Versions of g++ prior to 3.3 had a buggy operator // new(nothrow)[]().
@@ -73,6 +63,10 @@
#define ACE_HAS_GCC_DEPRECATED_ATTRIBUTE 1
#endif
+#if !defined (ACE_HAS_GCC_FORMAT_ATTRIBUTE)
+#define ACE_HAS_GCC_FORMAT_ATTRIBUTE 1
+#endif
+
#if (ACE_HAS_GCC_CONSTRUCTOR_ATTRIBUTE == 1)
# define ACE_GCC_CONSTRUCTOR_ATTRIBUTE __attribute__ ((constructor))
#endif
@@ -85,6 +79,11 @@
#define ACE_DEPRECATED __attribute__ ((deprecated))
#endif
+#if (ACE_HAS_GCC_FORMAT_ATTRIBUTE == 1)
+# define ACE_GCC_FORMAT_ATTRIBUTE(TYPE, STR_INDEX, FIRST_INDEX) \
+ __attribute__ ((format (TYPE, STR_INDEX, FIRST_INDEX)))
+#endif
+
// GNU g++ >= 4.x implements "#pragma once".
#if (__GNUC__ < 4) && !defined (ACE_LACKS_PRAGMA_ONCE)
// We define it with a -D with make depend.
diff --git a/dep/acelite/ace/config-ghs-common.h b/dep/acelite/ace/config-ghs-common.h
deleted file mode 100644
index ffa554c047e..00000000000
--- a/dep/acelite/ace/config-ghs-common.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* -*- C++ -*- */
-// $Id: config-ghs-common.h 80826 2008-03-04 14:51:23Z wotte $
-
-// 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
-# 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/dep/acelite/ace/config-hpux-11.00.h b/dep/acelite/ace/config-hpux-11.00.h
index 978a85a8e87..4f16be93b5c 100644
--- a/dep/acelite/ace/config-hpux-11.00.h
+++ b/dep/acelite/ace/config-hpux-11.00.h
@@ -1,5 +1,5 @@
/* -*- C++ -*- */
-// $Id: config-hpux-11.00.h 92102 2010-09-30 08:14:15Z johnnyw $
+// $Id: config-hpux-11.00.h 96096 2012-08-23 12:34:02Z johnnyw $
// The following configuration file is designed to work for HP
// platforms running HP-UX 11.00 using aC++ or gcc (2.95 and up).
@@ -164,6 +164,9 @@
#define ACE_HAS_CLOCK_GETTIME
#define ACE_HAS_CLOCK_SETTIME
+#define ACE_LACKS_CLOCK_MONOTONIC
+#define ACE_LACKS_MONOTONIC_TIME
+
// Prototypes for both signal() and struct sigaction are consistent.
#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
@@ -205,13 +208,6 @@
// Compiler/platform supports poll().
#define ACE_HAS_POLL
-/* Platform supports "position-independent" features provided by
- ACE_Based_Pointer<>. */
-#define ACE_HAS_POSITION_INDEPENDENT_POINTERS 1
-
-/* Platform supports POSIX getpwnam_r() function */
-#define ACE_HAS_POSIX_GETPWNAM_R 1
-
// Platform supports POSIX O_NONBLOCK semantics.
#define ACE_HAS_POSIX_NONBLOCK
@@ -319,12 +315,12 @@
#define ACE_LACKS_SUSECONDS_T
#define ACE_LACKS_SYS_SYSCTL_H
-// @@ TODO: It looks like HP-UX provides strtoll, strtoull, wcstoll and
-// wcstoull but some more work is needed to plug them in correctly.
-#define ACE_LACKS_STRTOLL
-#define ACE_LACKS_WCSTOLL
-#define ACE_LACKS_STRTOULL
-#define ACE_LACKS_WCSTOULL
+#if !(defined(__STDC_EXT__) || defined(_INCLUDE_LONGLONG) || defined(_INCLUDE_STDC__SOURCE_199901))
+# define ACE_LACKS_STRTOLL
+# define ACE_LACKS_WCSTOLL
+# define ACE_LACKS_STRTOULL
+# define ACE_LACKS_WCSTOULL
+#endif
#define ACE_LACKS_ISWASCII
@@ -425,6 +421,7 @@
# define ACE_HAS_RECURSIVE_MUTEXES
# define ACE_HAS_THREAD_SPECIFIC_STORAGE
# define ACE_LACKS_PTHREAD_ATTR_SETSTACK
+# define ACE_LACKS_CONDATTR_SETCLOCK
#endif /* ACE_HAS_THREADS */
#define ACE_HAS_POSIX_SEM
diff --git a/dep/acelite/ace/config-irix6.5.x-sgic++.h b/dep/acelite/ace/config-irix6.5.x-sgic++.h
deleted file mode 100644
index 2d501010b68..00000000000
--- a/dep/acelite/ace/config-irix6.5.x-sgic++.h
+++ /dev/null
@@ -1,18 +0,0 @@
-// -*- C++ -*-
-// $Id: config-irix6.5.x-sgic++.h 80826 2008-03-04 14:51:23Z wotte $
-
-// 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/dep/acelite/ace/config-irix6.x-common.h b/dep/acelite/ace/config-irix6.x-common.h
deleted file mode 100644
index 1de756d530c..00000000000
--- a/dep/acelite/ace/config-irix6.x-common.h
+++ /dev/null
@@ -1,254 +0,0 @@
-/* -*- C++ -*- */
-//
-// $Id: config-irix6.x-common.h 87167 2009-10-19 19:33:53Z olli $
-//
-// This file contains the common configuration options for both
-// SGI/MIPSPro C++ and g++ under IRIX 6.X
-//
-// 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.
-
-// Use this file for IRIX 6.[234] if you have the pthreads patches
-// installed.
-
-#ifndef ACE_CONFIG_IRIX6X_COMMON_H
-
-#ifndef IRIX6
-# define IRIX6
-#endif
-
-#if ! defined(ACE_CONFIG_H)
-#error "This file may only be included by config-irix6.x-sgic++.h, config-irix6.x-kcc.h or config-irix6.x-g++.h"
-#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__)
-# define ACE_SIZEOF_LONG_DOUBLE 16
-# 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
-
-#define ACE_LACKS_SUSECONDS_T
-
-// 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_SYS_SYSCALL_H
-
-// Compiler/platform supports alloca()
-// Although ACE does have alloca() on this compiler/platform combination, it is
-// disabled by default since it can be dangerous. Uncomment the following line
-// if you ACE to use it.
-//#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
-
-// 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
-
-// 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
-#ifdef ACE_LACKS_PERFECT_MULTICAST_FILTERING
- #undef ACE_LACKS_PERFECT_MULTICAST_FILTERING
-#endif
-#define ACE_LACKS_PERFECT_MULTICAST_FILTERING 1
-
-//**************************************************************
-// Not so sure how next lines should look like
-
-// Platform supports POSIX timers via timestruc_t.
-#define ACE_HAS_POSIX_TIME
-
-//**************************************************************
-
-// 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
-
-#define ACE_LACKS_PLACEMENT_OPERATOR_DELETE
-#define ACE_PI_CONTROL_BLOCK_ALIGN_LONGS 2
-
-// Platform has POSIX terminal interface.
-#define ACE_HAS_TERMIOS
-
-// IRIX 6.5 supports AIO
-#define ACE_HAS_AIO_CALLS
-#define ACE_POSIX_AIOCB_PROACTOR
-#define ACE_HAS_SGIDLADD
-#define ACE_HAS_P_READ_WRITE
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF
-#define ACE_LACKS_STDINT_H
-#define ACE_HAS_SYSENT_H
-#define ACE_HAS_SYSV_SYSINFO
-#define ACE_HAS_SYS_SYSTEMINFO_H
-
-// 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 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
-
-#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
-
-// 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) */
-
-
-#endif /* ACE_CONFIG_IRIX6X_COMMON_H */
diff --git a/dep/acelite/ace/config-irix6.x-g++.h b/dep/acelite/ace/config-irix6.x-g++.h
deleted file mode 100644
index 94c79119a64..00000000000
--- a/dep/acelite/ace/config-irix6.x-g++.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/* -*- C++ -*- */
-// $Id: config-irix6.x-g++.h 87268 2009-10-29 21:06:06Z olli $
-
-// 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"
-
-#include "ace/config-g++-common.h"
-#include "ace/config-irix6.x-common.h"
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/dep/acelite/ace/config-irix6.x-sgic++.h b/dep/acelite/ace/config-irix6.x-sgic++.h
deleted file mode 100644
index 8bba07ac671..00000000000
--- a/dep/acelite/ace/config-irix6.x-sgic++.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* -*- C++ -*- */
-// $Id: config-irix6.x-sgic++.h 81935 2008-06-12 22:01:53Z jtc $
-
-// Use this file for IRIX 6.[234] if you have the pthreads patches
-// installed.
-
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-#include /**/ "ace/pre.h"
-
-#include "ace/config-irix6.x-common.h"
-
-// This is the config file for IRIX 6.2, 6.4 and hopefully 6.3, using
-// the SGI C++ compiler (7.1 or higher).
-
-// The following three should be enabled/disabled together.
-#if _COMPILER_VERSION < 720
-#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 ACE_TEXT ("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_H */
diff --git a/dep/acelite/ace/config-kfreebsd.h b/dep/acelite/ace/config-kfreebsd.h
index ab2cd8882f4..1f607d13efa 100644
--- a/dep/acelite/ace/config-kfreebsd.h
+++ b/dep/acelite/ace/config-kfreebsd.h
@@ -1,4 +1,4 @@
-// $Id: config-kfreebsd.h 91743 2010-09-13 18:24:51Z johnnyw $
+// $Id: config-kfreebsd.h 93550 2011-03-15 21:26:56Z olli $
#ifndef ACE_CONFIG_KFREEBSD_H
#define ACE_CONFIG_KFREEBSDH
@@ -153,13 +153,6 @@
/* Platform contains <poll.h> */
#define ACE_HAS_POLL 1
-/* Platform supports "position-independent" features provided by
- ACE_Based_Pointer<>. */
-#define ACE_HAS_POSITION_INDEPENDENT_POINTERS 1
-
-/* Platform supports POSIX getpwnam_r() function */
-#define ACE_HAS_POSIX_GETPWNAM_R 1
-
/* Platform supports POSIX O_NONBLOCK semantics */
#define ACE_HAS_POSIX_NONBLOCK 1
@@ -176,9 +169,6 @@
/* Define to 1 if platform has POSIX threads */
#define ACE_HAS_PTHREADS 1
-/* Platform supports POSIX.1c-1995 threads */
-#define ACE_HAS_PTHREADS_STD 1
-
/* Platform has the UNIX98 extensions to Pthreads (rwlocks) */
#define ACE_HAS_PTHREADS_UNIX98_EXT 1
diff --git a/dep/acelite/ace/config-linux.h b/dep/acelite/ace/config-linux.h
index 8b79c13a415..7283136d034 100644
--- a/dep/acelite/ace/config-linux.h
+++ b/dep/acelite/ace/config-linux.h
@@ -1,6 +1,6 @@
// -*- C++ -*-
//
-// $Id: config-linux.h 80826 2008-03-04 14:51:23Z wotte $
+// $Id: config-linux.h 96072 2012-08-17 12:29:59Z mcorino $
// The following configuration file is designed to work for Linux
// platforms using GNU C++.
@@ -9,66 +9,444 @@
#define ACE_CONFIG_LINUX_H
#include /**/ "ace/pre.h"
-#define ACE_PLATFORM_CONFIG config-linux.h
+#if !defined (ACE_LINUX)
+#define ACE_LINUX
+#endif /* ACE_LINUX */
-#include "ace/config-linux-common.h"
+#if !defined (ACE_MT_SAFE)
+# define ACE_MT_SAFE 1
+#endif
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-#define ACE_HAS_DLSYM_SEGFAULT_ON_INVALID_HANDLE
+#if !defined (__ACE_INLINE__)
+# define __ACE_INLINE__
+#endif /* ! __ACE_INLINE__ */
-#if !defined (ACE_MT_SAFE)
-#define ACE_MT_SAFE 1 // JCEJ 12/22/96 #1
+#if !defined (ACE_PLATFORM_CONFIG)
+#define ACE_PLATFORM_CONFIG config-linux.h
#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
-
-// On linux this is part of pthreads
-# if (defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 199309L)
-# if !defined (ACE_HAS_CLOCK_GETTIME)
-# if !defined(__PGI)
-# define ACE_HAS_CLOCK_GETTIME
-# endif /* __PGI */
-# define ACE_HAS_CLOCK_SETTIME
-# endif /* !ACE_HAS_CLOCK_GETTIME */
-# endif /* _POSIX_C_SOURCE >= 199309L */
-
-#if !defined (ACE_HAS_PTHREADS_UNIX98_EXT)
-# define ACE_LACKS_RWLOCK_T
+#define ACE_HAS_BYTESEX_H
+
+// 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 */
+
+# include "ace/config-posix.h"
+
+#if !defined (ACE_LACKS_LINUX_NPTL)
+
+ // Temporary fix because NPTL kernels do have shm_open but there is a problem
+ // with shm_open/shm_unlink pairing in ACE which needs to be fixed when I have time.
+# if defined (ACE_HAS_SHM_OPEN)
+# undef ACE_HAS_SHM_OPEN
+# endif /* ACE_HAS_SHM_OPEN */
+
+# if defined (ACE_USES_FIFO_SEM)
+ // Don't use this for Linux NPTL since this has complete
+ // POSIX semaphores which are more efficient
+# undef ACE_USES_FIFO_SEM
+# endif /* ACE_USES_FIFO_SEM */
+
+# if defined (ACE_HAS_POSIX_SEM)
+ // Linux NPTL may not define the right POSIX macro
+ // but they have the actual runtime support for this stuff
+# if !defined (ACE_HAS_POSIX_SEM_TIMEOUT) && (((_POSIX_C_SOURCE - 0) >= 200112L) || (_XOPEN_SOURCE >= 600))
+# define ACE_HAS_POSIX_SEM_TIMEOUT
+# endif /* !ACE_HAS_POSIX_SEM_TIMEOUT && (((_POSIX_C_SOURCE - 0) >= 200112L) || (_XOPEN_SOURCE >= 600)) */
+# endif /* ACE_HAS_POSIX_SEM */
+#endif /* !ACE_LACKS_LINUX_NPTL */
+
+// AIO support pulls in the rt library, which pulls in the pthread
+// library. Disable AIO in single-threaded builds.
+#if defined (ACE_HAS_THREADS)
+# define ACE_HAS_CLOCK_GETTIME
+# define ACE_HAS_CLOCK_SETTIME
#else
-# define ACE_HAS_RECURSIVE_MUTEXES
-#endif /* !ACE_HAS_PTHREADS_UNIX98_EXT */
+# undef ACE_HAS_AIO_CALLS
+#endif
+
+// First the machine specific part
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE // jcej 12/22/96 #2
+#if defined (__powerpc__) || defined (__x86_64__)
+# 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 /* ! __powerpc__ && ! __ia64 */
-#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS // JCEJ 1/7-8/96
+// Then glibc/libc5 specific parts
#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__ < 3)
+# define ACE_HAS_RUSAGE_WHO_ENUM enum __rusage_who
+# define ACE_HAS_RLIMIT_RESOURCE_ENUM enum __rlimit_resource
+# define ACE_LACKS_ISCTYPE
+# endif
+# define ACE_HAS_SOCKLEN_T
+# define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
-#if (__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 1)
- // Older versions of glibc lacked reentrant netdb functions
-# define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
+ // glibc defines both of these, used in OS_String.
+# if defined (_GNU_SOURCE)
+# define ACE_HAS_STRNLEN
+# define ACE_HAS_WCSNLEN
- // glibc < 2.1 lacks pthread_attr_setstacksize()
-# define ACE_LACKS_PTHREAD_ATTR_SETSTACKSIZE
-#endif /* (__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 1) */
+ // This is probably not a 100%-sure-fire check... Red Hat Linux 9
+ // and Enterprise Linux 3 and up have a new kernel that can send signals
+ // across threads. This was not possible prior because there was no real
+ // difference between a process and a thread. With this, the
+ // ACE_POSIX_SIG_Proactor is the only chance of getting asynch I/O working.
+ // There are restrictions, such as all socket operations being silently
+ // converted to synchronous by the kernel, that make aio a non-starter
+ // for most Linux platforms at this time. But we'll start to crawl...
+# define ACE_POSIX_SIG_PROACTOR
+# endif
-// uses ctime_r & asctime_r with only two parameters vs. three
-#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
+ // To avoid the strangeness with Linux's ::select (), which modifies
+ // its timeout argument, use ::poll () instead.
+# define ACE_HAS_POLL
+
+# define ACE_HAS_SIGINFO_T
+# define ACE_LACKS_SIGINFO_H
+# define ACE_HAS_UCONTEXT_T
+# define ACE_HAS_SIGTIMEDWAIT
+
+#else /* ! __GLIBC__ */
+ // Fixes a problem with some non-glibc versions of Linux...
+# define ACE_LACKS_MADVISE
+# define ACE_LACKS_MSG_ACCRIGHTS
+#endif /* ! __GLIBC__ */
+
+#define ACE_HAS_LSEEK64
+//#define ACE_LACKS_LSEEK64_PROTOTYPE
+
+#define ACE_HAS_P_READ_WRITE
+// Use ACE's alternate cuserid() implementation since the use of the
+// system cuserid() is discouraged.
+#define ACE_HAS_ALT_CUSERID
+
+#if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)
+# define ACE_HAS_ISASTREAM_PROTOTYPE
+# define ACE_HAS_PTHREAD_SIGMASK_PROTOTYPE
+# define ACE_HAS_CPU_SET_T
+#endif /* __GLIBC__ > 2 || __GLIBC__ === 2 && __GLIBC_MINOR__ >= 3) */
+
+// Then the compiler specific parts
+
+#if defined (__INTEL_COMPILER)
+# include "ace/config-icc-common.h"
+#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"
+# ifdef __clang__
+# undef ACE_HAS_GCC_ATOMIC_BUILTINS
+# endif
+#elif defined (__SUNCC_PRO) || defined (__SUNPRO_CC)
+# include "ace/config-suncc-common.h"
+#elif defined (__PGI)
+// Portable group compiler
+# define ACE_HAS_CPLUSPLUS_HEADERS
+# define ACE_HAS_STDCPP_STL_INCLUDES
+# define ACE_HAS_STANDARD_CPP_LIBRARY 1
+# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
+# define ACE_LACKS_SWAB
+#elif defined (__GNUC__)
+/**
+ * GNU C compiler.
+ *
+ * We need to recognize the GNU C compiler since TAO has at least one
+ * C source header and file
+ * (TAO/orbsvcs/orbsvcs/SSLIOP/params_dup.{h,c}) that may indirectly
+ * include this
+ */
+#else /* ! __GNUG__ && !__DECCXX && !__INTEL_COMPILER && && !__PGI */
+# ifdef __cplusplus /* Let it slide for C compilers. */
+# error unsupported compiler in ace/config-linux.h
+# endif /* __cplusplus */
+#endif /* ! __GNUG__*/
+
+// Completely common part :-)
+
+// Platform/compiler has the sigwait(2) prototype
+#define ACE_HAS_SIGWAIT
+
+#define ACE_HAS_SIGSUSPEND
+
+#define ACE_HAS_UALARM
+
+#define ACE_HAS_STRSIGNAL
+
+#ifndef ACE_HAS_POSIX_REALTIME_SIGNALS
+# define ACE_HAS_POSIX_REALTIME_SIGNALS
+#endif /* ACE_HAS_POSIX_REALTIME_SIGNALS */
+
+#define ACE_HAS_XPG4_MULTIBYTE_CHAR
+#define ACE_HAS_VFWPRINTF
+
+#define ACE_LACKS_ITOW
+#define ACE_LACKS_WCSICMP
+#define ACE_LACKS_WCSNICMP
+#define ACE_LACKS_ISWASCII
+
+#define ACE_HAS_3_PARAM_WCSTOK
+
+#define ACE_HAS_3_PARAM_READDIR_R
+
+#if !defined (ACE_DEFAULT_BASE_ADDR)
+# define ACE_DEFAULT_BASE_ADDR ((char *) 0x80000000)
+#endif /* ! ACE_DEFAULT_BASE_ADDR */
+
+#define ACE_HAS_ALLOCA
+
+// Compiler/platform has <alloca.h>
+#define ACE_HAS_ALLOCA_H
+#define ACE_HAS_SYS_SYSINFO_H
+#define ACE_HAS_LINUX_SYSINFO
+
+// Compiler/platform has the getrusage() system call.
+#define ACE_HAS_GETRUSAGE
+#define ACE_HAS_GETRUSAGE_PROTOTYPE
+
+#define ACE_HAS_BYTESWAP_H
+#define ACE_HAS_BSWAP_16
+#define ACE_HAS_BSWAP_32
+
+#if defined (__GNUC__)
+# define ACE_HAS_BSWAP_64
+#endif
+
+#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_DEFAULT_MAX_SOCKET_BUFSIZ 65535
+
+#define ACE_CDR_IMPLEMENT_WITH_NATIVE_DOUBLE 1
+
+#define ACE_HAS_GETPAGESIZE 1
+
+// Platform defines struct timespec but not timespec_t
+#define ACE_LACKS_TIMESPEC_T
+
+// Platform supplies scandir()
+#define ACE_HAS_SCANDIR
+#if (__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 10)
+// Although the scandir man page says otherwise, this setting is correct.
+// The setting was fixed in 2.10, so do not use the hack after that.
+#define ACE_SCANDIR_CMP_USES_CONST_VOIDPTR
+#endif
+
+// 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_SYS_SYSCALL_H
+
+// Platform/compiler supports global timezone variable.
+#define ACE_HAS_TIMEZONE
+
+#define ACE_HAS_TIMEZONE_GETTIMEOFDAY
+
+// 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
+
+// Starting with FC9 rawhide this file is not available anymore but
+// this define is set
+#if defined _XOPEN_STREAMS && _XOPEN_STREAMS == -1
+# define ACE_LACKS_STROPTS_H
+# define ACE_LACKS_STRRECVFD
+#endif
+
+#if !defined (ACE_LACKS_STROPTS_H)
+# define ACE_HAS_STRBUF_T
+#endif
+
+#if defined (__ia64) || defined(__alpha) || defined (__x86_64__) || defined(__powerpc64__)
+// 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_ASCII "%lu"
+# define ACE_SSIZE_T_FORMAT_SPECIFIER_ASCII "%ld"
+# define ACE_SIZE_T_FORMAT_SPECIFIER_ASCII "%lu"
+#endif /* __ia64 */
+
+#define ACE_SIZEOF_WCHAR 4
+
+#if defined (__powerpc__) && !defined (ACE_SIZEOF_LONG_DOUBLE)
+// 32bit PowerPC Linux uses 128bit long double
+# define ACE_SIZEOF_LONG_DOUBLE 16
#endif
+#define ACE_LACKS_GETIPNODEBYADDR
+#define ACE_LACKS_GETIPNODEBYNAME
+
+// Platform has POSIX terminal interface.
+#define ACE_HAS_TERMIOS
+
+// Linux implements sendfile().
+#define ACE_HAS_SENDFILE 1
+
+#define ACE_HAS_VOIDPTR_MMAP
+
+#define ACE_HAS_ICMP_SUPPORT 1
+
+#define ACE_HAS_VASPRINTF
+
+// According to man pages Linux uses different (compared to UNIX systems) types
+// for setting IP_MULTICAST_TTL and IPV6_MULTICAST_LOOP / IP_MULTICAST_LOOP
+// in setsockopt/getsockopt.
+// In the current (circa 2012) kernel source however there is an explicit check
+// for IPV6_MULTICAST_LOOP being sizeof(int). Anything else is rejected so it must
+// not be a passed a bool, irrespective of what the man pages (still) say.
+// i.e. #define ACE_HAS_IPV6_MULTICAST_LOOP_AS_BOOL 1 is wrong
+#define ACE_HAS_IP_MULTICAST_TTL_AS_INT 1
+#define ACE_HAS_IP_MULTICAST_LOOP_AS_INT 1
+
+#if defined (ACE_LACKS_NETWORKING)
+# include "ace/config-posix-nonetworking.h"
#else
-// AIO support pulls in the rt library, which pulls in the pthread
-// library. Disable AIO in single-threaded builds.
-# undef ACE_HAS_AIO_CALLS
-#endif /* ACE_MT_SAFE */
+# define ACE_HAS_NETLINK
+# define ACE_HAS_GETIFADDRS
+#endif
+
+#if !defined (ACE_GETNAME_RETURNS_RANDOM_SIN_ZERO)
+// Detect if getsockname() and getpeername() returns random values in
+// the sockaddr_in::sin_zero field by evaluation of the kernel
+// version. Since version 2.5.47 this problem is fixed.
+# if !defined (ACE_LACKS_LINUX_VERSION_H)
+# include <linux/version.h>
+# endif /* !ACE_LACKS_LINUX_VERSION_H */
+# if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,47))
+# define ACE_GETNAME_RETURNS_RANDOM_SIN_ZERO 0
+# else
+# define ACE_GETNAME_RETURNS_RANDOM_SIN_ZERO 1
+# endif /* (LINUX_VERSION_CODE <= KERNEL_VERSION(2,5,47)) */
+#endif /* ACE_GETNAME_RETURNS_RANDOM_SIN_ZERO */
+
+#if !defined (ACE_HAS_EVENT_POLL) && !defined (ACE_HAS_DEV_POLL)
+# if !defined (ACE_LACKS_LINUX_VERSION_H)
+# include <linux/version.h>
+# endif /* !ACE_LACKS_LINUX_VERSION_H */
+# if (LINUX_VERSION_CODE > KERNEL_VERSION (2,6,0))
+# define ACE_HAS_EVENT_POLL
+# endif
+#endif
+
+// This is ghastly, but as long as there are platforms supported
+// which define the right POSIX macros but lack actual support
+// we have no choice.
+// RHEL4 fails (2.6.9) while RHEL5 works (2.6.18)
+#if !defined (ACE_LACKS_CONDATTR_SETCLOCK)
+# if !defined (ACE_LACKS_LINUX_VERSION_H)
+# include <linux/version.h>
+# endif /* !ACE_LACKS_LINUX_VERSION_H */
+# if (LINUX_VERSION_CODE < KERNEL_VERSION (2,6,18))
+# define ACE_LACKS_CONDATTR_SETCLOCK
+# endif
+#endif
+
+#define ACE_HAS_SVR4_DYNAMIC_LINKING
+#define ACE_HAS_AUTOMATIC_INIT_FINI
+#define ACE_HAS_DLSYM_SEGFAULT_ON_INVALID_HANDLE
+#define ACE_HAS_RECURSIVE_MUTEXES
+#define ACE_HAS_THREAD_SPECIFIC_STORAGE
+#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
+#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
+#define ACE_HAS_REENTRANT_FUNCTIONS
+
+// To support UCLIBC
+#if defined (__UCLIBC__)
+
+# define ACE_LACKS_STROPTS_H
+# define ACE_LACKS_GETLOADAVG
+# define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
+# define ACE_LACKS_PTHREAD_SETSTACK
+# define ACE_LACKS_STRRECVFD
+# define ACE_HAS_CPU_SET_T
+
+# if defined (ACE_HAS_STRBUF_T)
+# undef ACE_HAS_STRBUF_T
+# endif /* ACE_HAS_STRBUF_T */
+
+# if defined (ACE_HAS_PTHREAD_SETSTACK)
+# undef ACE_HAS_PTHREAD_SETSTACK
+# endif /* ACE_HAS_PTHREAD_SETSTACK */
+
+# if defined (ACE_HAS_AIO_CALLS)
+# undef ACE_HAS_AIO_CALLS
+# endif /* ACE_HAS_AIO_CALLS */
+
+# if defined (ACE_HAS_GETIFADDRS)
+# undef ACE_HAS_GETIFADDRS
+# endif /* ACE_HAS_GETIFADDRS */
+
+# if defined (ACE_SCANDIR_CMP_USES_VOIDPTR)
+# undef ACE_SCANDIR_CMP_USES_VOIDPTR
+# endif /* ACE_SCANDIR_CMP_USES_VOIDPTR */
+
+# if defined (ACE_SCANDIR_CMP_USES_CONST_VOIDPTR)
+# undef ACE_SCANDIR_CMP_USES_CONST_VOIDPTR
+# endif /* ACE_SCANDIR_CMP_USES_CONST_VOIDPTR */
+
+# if defined (ACE_HAS_EXECINFO_H)
+# undef ACE_HAS_EXECINFO_H
+# endif /* ACE_HAS_EXECINFO_H */
+
+# if defined(__GLIBC__)
+# undef __GLIBC__
+# endif /* __GLIBC__ */
+
+# if defined(ACE_HAS_SEMUN)
+# undef ACE_HAS_SEMUN
+# endif /* ACE_HAS_SEMUN */
+
+#endif /* __UCLIBC__ */
#include /**/ "ace/post.h"
diff --git a/dep/acelite/ace/config-lite.h b/dep/acelite/ace/config-lite.h
index 1a6937c851b..7c0fab03e75 100644
--- a/dep/acelite/ace/config-lite.h
+++ b/dep/acelite/ace/config-lite.h
@@ -4,7 +4,7 @@
/**
* @file config-lite.h
*
- * $Id: config-lite.h 85832 2009-06-28 16:14:59Z johnnyw $
+ * $Id: config-lite.h 95867 2012-06-11 21:46:38Z mitza $
*
* @author (Originally in OS.h)Doug Schmidt <schmidt@cs.wustl.edu>
* @author Jesper S. M|ller<stophph@diku.dk>
@@ -27,12 +27,6 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-// Empty ACE_OS namespace to help identify compiler errors more
-// easily. -- @@ Do we really need this?
-ACE_BEGIN_VERSIONED_NAMESPACE_DECL
-namespace ACE_OS {}
-ACE_END_VERSIONED_NAMESPACE_DECL
-
// ============================================================================
// UNICODE macros (to be added later)
// ============================================================================
@@ -122,13 +116,13 @@ ACE_END_VERSIONED_NAMESPACE_DECL
// Once all C++ compilers support the standard reverse_iterator
// adapters, we can drop this generator macro or at least drop the
// MSVC++ or Sun Studio preprocessor conditional blocks.
-#if defined (__SUNPRO_CC) && __SUNPRO_CC <= 0x5100 \
+#if defined (__SUNPRO_CC) && __SUNPRO_CC <= 0x5120 \
&& !defined (_STLPORT_VERSION)
// If we're not using the stlport4 C++ library (which has standard
// iterators), we need to ensure this is included in order to test
// the _RWSTD_NO_CLASS_PARTIAL_SPEC feature test macro below.
# include <Cstd/stdcomp.h>
-#endif /* __SUNPRO_CC <= 0x5100 */
+#endif /* __SUNPRO_CC <= 0x5110 */
#if (defined (_MSC_VER) && (_MSC_VER <= 1310) && defined (_WIN64)) \
|| defined (ACE_HAS_BROKEN_STD_REVERSE_ITERATOR)
// VC 7.1 and the latest 64-bit platform SDK still don't define a standard
@@ -137,7 +131,7 @@ ACE_END_VERSIONED_NAMESPACE_DECL
typedef std::reverse_iterator<iterator, value_type> reverse_iterator; \
typedef std::reverse_iterator<const_iterator, \
value_type const> const_reverse_iterator;
-#elif defined (__SUNPRO_CC) && __SUNPRO_CC <= 0x5100 \
+#elif defined (__SUNPRO_CC) && __SUNPRO_CC <= 0x5120 \
&& defined (_RWSTD_NO_CLASS_PARTIAL_SPEC)
# define ACE_DECLARE_STL_REVERSE_ITERATORS \
typedef std::reverse_iterator<iterator, \
diff --git a/dep/acelite/ace/config-lynxos.h b/dep/acelite/ace/config-lynxos.h
index cd217465685..e0d5f4d1cf5 100644
--- a/dep/acelite/ace/config-lynxos.h
+++ b/dep/acelite/ace/config-lynxos.h
@@ -1,4 +1,4 @@
-// $Id: config-lynxos.h 91683 2010-09-09 09:07:49Z johnnyw $
+// $Id: config-lynxos.h 94274 2011-06-29 07:59:12Z mcorino $
// The following configuration file is designed to work for LynxOS,
// version 4.0.0 and later, using the GNU g++ compiler.
@@ -14,29 +14,23 @@
#include <param.h>
#undef __FREEBSDCODE__
-#if ! defined (__ACE_INLINE__)
-# define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
-
-#if defined (__GNUG__)
-# include "ace/config-g++-common.h"
-#endif /* __GNUG__ */
+#include "ace/config-g++-common.h"
// Compile using multi-thread libraries.
#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
+# define ACE_MT_SAFE 1
#endif
#include "ace/config-posix.h"
#if defined (__x86__)
-# define ACE_HAS_PENTIUM
+# 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
+ // 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_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
@@ -72,10 +66,14 @@
#define ACE_HAS_NONCONST_SELECT_TIMEVAL
#define ACE_HAS_NONCONST_SETRLIMIT
#define ACE_HAS_NONCONST_WRITEV
-#define ACE_HAS_POSITION_INDEPENDENT_POINTERS 1
#define ACE_HAS_POSIX_NONBLOCK
#define ACE_HAS_POSIX_TIME
+#define ACE_HAS_PTHREADS_UNIX98_EXT
+#define ACE_HAS_PTHREAD_GETCONCURRENCY
+#define ACE_HAS_PTHREAD_SETCONCURRENCY
+#define ACE_HAS_PTHREAD_SIGMASK_PROTOTYPE
#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
+#define ACE_HAS_REENTRANT_FUNCTIONS
#define ACE_HAS_SCANDIR
#define ACE_HAS_SIGACTION_CONSTP2
#define ACE_HAS_SIGINFO_T
@@ -96,28 +94,21 @@
#define ACE_HAS_SYS_FILIO_H
#define ACE_HAS_SYS_SOCKIO_H
#define ACE_HAS_TERMIOS
+#define ACE_HAS_THREAD_SPECIFIC_STORAGE
#define ACE_HAS_TIMEZONE_GETTIMEOFDAY
#define ACE_LACKS_ALPHASORT_PROTOTYPE
-#define ACE_LACKS_CONST_TIMESPEC_PTR
-#define ACE_LACKS_GETPGID
#define ACE_LACKS_ISCTYPE
#define ACE_LACKS_MADVISE
-#define ACE_LACKS_MKSTEMP_PROTOTYPE
-#define ACE_LACKS_MKTEMP_PROTOTYPE
-#define ACE_LACKS_PUTENV_PROTOTYPE
+#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
#define ACE_LACKS_REALPATH
-#define ACE_LACKS_RLIMIT_NOFILE
-#define ACE_LACKS_RWLOCK_T
#define ACE_LACKS_SCANDIR_PROTOTYPE
-#define ACE_LACKS_SETEGID
-#define ACE_LACKS_SETEUID
#define ACE_LACKS_SIGINFO_H
#define ACE_LACKS_STRPTIME
-#define ACE_LACKS_SWAB_PROTOTYPE
+#define ACE_LACKS_SUSECONDS_T
#define ACE_LACKS_TIMESPEC_T
#define ACE_LACKS_UCONTEXT_H
-#define ACE_LACKS_SUSECONDS_T
+#define ACE_LACKS_STD_WSTRING
#define ACE_DEFAULT_BASE_ADDR ((char *) 0)
#define ACE_EXPLICIT_TEMPLATE_DESTRUCTOR_TAKES_ARGS
@@ -129,66 +120,68 @@
// LynxOS has poll.h but it is unusable since implementation is not provided
#define ACE_LACKS_POLL_H
-#if ACE_MT_SAFE == 1
- // Platform supports threads.
-# define ACE_HAS_PTHREADS
-# define ACE_HAS_PTHREADS_STD
-# define ACE_HAS_PTHREADS_UNIX98_EXT
-# define ACE_HAS_PTHREAD_GETCONCURRENCY
-# define ACE_HAS_PTHREAD_SETCONCURRENCY
-# define ACE_HAS_PTHREAD_SIGMASK_PROTOTYPE
-# define ACE_HAS_THREAD_SPECIFIC_STORAGE
-# define ACE_LACKS_PTHREAD_ATTR_SETSTACK
-# define ACE_LACKS_THREAD_PROCESS_SCOPING
-# if ACE_LYNXOS_MAJOR == 4 && ACE_LYNXOS_MINOR == 0
-# define ACE_LACKS_SETDETACH
-# define ACE_LACKS_PTHREAD_ATTR_SETSTACKADDR
-# endif
-#endif /* ACE_MT_SAFE */
+#if defined (ACE_HAS_SVR4_DYNAMIC_LINKING)
+# define ACE_HAS_BROKEN_THREAD_KEYFREE
+#endif /* ACE_HAS_SVR4_DYNAMIC_LINKING */
#if ACE_LYNXOS_MAJOR == 4 && ACE_LYNXOS_MINOR == 0
-# define ACE_LACKS_GETOPT_PROTOTYPE
-# define ACE_LACKS_INET_ATON_PROTOTYPE
-# define ACE_LACKS_REGEX_H
-# define ACE_LACKS_STRCASECMP_PROTOTYPE
-# define ACE_LACKS_STRNCASECMP_PROTOTYPE
-# define ACE_LACKS_SYS_SELECT_H
+// LynxOS 4.0
+# define ACE_LACKS_GETOPT_PROTOTYPE
+# define ACE_LACKS_INET_ATON_PROTOTYPE
+# define ACE_LACKS_PTHREAD_ATTR_SETSTACKADDR
+# define ACE_LACKS_REGEX_H
+# define ACE_LACKS_RWLOCK_T
+# define ACE_LACKS_SETDETACH
+# define ACE_LACKS_STRCASECMP_PROTOTYPE
+# define ACE_LACKS_STRNCASECMP_PROTOTYPE
+# define ACE_LACKS_SYS_SELECT_H
+# define ACE_LACKS_THREAD_PROCESS_SCOPING
#endif
#if (ACE_LYNXOS_MAJOR > 4) || (ACE_LYNXOS_MAJOR == 4 && ACE_LYNXOS_MINOR >= 2)
-// LynxOS 4.2 additons
-# define ACE_HAS_POSIX_SEM_TIMEOUT
-# define ACE_HAS_MUTEX_TIMEOUTS
+// LynxOS 4.2 and 5.0
+# define ACE_HAS_POSIX_SEM_TIMEOUT
+# define ACE_HAS_MUTEX_TIMEOUTS
#endif
-#if (ACE_LYNXOS_MAJOR >=5)
-// LynxOS 5.0 Additons
-# define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-# define ACE_HAS_NONCONST_INET_ADDR
-# define ACE_LACKS_INET_ATON_PROTOTYPE
-# define ACE_LACKS_SEMBUF_T
-# define ACE_LACKS_STROPTS_H
-# define ACE_LACKS_STRRECVFD
-# define ACE_LACKS_SYS_SEM_H
-# define ACE_SYS_SIGLIST __sys_siglist
-#else
-// LynxOS 5.0 Removals
+#if (ACE_LYNXOS_MAJOR < 5)
+// LynxOS 4.x
+# define ACE_HAS_LYNXOS4_GETPWNAM_R
# define ACE_HAS_LYNXOS4_SIGNALS
# define ACE_HAS_SEMUN
# define ACE_HAS_STRBUF_T
# define ACE_HAS_SYSV_IPC
+# define ACE_LACKS_CONST_TIMESPEC_PTR
+# define ACE_LACKS_GETPGID
# define ACE_LACKS_ISBLANK
+# define ACE_LACKS_MKSTEMP_PROTOTYPE
+# define ACE_LACKS_MKTEMP_PROTOTYPE
+# define ACE_LACKS_PTHREAD_ATTR_SETSTACK
+# define ACE_LACKS_PUTENV_PROTOTYPE
+# define ACE_LACKS_SETEGID
# define ACE_LACKS_SETENV
+# define ACE_LACKS_SETEUID
+# define ACE_LACKS_SWAB_PROTOTYPE
# define ACE_LACKS_UNSETENV
# define ACE_LACKS_USECONDS_T
# define ACE_LACKS_VSNPRINTF
# define ACE_LACKS_WCHAR_H
# define ACE_SYS_SIGLIST sys_siglist
+# if !defined (ACE_HAS_THREADS)
+# undef ACE_HAS_AIO_CALLS
+# endif
+#else
+// LynxOS 5.0
+# define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
+# define ACE_HAS_NONCONST_INET_ADDR
+# define ACE_LACKS_INET_ATON_PROTOTYPE
+# define ACE_LACKS_SEMBUF_T
+# define ACE_LACKS_STROPTS_H
+# define ACE_LACKS_STRRECVFD
+# define ACE_LACKS_SYS_SEM_H
+# define ACE_SYS_SIGLIST __sys_siglist
#endif
-#if defined (ACE_HAS_SVR4_DYNAMIC_LINKING)
-# define ACE_HAS_BROKEN_THREAD_KEYFREE
-#endif /* ACE_HAS_SVR4_DYNAMIC_LINKING */
-
#include /**/ "ace/post.h"
+
#endif /* ACE_CONFIG_H */
diff --git a/dep/acelite/ace/config-macosx-iphone-hardware.h b/dep/acelite/ace/config-macosx-iOS-hardware.h
index 6201d8e824b..927dacd74b1 100644
--- a/dep/acelite/ace/config-macosx-iphone-hardware.h
+++ b/dep/acelite/ace/config-macosx-iOS-hardware.h
@@ -1,15 +1,15 @@
-// $Id: config-macosx-iphone-hardware.h 88739 2010-01-27 05:35:23Z sowayaa $
+// $Id: config-macosx-iOS-hardware.h 95319 2011-12-13 14:54:44Z mhengstmengel $
#ifndef ACE_CONFIG_MACOSX_IPHONE_HARDWARE_H
#define ACE_CONFIG_MACOSX_IPHONE_HARDWARE_H
#define ACE_HAS_IPHONE
#define ACE_SIZEOF_LONG_DOUBLE 8
-#include "ace/config-macosx-snowleopard.h"
+#include "ace/config-macosx-lion.h"
#ifdef ACE_HAS_SYSV_IPC
#undef ACE_HAS_SYSV_IPC
#endif
-#endif ACE_CONFIG_MACOSX_IPHONE_HARDWARE_H
+#endif /* ACE_CONFIG_MACOSX_IPHONE_HARDWARE_H */
diff --git a/dep/acelite/ace/config-macosx-iOS-simulator.h b/dep/acelite/ace/config-macosx-iOS-simulator.h
new file mode 100644
index 00000000000..73d7e90a17e
--- /dev/null
+++ b/dep/acelite/ace/config-macosx-iOS-simulator.h
@@ -0,0 +1,9 @@
+// $Id: config-macosx-iOS-simulator.h 94431 2011-08-31 11:36:49Z sowayaa $
+#ifndef ACE_CONFIG_MACOSX_IPHONE_SIMULATOR_H
+#define ACE_CONFIG_MACOSX_IPHONE_SIMULATOR_H
+
+#define ACE_HAS_IPHONE
+#include "ace/config-macosx-lion.h"
+
+#endif /* ACE_CONFIG_MACOSX_IPHONE_SIMULATOR_H */
+
diff --git a/dep/acelite/ace/config-macosx-iphone-simulator.h b/dep/acelite/ace/config-macosx-iphone-simulator.h
deleted file mode 100644
index 024cf8480a3..00000000000
--- a/dep/acelite/ace/config-macosx-iphone-simulator.h
+++ /dev/null
@@ -1,9 +0,0 @@
-// $Id: config-macosx-iphone-simulator.h 88653 2010-01-21 23:19:50Z sowayaa $
-#ifndef ACE_CONFIG_MACOSX_IPHONE_SIMULATOR_H
-#define ACE_CONFIG_MACOSX_IPHONE_SIMULATOR_H
-
-#define ACE_HAS_IPHONE
-#include "ace/config-macosx-snowleopard.h"
-
-#endif ACE_CONFIG_MACOSX_IPHONE_SIMULATOR_H
-
diff --git a/dep/acelite/ace/config-macosx-leopard.h b/dep/acelite/ace/config-macosx-leopard.h
index 5fb28c338f3..42229ebd2d4 100644
--- a/dep/acelite/ace/config-macosx-leopard.h
+++ b/dep/acelite/ace/config-macosx-leopard.h
@@ -1,5 +1,5 @@
/* -*- C++ -*- */
-// $Id: config-macosx-leopard.h 91688 2010-09-09 11:21:50Z johnnyw $
+// $Id: config-macosx-leopard.h 96085 2012-08-21 02:48:37Z mesnier_p $
// This configuration file is designed to work with the MacOS X operating system.
@@ -176,7 +176,6 @@
# define ACE_HAS_THREADS
// And they're even POSIX pthreads
# define ACE_HAS_PTHREADS
-# define ACE_HAS_PTHREADS_STD
# define ACE_HAS_PTHREAD_SCHEDPARAM
# define ACE_HAS_THREAD_SPECIFIC_STORAGE
#endif /* ACE_MT_SAFE == 1 */
@@ -205,6 +204,7 @@
#define ACE_HAS_VOID_UNSETENV
#endif
+#define ACE_LACKS_CONDATTR_SETCLOCK
// dlcompat package (not part of base Darwin) is needed for dlopen().
// You may download directly from sourceforge and install or use fink
diff --git a/dep/acelite/ace/config-macosx-lion.h b/dep/acelite/ace/config-macosx-lion.h
new file mode 100644
index 00000000000..e4a56ae4ebc
--- /dev/null
+++ b/dep/acelite/ace/config-macosx-lion.h
@@ -0,0 +1,19 @@
+// $Id: config-macosx-lion.h 94764 2011-10-15 01:02:57Z sowayaa $
+#ifndef ACE_CONFIG_MACOSX_LION_H
+#define ACE_CONFIG_MACOSX_LION_H
+
+
+#include "ace/config-macosx-leopard.h"
+
+#ifdef __clang__
+#ifdef ACE_HAS_GCC_ATOMIC_BUILTINS
+#undef ACE_HAS_GCC_ATOMIC_BUILTINS
+#endif
+
+#define ACE_ANY_OPS_USE_NAMESPACE
+
+#endif
+
+#define ACE_LACKS_UCONTEXT_H
+
+#endif // ACE_CONFIG_MACOSX_LION_H
diff --git a/dep/acelite/ace/config-macosx.h b/dep/acelite/ace/config-macosx.h
index 12b69de3b72..e39e27e0e73 100644
--- a/dep/acelite/ace/config-macosx.h
+++ b/dep/acelite/ace/config-macosx.h
@@ -1,5 +1,5 @@
/* -*- C++ -*- */
-// $Id: config-macosx.h 91693 2010-09-09 12:57:54Z johnnyw $
+// $Id: config-macosx.h 93359 2011-02-11 11:33:12Z mcorino $
// This configuration file is designed to work with the MacOS X operating system, version 10.2 (Jaguar).
@@ -51,6 +51,8 @@
#define ACE_LACKS_GETPGID
#define ACE_LACKS_RWLOCK_T
+#define ACE_HAS_SIOCGIFCONF
+
// Optimize ACE_Handle_Set for select().
#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
diff --git a/dep/acelite/ace/config-macros.h b/dep/acelite/ace/config-macros.h
index d81156e9480..32e58947e9a 100644
--- a/dep/acelite/ace/config-macros.h
+++ b/dep/acelite/ace/config-macros.h
@@ -4,7 +4,7 @@
/**
* @file config-macros.h
*
- * $Id: config-macros.h 91685 2010-09-09 09:35:14Z johnnyw $
+ * $Id: config-macros.h 94386 2011-08-10 12:42:53Z johnnyw $
*
* @author (Originally in OS.h)Doug Schmidt <schmidt@cs.wustl.edu>
* @author Jesper S. M|ller<stophph@diku.dk>
@@ -69,9 +69,6 @@
# 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 */
@@ -82,6 +79,7 @@
# if defined (ACE_HAS_VALGRIND)
# define ACE_INITIALIZE_MEMORY_BEFORE_USE
+# define ACE_LACKS_DLCLOSE
# endif /* ACE_HAS_VALGRIND */
// =========================================================================
@@ -499,8 +497,16 @@ extern "C" u_long CLS##_Export _get_dll_unload_policy (void) \
#define ACE_HAS_TEMPLATE_TYPEDEFS
#endif
+#ifndef ACE_GCC_FORMAT_ATTRIBUTE
+# define ACE_GCC_FORMAT_ATTRIBUTE(TYPE, STR_INDEX, FIRST_INDEX)
+#endif
+
#ifndef ACE_DEPRECATED
# define ACE_DEPRECATED
#endif
+#ifndef ACE_HAS_REACTOR_NOTIFICATION_QUEUE
+# define ACE_HAS_REACTOR_NOTIFICATION_QUEUE
+#endif
+
#endif /* ACE_CONFIG_MACROS_H */
diff --git a/dep/acelite/ace/config-minimal.h b/dep/acelite/ace/config-minimal.h
deleted file mode 100644
index 4cf2e8a487b..00000000000
--- a/dep/acelite/ace/config-minimal.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- C++ -*- */
-// $Id: config-minimal.h 80826 2008-03-04 14:51:23Z wotte $
-
-// 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/dep/acelite/ace/config-mvs.h b/dep/acelite/ace/config-mvs.h
deleted file mode 100644
index ce2971025a0..00000000000
--- a/dep/acelite/ace/config-mvs.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/* -*- C++ -*- */
-// $Id: config-mvs.h 92102 2010-09-30 08:14:15Z johnnyw $
-
-// 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 MAXNAMLEN __DIR_NAME_MAX
-#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 ERRMAX __sys_nerr
-
-#define ACE_HAS_3_PARAM_WCSTOK
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-#define ACE_HAS_CPLUSPLUS_HEADERS
-#define ACE_HAS_DIRENT
-#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_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_SOCKADDR_IN_SIN_LEN
-#define ACE_HAS_SIZET_SOCKET_LEN
-#define ACE_HAS_SSIZE_T
-#define ACE_HAS_STRBUF_T
-#define ACE_HAS_STRINGS
-#define ACE_HAS_SYSV_IPC
-#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_INET_ATON
-#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_PARAM_H
-#define ACE_LACKS_SYS_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_SCHED_H
-#define ACE_LACKS_SETSCHED
-#define ACE_LACKS_SEMAPHORE_H
-#define ACE_LACKS_SIGINFO_H
-#define ACE_LACKS_STDINT_H
-#define ACE_LACKS_SYS_SELECT_H
-#define ACE_LACKS_SYS_SYSCTL_H
-#define ACE_LACKS_SYSTIME_H
-#define ACE_LACKS_NETINET_TCP_H
-#define ACE_LACKS_TCP_H
-#define ACE_LACKS_THREAD_PROCESS_SCOPING
-#define ACE_LACKS_PTHREAD_ATTR_SETSTACKADDR
-#define ACE_LACKS_TIMESPEC_T
-#define ACE_LACKS_FD_MASK
-
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-#endif
-
-#define ACE_NEEDS_DEV_IO_CONVERSION
-
-#define ACE_SIZEOF_FLOAT 4
-#define ACE_SIZEOF_DOUBLE 8
-#define ACE_SIZEOF_LONG_DOUBLE 16
-#define ACE_HAS_EBCDIC
-
-#define ACE_TEMPLATES_REQUIRE_SOURCE
-
-#define IN_CLASSD(a) ((((in_addr_t)(a)) & 0xf0000000) == 0xe0000000)
-#define IN_MULTICAST(a) IN_CLASSD(a)
-#include /**/ "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/dep/acelite/ace/config-netbsd.h b/dep/acelite/ace/config-netbsd.h
index 242b3af700a..227c10832a2 100644
--- a/dep/acelite/ace/config-netbsd.h
+++ b/dep/acelite/ace/config-netbsd.h
@@ -1,5 +1,5 @@
/* -*- C++ -*- */
-// $Id: config-netbsd.h 91285 2010-08-05 08:29:30Z johnnyw $
+// $Id: config-netbsd.h 93530 2011-03-11 12:12:40Z olli $
#ifndef ACE_CONFIG_H
#define ACE_CONFIG_H
@@ -48,7 +48,6 @@
#define ACE_HAS_NONCONST_SELECT_TIMEVAL 1
#define ACE_HAS_ONLY_SCHED_OTHER 1
#define ACE_HAS_POLL 1
-#define ACE_HAS_POSITION_INDEPENDENT_POINTERS 1
#define ACE_HAS_POSIX_NONBLOCK 1
#define ACE_HAS_POSIX_TIME 1
#define ACE_HAS_P_READ_WRITE 1
@@ -69,7 +68,6 @@
#define ACE_HAS_SOCKLEN_T 1
#define ACE_HAS_SSIZE_T 1
#define ACE_HAS_STANDARD_CPP_LIBRARY 1
-#define ACE_HAS_STDEXCEPT_NO_H 1
#define ACE_HAS_STRINGS 1
#define ACE_HAS_STRING_CLASS 1
#define ACE_HAS_SVR4_DYNAMIC_LINKING 1
@@ -105,7 +103,6 @@
#define ACE_LACKS_PRI_T 1
#define ACE_LACKS_PTHREAD_THR_SIGSETMASK 1
#define ACE_LACKS_PTHREAD_YIELD 1
-#define ACE_LACKS_PWD_REENTRANT_FUNCTIONS 1
#define ACE_LACKS_RWLOCKATTR_PSHARED 1
#define ACE_LACKS_RWLOCK_T 1
#define ACE_LACKS_SETSCHED 1
diff --git a/dep/acelite/ace/config-openbsd.h b/dep/acelite/ace/config-openbsd.h
index aab03106aab..a4039d556a8 100644
--- a/dep/acelite/ace/config-openbsd.h
+++ b/dep/acelite/ace/config-openbsd.h
@@ -1,61 +1,22 @@
/* -*- C++ -*- */
-// $Id: config-openbsd.h 89494 2010-03-15 20:11:18Z olli $
+// $Id: config-openbsd.h 93613 2011-03-22 09:27:38Z olli $
// The following configuration file is designed to work for OpenBSD
-// platforms using GNU g++.
#ifndef ACE_CONFIG_H
-# define ACE_CONFIG_H
+#define ACE_CONFIG_H
#include /**/ "ace/pre.h"
+#if !defined (ACE_MT_SAFE)
+# define ACE_MT_SAFE 1
+#endif
+
// Platform specific directives
-// gcc defines __OpenBSD__ automatically for us.
#include <sys/param.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__ */
-
-#if defined (__GNUG__)
-# include "ace/config-g++-common.h"
-#endif /* __GNUG__ */
-
-
-#if defined (ACE_HAS_THREADS)
-
-# if !defined (_THREAD_SAFE)
-# define _THREAD_SAFE
-# endif /* _THREAD_SAFE */
-
-// And they're even POSIX pthreads
-# if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-# endif /* ! ACE_MT_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 */
-
-#else
-// 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_HAS_THREADS */
-
+#include "ace/config-g++-common.h"
#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
#define ACE_HAS_3_PARAM_READDIR_R
@@ -86,11 +47,8 @@
#define ACE_HAS_NONCONST_SELECT_TIMEVAL
#define ACE_HAS_NONCONST_SWAB
#define ACE_HAS_POLL
-#define ACE_HAS_POSITION_INDEPENDENT_POINTERS 1
-#define ACE_HAS_POSIX_GETPWNAM_R
#define ACE_HAS_POSIX_NONBLOCK
#define ACE_HAS_POSIX_TIME
-#define ACE_HAS_PTHREADS_STD
#define ACE_HAS_PTHREADS_UNIX98_EXT
#define ACE_HAS_PTHREAD_ATTR_SETCREATESUSPEND_NP
#define ACE_HAS_PTHREAD_GETCONCURRENCY
@@ -137,47 +95,19 @@
#define ACE_HAS_VOID_UNSETENV
#define ACE_HAS_WCHAR
#define ACE_HAS_XPG4_MULTIBYTE_CHAR
+#define ACE_HAS_SYS_SIGINFO_H
-#define ACE_LACKS_CONDATTR_PSHARED
#define ACE_LACKS_GETIPNODEBYADDR
#define ACE_LACKS_GETIPNODEBYNAME
-#define ACE_LACKS_GETPGID
-#define ACE_LACKS_IOSTREAM_FX
#define ACE_LACKS_ISCTYPE
-#define ACE_LACKS_ITOW
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF
-#define ACE_LACKS_LOG2
-#define ACE_LACKS_MALLOC_H
-#define ACE_LACKS_MSG_ACCRIGHTS
-#define ACE_LACKS_MUTEXATTR_PSHARED
+#define ACE_LACKS_ISWASCII
#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
#define ACE_LACKS_PERFECT_MULTICAST_FILTERING
-#define ACE_LACKS_PRI_T
-#define ACE_LACKS_PTHREAD_THR_SIGSETMASK
-#define ACE_LACKS_PWD_REENTRANT_FUNCTIONS
-#define ACE_LACKS_RAND_REENTRANT_FUNCTIONS
-#define ACE_LACKS_RLIMIT_PROTOTYPE
-#define ACE_LACKS_RWLOCK_T
-#define ACE_LACKS_SETPGID
-#define ACE_LACKS_SETREGID
-#define ACE_LACKS_SETREUID
#define ACE_LACKS_SETSCHED
-#define ACE_LACKS_SIGINFO_H
-#define ACE_LACKS_STDINT_H
#define ACE_LACKS_STROPTS_H
#define ACE_LACKS_STRRECVFD
-#define ACE_LACKS_TERMIO_H
-#define ACE_LACKS_THREAD_PROCESS_SCOPING
-#define ACE_LACKS_TIMEDWAIT_PROTOTYPES
#define ACE_LACKS_TIMESPEC_T
#define ACE_LACKS_UCONTEXT_H
-#define ACE_LACKS_UNBUFFERED_STREAMBUF
-#define ACE_LACKS_U_LONGLONG_T
-#define ACE_LACKS_WCHAR_H
-#define ACE_LACKS_WCSCASECMP
-#define ACE_LACKS_WCSDUP
-#define ACE_LACKS_WCSNCASECMP
-#define ACE_LACKS_WCSNICMP
#define ACE_EXPLICIT_TEMPLATE_DESTRUCTOR_TAKES_ARGS
#define ACE_PAGE_SIZE 4096
@@ -186,23 +116,26 @@
// OpenBSD 3.6
#if (OpenBSD < 200411)
-# define ACE_USES_ASM_SYMBOL_IN_DLSYM
+# define ACE_USES_ASM_SYMBOL_IN_DLSYM
#endif
// ucontext_t is in OpenBSD 3.5 and later.
#if (OpenBSD >= 200405)
-# define ACE_HAS_UCONTEXT_T
+# define ACE_HAS_UCONTEXT_T
#endif /* OpenBSD >= 200405 */
// Lacks perfect filtering, must bind group address.
#if !defined ACE_LACKS_PERFECT_MULTICAST_FILTERING
-# define ACE_LACKS_PERFECT_MULTICAST_FILTERING
+# define ACE_LACKS_PERFECT_MULTICAST_FILTERING
#endif /* ACE_LACKS_PERFECT_MULTICAST_FILTERING */
// 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
+#define ACE_SSIZE_T_FORMAT_SPECIFIER_ASCII "%ld"
+#define ACE_SIZE_T_FORMAT_SPECIFIER_ASCII "%lu"
+
#include /**/ "ace/post.h"
#endif /* ACE_CONFIG_H */
diff --git a/dep/acelite/ace/config-openvms.h b/dep/acelite/ace/config-openvms.h
index 33e2ff52d7a..91762386fc0 100644
--- a/dep/acelite/ace/config-openvms.h
+++ b/dep/acelite/ace/config-openvms.h
@@ -1,5 +1,5 @@
/* -*- C++ -*- */
-// $Id: config-openvms.h 91685 2010-09-09 09:35:14Z johnnyw $
+// $Id: config-openvms.h 94294 2011-07-01 09:32:25Z johnnyw $
// The following configuration file is designed to work for OpenVMS 7.3-2
@@ -87,9 +87,6 @@
#define ACE_LACKS_SYMLINKS 1
-#define ACE_LACKS_PWD_REENTRANT_FUNCTIONS 1
-#define ACE_LACKS_RAND_REENTRANT_FUNCTIONS 1
-
#define ACE_HAS_P_READ_WRITE
#define ACE_HAS_CHARPTR_DL 1
#define ACE_HAS_CLOCK_GETTIME 1
@@ -189,4 +186,7 @@
#define ACE_LACKS_SETENV
#define ACE_LACKS_UNSETENV
+#define ACE_HAS_SOCK_BUF_SIZE_MAX
+#define ACE_HAS_SOCK_BUF_SIZE_MAX_VALUE 65535
+
#endif
diff --git a/dep/acelite/ace/config-qnx-neutrino.h b/dep/acelite/ace/config-qnx-neutrino.h
deleted file mode 100644
index 8ba1b97e4c2..00000000000
--- a/dep/acelite/ace/config-qnx-neutrino.h
+++ /dev/null
@@ -1,136 +0,0 @@
-// -*- C++ -*-
-// $Id: config-qnx-neutrino.h 92120 2010-10-01 12:00:01Z johnnyw $
-// 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) */
-
-#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__ */
-
-// The following defines the Neutrino compiler.
-// gcc should know to call g++ as necessary
-#ifdef __GNUC__
-# define ACE_CC_NAME ACE_TEXT ("gcc")
-#else
-# define ACE_CC_NAME ACE_TEXT ("NTO compiler ??")
-#endif
-
-#include "ace/config-g++-common.h"
-
-// /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
-// Although ACE does have alloca() on this compiler/platform combination, it is
-// disabled by default since it can be dangerous. Uncomment the following line
-// if you ACE to use it.
-//#define ACE_HAS_ALLOCA
-#define ACE_HAS_ALLOCA_H
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-#define ACE_HAS_CLOCK_GETTIME
-#define ACE_HAS_CLOCK_SETTIME
-#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_NONCONST_SWAB
-#define ACE_HAS_POSIX_SEM
-#define ACE_HAS_POSIX_TIME
-#define ACE_HAS_PTHREADS
-#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_SOCKADDR_IN_SIN_LEN
-#define ACE_HAS_SSIZE_T
-#define ACE_HAS_STRINGS
-#define ACE_HAS_SVR4_GETTIMEOFDAY
-#define ACE_HAS_TERMIOS
-#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_CONDATTR_PSHARED
-#define ACE_LACKS_CONST_TIMESPEC_PTR
-#define ACE_LACKS_CUSERID
-#define ACE_LACKS_FORK
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF
-#define ACE_LACKS_MADVISE
-#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_POLL_H
-#define ACE_LACKS_PTHREAD_THR_SIGSETMASK
-#define ACE_LACKS_RWLOCK_T
-#define ACE_LACKS_SBRK
-#define ACE_LACKS_SEEKDIR
-#define ACE_LACKS_SO_SNDBUF
-#define ACE_LACKS_SO_RCVBUF
-#define ACE_LACKS_SOCKETPAIR
-#define ACE_LACKS_STROPTS_H
-#define ACE_LACKS_STREAM_MODULES
-#define ACE_LACKS_STRRECVFD
-#define ACE_LACKS_SYSCALL
-#define ACE_LACKS_SYS_MSG_H
-#define ACE_LACKS_SYS_SHM_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
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/dep/acelite/ace/config-qnx-rtp-common.h b/dep/acelite/ace/config-qnx-rtp-common.h
deleted file mode 100644
index 9d9e0aced4e..00000000000
--- a/dep/acelite/ace/config-qnx-rtp-common.h
+++ /dev/null
@@ -1,50 +0,0 @@
-// -*- C++ -*-
-// $Id: config-qnx-rtp-common.h 92120 2010-10-01 12:00:01Z johnnyw $
-// several macros common to various qnx neutrino version.
-
-#ifndef ACE_CONFIG_QNX_RTP_COMMON_H
-#define ACE_CONFIG_QNX_RTP_COMMON_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) */
-
-#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__ */
-
-// The following defines the Neutrino compiler.
-// gcc should know to call g++ as necessary
-#ifdef __GNUC__
-# define ACE_CC_NAME ACE_TEXT ("gcc")
-#else
-# define ACE_CC_NAME ACE_TEXT ("QNX-RTP compiler ??")
-#endif
-
-#include "ace/config-g++-common.h"
-
-// /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
-
-// At least qnx 6.3.2 uses a void return for unsetenv
-// This assumes that older versions do too.
-#define ACE_HAS_VOID_UNSETENV
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CONFIG_QNX_RTP_COMMON_H */
diff --git a/dep/acelite/ace/config-qnx-rtp-pre62x.h b/dep/acelite/ace/config-qnx-rtp-pre62x.h
deleted file mode 100644
index 504d3a3ac09..00000000000
--- a/dep/acelite/ace/config-qnx-rtp-pre62x.h
+++ /dev/null
@@ -1,152 +0,0 @@
-// -*- C++ -*-
-// $Id: config-qnx-rtp-pre62x.h 87167 2009-10-19 19:33:53Z olli $
-// 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_RTP_PRE62x_H
-#define ACE_CONFIG_RTP_PRE62x_H
-#include /**/ "ace/pre.h"
-#include /**/ "ace/config-qnx-rtp-common.h"
-
-/////////////////////////////////////////////////////////////////
-// 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
-// Although ACE does have alloca() on this compiler/platform combination, it is
-// disabled by default since it can be dangerous. Uncomment the following line
-// if you ACE to use it.
-//#define ACE_HAS_ALLOCA
-#define ACE_HAS_ALLOCA_H
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-#define ACE_HAS_CLOCK_GETTIME
-#define ACE_HAS_CLOCK_SETTIME
-#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_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_SOCKADDR_IN_SIN_LEN
-// #define ACE_HAS_SIZET_SOCKET_LEN
-#define ACE_HAS_SOCKLEN_T
-#define ACE_HAS_SSIZE_T
-#define ACE_HAS_STRINGS
-#define ACE_HAS_SVR4_GETTIMEOFDAY
-#define ACE_HAS_TERMIOS
-#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_CONDATTR_PSHARED
-#define ACE_LACKS_CONST_TIMESPEC_PTR
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF
-#define ACE_LACKS_MADVISE
-#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_RWLOCK_T
-#define ACE_LACKS_SBRK
-#define ACE_LACKS_SEEKDIR
-#define ACE_LACKS_SO_SNDBUF
-#define ACE_LACKS_SO_RCVBUF
-#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_STREAM_MODULES
-#define ACE_LACKS_STRRECVFD
-#define ACE_LACKS_SYSCALL
-#define ACE_LACKS_SYS_MSG_H
-#define ACE_LACKS_SYSV_SHMEM
-#define ACE_LACKS_ALPHASORT
-//#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_FD_MASK
-#define ACE_LACKS_NFDBITS
-
-#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_TOWUPPER
-#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
-
-#define ACE_LACKS_ACE_IOSTREAM
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CONFIG_RTP_PRE62x_H */
diff --git a/dep/acelite/ace/config-qnx-rtp.h b/dep/acelite/ace/config-qnx-rtp.h
deleted file mode 100644
index 02ee89bc5ef..00000000000
--- a/dep/acelite/ace/config-qnx-rtp.h
+++ /dev/null
@@ -1,25 +0,0 @@
-// -*- C++ -*-
-// $Id: config-qnx-rtp.h 91743 2010-09-13 18:24:51Z johnnyw $
-// 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.
-// This header is intended to switch between configuration for
-// various NTO versions.
-#ifndef ACE_CONFIG_QNX_RTP_H
-#define ACE_CONFIG_QNX_RTP_H
-#include /**/ "ace/pre.h"
-
-#include <sys/neutrino.h>
-#if !defined(_NTO_VERSION)
-# error "Could not detect QNX version from macro _NTO_VERSION"
-#else
-# define ACE_NTO_VERS _NTO_VERSION
-# if ACE_NTO_VERS < 620
-# include /**/ "ace/config-qnx-rtp-pre62x.h"
-# else
-# include /**/ "ace/config-qnx-rtp-62x.h"
-# endif
-#endif
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CONFIG_QNX_RTP_H */
diff --git a/dep/acelite/ace/config-qnx-rtp-62x.h b/dep/acelite/ace/config-qnx.h
index 7fa7514a1c8..73353d4ffa7 100644
--- a/dep/acelite/ace/config-qnx-rtp-62x.h
+++ b/dep/acelite/ace/config-qnx.h
@@ -1,12 +1,43 @@
// -*- C++ -*-
-// $Id: config-qnx-rtp-62x.h 87167 2009-10-19 19:33:53Z olli $
-// The following configuration file is designed to work for QNX RTP 621
+// $Id: config-qnx.h 94293 2011-07-01 08:47:39Z mcorino $
+// 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_QNX_RTP_62x_H
-#define ACE_CONFIG_QNX_RTP_62x_H
+// RTP at http://get.qnx.com.
+// This header is intended to switch between configuration for
+// various NTO versions.
+#ifndef ACE_CONFIG_QNX_H
+#define ACE_CONFIG_QNX_H
#include /**/ "ace/pre.h"
-#include /**/ "ace/config-qnx-rtp-common.h"
+
+#include <sys/neutrino.h>
+#if !defined(_NTO_VERSION)
+# error "Could not detect QNX version from macro _NTO_VERSION"
+#endif
+
+#define _POSIX_C_SOURCE 199506
+
+// The following defines the Neutrino compiler.
+// gcc should know to call g++ as necessary
+#ifdef __GNUC__
+# define ACE_CC_NAME ACE_TEXT ("gcc")
+#else
+# define ACE_CC_NAME ACE_TEXT ("QNX-RTP compiler ??")
+#endif
+
+#include "ace/config-g++-common.h"
+
+// /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
+
+// At least qnx 6.3.2 uses a void return for unsetenv
+// This assumes that older versions do too.
+#define ACE_HAS_VOID_UNSETENV
/////////////////////////////////////////////////////////////////
// Definition of the features that are available.
@@ -30,10 +61,8 @@
#define ACE_HAS_DIRENT
#define ACE_HAS_GETPAGESIZE
#define ACE_HAS_GETIFADDRS
-// 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_IP_MULTICAST
#define ACE_HAS_MSG
#define ACE_HAS_MT_SAFE_MKTIME
@@ -42,7 +71,6 @@
#define ACE_HAS_NONCONST_SWAB
#define ACE_HAS_POSIX_SEM
#define ACE_HAS_POSIX_TIME
-#define ACE_HAS_PTHREADS
#define ACE_HAS_P_READ_WRITE
#define ACE_HAS_REENTRANT_FUNCTIONS
#define ACE_HAS_SELECT_H
@@ -51,6 +79,7 @@
#define ACE_HAS_SIGISMEMBER_BUG
#define ACE_HAS_SIGWAIT
#define ACE_HAS_SIG_ATOMIC_T
+#define ACE_HAS_SIOCGIFCONF
#define ACE_HAS_SOCKADDR_IN_SIN_LEN
#define ACE_HAS_SOCKLEN_T
#define ACE_HAS_SSIZE_T
@@ -58,7 +87,6 @@
#define ACE_HAS_SVR4_DYNAMIC_LINKING
#define ACE_HAS_SVR4_GETTIMEOFDAY
#define ACE_HAS_TERMIOS
-#define ACE_HAS_THREADS
#define ACE_HAS_THREAD_SPECIFIC_STORAGE
#define ACE_HAS_THR_C_DEST
#define ACE_HAS_THR_C_FUNC
@@ -67,6 +95,23 @@
#define ACE_HAS_UCONTEXT_T
#define ACE_HAS_VOIDPTR_MMAP
#define ACE_HAS_VOIDPTR_SOCKOPT
+#define ACE_HAS_NET_IF_DL_H
+#define ACE_HAS_SYS_SIGINFO_H
+#define ACE_HAS_GETTIMEOFDAY 1
+#define ACE_HAS_GETRUSAGE 1
+#define ACE_HAS_GETRUSAGE_PROTOTYPE 1
+#define ACE_HAS_NEW_NO_H 1
+#define ACE_IOCTL_TYPE_ARG2 u_long
+#define ACE_HAS_TIMEZONE 1
+#define ACE_HAS_SOCKADDR_MSG_NAME 1
+#define ACE_HAS_SIG_C_FUNC 1
+#define ACE_HAS_SOCKADDR_IN6_SIN6_LEN 1
+#define ACE_HAS_STANDARD_CPP_LIBRARY 1
+#define ACE_HAS_STRING_CLASS 1
+#define ACE_HAS_STRSIGNAL
+#define ACE_HAS_POSITION_INDEPENDENT_POINTERS 1
+#define ACE_HAS_POSIX_NONBLOCK 1
+#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS 1
/////////////////////////////////////////////////////////////////
// Definition of the features that are not available.
@@ -76,30 +121,38 @@
#define ACE_LACKS_CONST_TIMESPEC_PTR
#define ACE_LACKS_LINEBUFFERED_STREAMBUF
#define ACE_LACKS_MADVISE
-// lacks mqueue mgr or speed-up named sem by shm emulation
-#define ACE_LACKS_NAMED_POSIX_SEM
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
// Multicast_Tests reports for NTO 621 frames from unsubscribed groups
#define ACE_LACKS_PERFECT_MULTICAST_FILTERING 1
-#define ACE_LACKS_POLL_H
-#define ACE_LACKS_PTHREAD_THR_SIGSETMASK
#define ACE_LACKS_RWLOCK_T
#define ACE_LACKS_SO_SNDBUF
#define ACE_LACKS_SO_RCVBUF
#define ACE_LACKS_STREAM_MODULES
#define ACE_LACKS_STROPTS_H
-#define ACE_LACKS_STRPTIME
#define ACE_LACKS_STRRECVFD
#define ACE_LACKS_SYSCALL
-#define ACE_LACKS_SYS_MSG_H
#define ACE_LACKS_SYSV_SHMEM
#define ACE_LACKS_SYS_SHM_H
#define ACE_LACKS_TIMESPEC_T
#define ACE_LACKS_T_ERRNO
#define ACE_LACKS_U_LONGLONG_T
-#define ACE_LACKS_ALPHASORT
-#define ACE_LACKS_FD_MASK
-#define ACE_LACKS_NFDBITS
+#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
+#define ACE_HAS_SYS_SOCKIO_H 1
+#define ACE_HAS_SYSCTL
+#define ACE_HAS_SIGACTION_CONSTP2 1
+
+#if _NTO_VERSION < 650
+# define ACE_LACKS_NFDBITS
+# define ACE_LACKS_FD_MASK
+# define ACE_LACKS_SYS_MSG_H
+# define ACE_LACKS_ALPHASORT
+# define ACE_LACKS_STRPTIME
+# define ACE_LACKS_POLL_H
+#else
+# define ACE_HAS_POLL 1
+# define ACE_HAS_WCHAR 1
+# define ACE_HAS_XPG4_MULTIBYTE_CHAR 1
+#endif
+
#define ACE_LACKS_ISCTYPE
#define ACE_LACKS_RLIMIT // QNX rlimit syscalls don't work properly with ACE.
@@ -121,11 +174,23 @@
#define ACE_LACKS_WCSICMP
#define ACE_LACKS_WCSNICMP
#define ACE_LACKS_WCSDUP
+#define ACE_LACKS_STD_WSTRING
+
+#if defined(ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
+# define ACE_HAS_THREADS
+# define ACE_HAS_PTHREADS
+# define ACE_HAS_PTHREADS_UNIX98_EXT 1
+# define ACE_LACKS_PTHREAD_THR_SIGSETMASK
+# define ACE_HAS_PTHREAD_GETCONCURRENCY
+#endif /* ACE_MT_SAFE */
+
+
// The default value of FD_SETSIZE is 32, but actually x86 NTO
// supports by default at least 1000 descriptors in fd_set.
#if defined( FD_SETSIZE )
#undef FD_SETSIZE
#endif
#define FD_SETSIZE 1000
+
#include /**/ "ace/post.h"
-#endif /* ACE_CONFIG_QNX_RTP_62x_H*/
+#endif /* ACE_CONFIG_QNX_H */
diff --git a/dep/acelite/ace/config-rtems.h b/dep/acelite/ace/config-rtems.h
index d113a1434a4..f65893cc57b 100644
--- a/dep/acelite/ace/config-rtems.h
+++ b/dep/acelite/ace/config-rtems.h
@@ -1,5 +1,5 @@
/* -*- C -*- */
-// $Id: config-rtems.h 87169 2009-10-19 20:26:55Z olli $
+// $Id: config-rtems.h 93571 2011-03-17 07:37:11Z olli $
/* The following configuration file is designed to work for RTEMS
platforms using GNU C.
@@ -56,7 +56,6 @@
#define ACE_LACKS_MKSTEMP
#define ACE_LACKS_STRDUP
#define ACE_LACKS_STRTOK_R
-#define ACE_LACKS_RAND_REENTRANT_FUNCTIONS
#define ACE_LACKS_REALPATH
#define ACE_LACKS_TEMPNAM
#define ACE_LACKS_TZSET
@@ -76,7 +75,6 @@
# define ACE_HAS_PTHREAD_SCHEDPARAM
# define ACE_LACKS_THREAD_PROCESS_SCOPING
#else
-# define ACE_HAS_POSIX_GETPWNAM_R
# define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
#endif
diff --git a/dep/acelite/ace/config-sco-5.0.0-nothread.h b/dep/acelite/ace/config-sco-5.0.0-nothread.h
deleted file mode 100644
index 259bd55c273..00000000000
--- a/dep/acelite/ace/config-sco-5.0.0-nothread.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/* -*- C++ -*- */
-// $Id: config-sco-5.0.0-nothread.h 87268 2009-10-29 21:06:06Z olli $
-
-#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/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/dep/acelite/ace/config-sco-5.0.0.h b/dep/acelite/ace/config-sco-5.0.0.h
deleted file mode 100644
index 61b68213bc1..00000000000
--- a/dep/acelite/ace/config-sco-5.0.0.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/* -*- C++ -*- */
-// $Id: config-sco-5.0.0.h 87167 2009-10-19 19:33:53Z olli $
-
-#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_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
-
-// 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_HAS_SVR4_DYNAMIC_LINKING
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-
-// Platform has POSIX terminal interface.
-#define ACE_HAS_TERMIOS
-
-// Compiler/platform contains the <sys/syscall.h> file.
-//#define ACE_HAS_SYS_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
-
-// 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
-
-#define ACE_HAS_TIMEZONE_GETTIMEOFDAY
-
-// 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
-
-#define ACE_HAS_SIGINFO_T
-#define ACE_HAS_UCONTEXT_T
-
-#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/dep/acelite/ace/config-sunos5.10.h b/dep/acelite/ace/config-sunos5.10.h
index df6f095fec9..1ba1e19a184 100644
--- a/dep/acelite/ace/config-sunos5.10.h
+++ b/dep/acelite/ace/config-sunos5.10.h
@@ -1,5 +1,5 @@
/* -*- C++ -*- */
-// $Id: config-sunos5.10.h 89905 2010-04-16 13:04:47Z johnnyw $
+// $Id: config-sunos5.10.h 95428 2012-01-11 15:42:20Z sma $
// The following configuration file is designed to work for SunOS 5.10
// (Solaris 10) platforms using the SunC++ 5.x (Sun Studio 8-10), or g++
@@ -38,15 +38,10 @@
#endif
// Solaris 10 introduced printf() modifiers for [s]size_t types.
-#if defined (ACE_SSIZE_T_FORMAT_SPECIFIER_ASCII)
-# undef ACE_SSIZE_T_FORMAT_SPECIFIER_ASCII
-# define ACE_SSIZE_T_FORMAT_SPECIFIER_ASCII "%zd"
-#endif /* ACE_SSIZE_T_FORMAT_SPECIFIER_ASCII */
-
-#if defined (ACE_SIZE_T_FORMAT_SPECIFIER_ASCII)
-# undef ACE_SIZE_T_FORMAT_SPECIFIER_ASCII
-# define ACE_SIZE_T_FORMAT_SPECIFIER_ASCII "%zu"
-#endif /* ACE_SIZE_T_FORMAT_SPECIFIER_ASCII */
+#undef ACE_SSIZE_T_FORMAT_SPECIFIER_ASCII
+#define ACE_SSIZE_T_FORMAT_SPECIFIER_ASCII "%zd"
+#undef ACE_SIZE_T_FORMAT_SPECIFIER_ASCII
+#define ACE_SIZE_T_FORMAT_SPECIFIER_ASCII "%zu"
// Solaris 10 offers wcstoll() and wcstoull()
#if defined (ACE_LACKS_WCSTOLL)
diff --git a/dep/acelite/ace/config-sunos5.4-g++.h b/dep/acelite/ace/config-sunos5.4-g++.h
index a678389e78d..55fc6579c24 100644
--- a/dep/acelite/ace/config-sunos5.4-g++.h
+++ b/dep/acelite/ace/config-sunos5.4-g++.h
@@ -1,5 +1,5 @@
/* -*- C++ -*- */
-// $Id: config-sunos5.4-g++.h 87268 2009-10-29 21:06:06Z olli $
+// $Id: config-sunos5.4-g++.h 93573 2011-03-17 07:53:03Z olli $
// The following configuration file is designed to work for SunOS 5.4
// platforms using the GNU g++ compiler.
@@ -34,9 +34,6 @@
// Sun has the wrong prototype for sendmsg.
#define ACE_HAS_NONCONST_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_SYS_SYSTEMINFO_H
#define ACE_HAS_SYSV_SYSINFO
diff --git a/dep/acelite/ace/config-sunos5.4-sunc++-4.x.h b/dep/acelite/ace/config-sunos5.4-sunc++-4.x.h
index e4bc8239125..4c7a3a63923 100644
--- a/dep/acelite/ace/config-sunos5.4-sunc++-4.x.h
+++ b/dep/acelite/ace/config-sunos5.4-sunc++-4.x.h
@@ -1,5 +1,5 @@
/* -*- C++ -*- */
-// $Id: config-sunos5.4-sunc++-4.x.h 91285 2010-08-05 08:29:30Z johnnyw $
+// $Id: config-sunos5.4-sunc++-4.x.h 93573 2011-03-17 07:53:03Z olli $
// The following configuration file is designed to work for SunOS 5.4
// platforms using the SunC++ 4.0.x compiler.
@@ -26,9 +26,6 @@
// Sun has the wrong prototype for sendmsg.
#define ACE_HAS_NONCONST_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_SYS_SYSTEMINFO_H
#define ACE_HAS_SYSV_SYSINFO
diff --git a/dep/acelite/ace/config-sunos5.5.h b/dep/acelite/ace/config-sunos5.5.h
index d3279b9d3b6..30e48da6d59 100644
--- a/dep/acelite/ace/config-sunos5.5.h
+++ b/dep/acelite/ace/config-sunos5.5.h
@@ -1,10 +1,10 @@
/* -*- C++ -*- */
-// $Id: config-sunos5.5.h 92102 2010-09-30 08:14:15Z johnnyw $
+// $Id: config-sunos5.5.h 94454 2011-09-08 17:36:56Z johnnyw $
// 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
+// * g++
// * Green Hills 1.8.8 and later
#ifndef ACE_CONFIG_H
@@ -24,24 +24,10 @@
// SunOS 5.5 does not provide getloadavg()
#define ACE_LACKS_GETLOADAVG
-// Some SunOS releases define _POSIX_PTHREAD_SEMANTICS automatically.
-// We need to be check if the user has manually defined the macro before
-// including <sys/feature_tests.h>.
-#if defined (_POSIX_PTHREAD_SEMANTICS)
-# define ACE_HAS_POSIX_PTHREAD_SEMANTICS
-#endif /* _POSIX_PTHREAD_SEMANTICS */
-
// Before we do anything, we should include <sys/feature_tests.h> to
// ensure that things are set up properly.
#include <sys/feature_tests.h>
-// Some SunOS releases define _POSIX_PTHREAD_SEMANTICS automatically.
-// We need to undef if the macro is set and not defined by the user.
-#if defined (_POSIX_PTHREAD_SEMANTICS) && \
- !defined (ACE_HAS_POSIX_PTHREAD_SEMANTICS)
-# undef _POSIX_PTHREAD_SEMANTICS
-#endif /* _POSIX_PTHREAD_SEMANTICS && !ACE_HAS_POSIX_PTHREAD_SEMANTICS */
-
// Sun has the posix defines so let this file sort out what Sun delivers
#include "ace/config-posix.h"
@@ -125,33 +111,15 @@
# 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>
+# if (__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ <= 3))
+# define ACE_LACKS_STD_WSTRING 1
+# endif
- // IOStream_Test never halts with Green Hills 1.8.9.
-# define ACE_LACKS_ACE_IOSTREAM
-
-#else /* ! __SUNPRO_CC && ! __GNUG__ && ! ghs */
+#else /* ! __SUNPRO_CC && ! __GNUG__ */
# ifdef __cplusplus /* Let it slide for C compilers. */
# error unsupported compiler in ace/config-sunos5.5.h
# endif /* __cplusplus */
-#endif /* ! __SUNPRO_CC && ! __GNUG__ && ! ghs */
+#endif /* ! __SUNPRO_CC && ! __GNUG__ */
#if !defined (__ACE_INLINE__)
// @note If you have link problems with undefined inline template
@@ -282,12 +250,6 @@
# define ACE_HAS_CHARPTR_SHMDT
#endif
-// 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 (ACE_MT_SAFE) || (ACE_MT_SAFE == 1)
#if defined (_REENTRANT) || \
(defined (_POSIX_C_SOURCE) && (_POSIX_C_SOURCE - 0 >= 199506L)) || \
diff --git a/dep/acelite/ace/config-sunos5.6.h b/dep/acelite/ace/config-sunos5.6.h
index 958e019cd1b..e7f935c753e 100644
--- a/dep/acelite/ace/config-sunos5.6.h
+++ b/dep/acelite/ace/config-sunos5.6.h
@@ -1,5 +1,5 @@
/* -*- C++ -*- */
-// $Id: config-sunos5.6.h 91685 2010-09-09 09:35:14Z johnnyw $
+// $Id: config-sunos5.6.h 93117 2011-01-20 12:11:28Z mcorino $
// The following configuration file is designed to work for SunOS 5.6
// platforms using the SunC++ 4.x or g++ compilers.
@@ -78,7 +78,6 @@
// 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
diff --git a/dep/acelite/ace/config-sunos5.7.h b/dep/acelite/ace/config-sunos5.7.h
index b01b0d47708..720fbbd430a 100644
--- a/dep/acelite/ace/config-sunos5.7.h
+++ b/dep/acelite/ace/config-sunos5.7.h
@@ -1,5 +1,5 @@
/* -*- C++ -*- */
-// $Id: config-sunos5.7.h 91581 2010-08-31 13:18:11Z shuston $
+// $Id: config-sunos5.7.h 93543 2011-03-14 08:25:46Z johnnyw $
// 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.
@@ -25,17 +25,10 @@
// SunOS 5.7 has getloadavg()
#undef ACE_LACKS_GETLOADAVG
-#if 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 (__SUNPRO_CC) && (__SUNPRO_CC <= 0x530)
+#if defined (__SUNPRO_CC) && (__SUNPRO_CC <= 0x530)
// Wide character methods are in std:: when using SunCC 5.3
# define ACE_WCHAR_IN_STD_NAMESPACE
-#endif /* __GNUG__ || ghs */
+#endif
// SunOS 5.7 supports SCHED_FIFO and SCHED_RR, as well as SCHED_OTHER.
#undef ACE_HAS_ONLY_SCHED_OTHER
diff --git a/dep/acelite/ace/config-tandem-nsk-mips-v2.h b/dep/acelite/ace/config-tandem-nsk-mips-v2.h
deleted file mode 100644
index ff2111cf56e..00000000000
--- a/dep/acelite/ace/config-tandem-nsk-mips-v2.h
+++ /dev/null
@@ -1,384 +0,0 @@
-// -*- C++ -*-
-//
-// $Id: config-tandem-nsk-mips-v2.h 91685 2010-09-09 09:35:14Z johnnyw $
-
-#ifndef ACE_CONFIG_NSK_H
-#define ACE_CONFIG_NSK_H
-
-#include /**/ "ace/pre.h"
-
-// The following configuration file contains defines for Tandem NSK
-// platform, MIPS processor, version 2 C++ compiler.
-
-
-//=========================================================================
-// Tandem NSK specific parts
-//=========================================================================
-
-
-// Disable pthread renaming of symbols such as "open" and "close"
-#define _CMA_NOWRAPPERS_ 1
-
-// Get Handle_Set.cpp to generate correct bit operations for NSK platform
-#define ACE_TANDEM_NSK_BIT_ORDER
-
-// Use facilities provided by T1248 version of pthreads.
-// (If not defined, will use old version of pthreads.)
-#define ACE_TANDEM_T1248_PTHREADS
-
-// Use all available T1248 thread aware wrapper functions for providing
-// non-blocking I/O.
-// [@note this causes a significant performance degradation]
-//#define ACE_TANDEM_T1248_PTHREADS_ALL_IO_WRAPPERS
-
-
-// Need this include here because some symbols defined by pthreads
-// (e.g. timespec_t) are needed before spthread.h is normally included
-// by ACE
-#ifdef ACE_TANDEM_T1248_PTHREADS
-#include <spthread.h>
-#else
-#include "pthread.h"
-#include "dce/cma_dispatch_coop.h"
-#endif
-
-// The following #defines are hacks to get around things
-// that seem to be missing or different in Tandem land
-#define NSIG 32 // missing from Signal.h
- // note: on nsk TNS/R there is room in
- // sigset_t for 128 signals but those
- // above 31 are not valid.
-#define MAXNAMLEN 248 // missing from dirent.h
-#define ERRMAX 4218 // from errno.h
-
-// Following seems to be missing from G06.20 version of standard
-// pthreads includes (it appeared in older version of standard pthreads)
-// (SCHED_FIFO (aka cma_c_sched_fifo) used in Dynamic_Priority_Test)
-#ifdef ACE_TANDEM_T1248_PTHREADS
-typedef enum CMA_T_SCHED_POLICY {
- cma_c_sched_fifo = 0,
- cma_c_sched_rr = 1,
- cma_c_sched_throughput = 2,
- cma_c_sched_background = 3,
- cma_c_sched_ada_low = 4
- } cma_t_sched_policy;
-#endif
-
-// T1248 doesn't define these constants. They're defined in spt/cma.h
-// (formerly dce/cma.h), but this header is not included or provided
-// by T1248 G07-AAL.
-#define cma_c_prio_fifo_min 16
-#define cma_c_prio_fifo_mid 24
-#define cma_c_prio_fifo_max 31
-#define cma_c_prio_rr_min 16
-#define cma_c_prio_rr_mid 24
-#define cma_c_prio_rr_max 31
-#define cma_c_prio_through_min 8
-#define cma_c_prio_through_mid 12
-#define cma_c_prio_through_max 15
-#define cma_c_prio_back_min 1
-#define cma_c_prio_back_mid 4
-#define cma_c_prio_back_max 7
-
-// Enable NSK Pluggable Protocols
-#define TAO_HAS_NSKPW 1
-#define TAO_HAS_NSKFS 1
-
-//=========================================================================
-// Platform specific parts
-//=========================================================================
-
-// Platform lacks getpwnam_r() methods (e.g., SGI 6.2).
-#define ACE_LACKS_PWD_REENTRANT_FUNCTIONS
-
-// Platform/compiler lacks {get,set}rlimit() function
-#define ACE_LACKS_RLIMIT
-
-// The platform doesn't have mmap(2)
-#define ACE_LACKS_MMAP
-
-// Platform lacks streambuf "linebuffered ()". [C++ iostream]
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF
-
-// Platform supports recvmsg and sendmsg
-#define ACE_HAS_MSG
-
-// Platform defines ACE_HAS_MSG, but lacks msg_accrights{,len}.
-#define ACE_LACKS_MSG_ACCRIGHTS
-
-// Platform supports sigsuspend()
-#define ACE_HAS_SIGSUSPEND
-
-// 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
-
-// OS/compiler uses size_t * rather than int * for socket lengths
-#define ACE_HAS_SIZET_SOCKET_LEN
-
-// OS/compiler uses void * arg 4 setsockopt() rather than const char *
-#define ACE_HAS_VOIDPTR_SOCKOPT
-
-// The platform doesn't have mprotect(2)
-#define ACE_LACKS_MPROTECT
-
-// Platform lacks msync()
-#define ACE_LACKS_MSYNC
-
-// Platform does not support reentrant netdb functions (getprotobyname_r,
-// getprotobynumber_r, gethostbyaddr_r, gethostbyname_r, getservbyname_r).
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS Platform does not support
-
-// Platform lacks madvise()
-#define ACE_LACKS_MADVISE
-
-// Platform lacks pri_t
-#define ACE_LACKS_PRI_T
-
-// Platform lacks a working sbrk()
-#define ACE_LACKS_SBRK
-
-// Platform doesn't have syscall() prototype
-#define ACE_LACKS_SYSCALL
-
-// Platform lacks the inet_aton() function.
-#define ACE_LACKS_INET_ATON
-
-// Compiler/platform has Dirent iterator functions
-#define ACE_HAS_DIRENT
-
-// Platform uses ACE_HAS_DIRENT but does not have readdir_r()
-#define ACE_LACKS_READDIR_R
-
-// Platform supports getpagesize() call (otherwise,
-// ACE_PAGE_SIZE must be defined)
-#define ACE_HAS_GETPAGESIZE
-
-// Platform supports IP multicast
-#define ACE_HAS_IP_MULTICAST
-
-// Platform's select() uses non-const timeval*
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-
-// Platform supports POSIX O_NONBLOCK semantics
-#define ACE_HAS_POSIX_NONBLOCK
-
-// Platform lacks named POSIX semaphores
-#define ACE_LACKS_NAMED_POSIX_SEM
-
-// Platform has support for multi-byte character support compliant
-// with the XPG4 Worldwide Portability Interface wide-character
-// classification.
-#define ACE_HAS_XPG4_MULTIBYTE_CHAR
-
-// No wcsstr function available for this compiler
-#define ACE_LACKS_WCSSTR
-
-// No wctype.h available for this compiler
-#define ACE_LACKS_WCTYPE_H
-
-// Platform supports the POSIX regular expression library.
-// [Note Tandem NSK platform does have regular expresson support but it
-// does not follow the assumptions made by ACE. To use it would need
-// to make some ACE modifications.]
-//#define ACE_HAS_REGEX
-
-// Platform doesn't have truncate()
-#define ACE_LACKS_TRUNCATE
-
-// Platform lacks readers/writer locks.
-#define ACE_LACKS_RWLOCK_T
-
-// Compiler's 'new' throws exception on failure (ANSI C++ behavior).
-#define ACE_NEW_THROWS_EXCEPTIONS
-
-// Optimize ACE_Handle_Set::count_bits for select() operations (common
-// case)
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-// Platform lacks setreuid()
-#define ACE_LACKS_SETREUID
-
-// Platform lacks setregid()
-#define ACE_LACKS_SETREGID
-
-// Compile using multi-thread libraries
-#define ACE_MT_SAFE 1
-
-
-
-// Platform supports System V IPC
-#define ACE_HAS_SYSV_IPC
-
-#define ACE_LACKS_SO_SNDBUF
-#define ACE_LACKS_SO_RCVBUF
-
-// Platform lacks the socketpair() call
-#define ACE_LACKS_SOCKETPAIR
-
-// Platform limits the maximum socket message size.
-#define ACE_HAS_SOCK_BUF_SIZE_MAX
-
-// hrtime_t is a basic type that doesn't require ACE_U64_TO_U32 conversion
-#define ACE_HRTIME_T_IS_BASIC_TYPE
-
-// printf format specifiers for 64 bit integers
-# define ACE_UINT64_FORMAT_SPECIFIER_ASCII "%Ld"
-# define ACE_INT64_FORMAT_SPECIFIER_ASCII "%Ld"
-
-//=========================================================================
-// Threads specific parts
-//=========================================================================
-
-// Platform supports threads
-#define ACE_HAS_THREADS
-
-// 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.
-#define ACE_HAS_PTHREADS
-
-// Standard pthreads supports only SCHED_FIFO
-#define ACE_HAS_ONLY_SCHED_FIFO
-
-// Compiler/platform has thread-specific storage
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-
-// Platform has no implementation of pthread_condattr_setpshared(),
-// even though it supports pthreads!
-#define ACE_LACKS_CONDATTR_PSHARED
-
-// pthread_cond_timedwait does *not* reset the time argument when the
-// lock is acquired.
-#define ACE_LACKS_COND_TIMEDWAIT_RESET
-
-// Platform lacks pthread_attr_setsched()
-#define ACE_LACKS_SETSCHED
-
-// Platform has pthread_mutexattr_setkind_np().
-#define ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP
-
-// Platform lacks pthread_mutexattr_setpshared().
-#define ACE_LACKS_MUTEXATTR_PSHARED
-
-// Platform lacks pthread_attr_setscope()
-#define ACE_LACKS_THREAD_PROCESS_SCOPING
-
-// Platform lacks pthread_attr_setstackaddr
-#define ACE_LACKS_PTHREAD_ATTR_SETSTACKADDR
-
-// Defining ACE_HAS_UCONTEXT_T since G06.21 version of spthreads has
-// a definition for it.
-#ifdef ACE_TANDEM_T1248_PTHREADS
-#define ACE_HAS_UCONTEXT_T
-#endif
-
-#define ACE_LACKS_FD_MASK
-
-//=========================================================================
-// Include file characteristics
-//=========================================================================
-
-// Compiler/platform contains the <sys/syscall.h> file.
-#define ACE_HAS_SYS_SYSCALL_H
-
-// Platform lacks malloc.h
-#define ACE_LACKS_MALLOC_H
-
-// Platform lacks the siginfo.h include file
-#define ACE_LACKS_SIGINFO_H
-
-// Platform doesn't define struct strrecvfd.
-#define ACE_LACKS_STRRECVFD
-
-// Platform lacks the ucontext.h file
-#define ACE_LACKS_UCONTEXT_H
-
-// Prototypes for both signal() and struct sigaction are consistent.
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-// Platform supports the POSIX struct timespec type
-#define ACE_HAS_POSIX_TIME
-
-// Platform/compiler supports timezone * as second parameter to gettimeofday()
-#define ACE_HAS_TIMEZONE_GETTIMEOFDAY
-
-// Platform has <strings.h> (which contains bzero() prototype)
-#define ACE_HAS_STRINGS 1
-
-
-// OS/compiler omits the const from the iovec parameter in the
-// writev() prototype.
-#define ACE_HAS_NONCONST_WRITEV
-
-// Platform lacks <stdint.h>
-#define ACE_LACKS_STDINT_H
-
-// Platform lacks <inttypes.h>
-#define ACE_LACKS_INTTYPES_H
-
-// Platform lacks <sys/select.h>
-#define ACE_LACKS_SYS_SELECT_H
-
-// Platform lacks <dlfcn.h>
-#define ACE_LACKS_DLFCN_H
-
-// Platform lacks <semaphore.h>
-#define ACE_LACKS_SEMAPHORE_H
-
-// Platform lacks <poll.h>
-#define ACE_LACKS_POLL_H
-
-//=========================================================================
-// Compiler specific parts
-//=========================================================================
-
-// Compiler/platform has correctly prototyped header files
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-// Compiler/platform does not support the unsigned long long datatype.
-#define ACE_LACKS_LONGLONG_T
-
-// Compiler supports the ssize_t typedef
-#define ACE_HAS_SSIZE_T
-
-// Platform/compiler supports Standard C++ Library
-#define ACE_HAS_STANDARD_CPP_LIBRARY 0
-
-// Compiler's template mechanism must see source code (i.e.,
-// .cpp files).
-#define ACE_TEMPLATES_REQUIRE_SOURCE
-
-// Platform has its standard c++ library in the namespace std.
-#define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-
-// Compiler doesn't support static data member templates
-#define ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES
-
-// Platform lacks "signed char" type (broken!)
-// Following will not be needed if use standard c library (G06.20 and later)
-#define ACE_LACKS_SIGNED_CHAR
-
-//=========================================================================
-// Build options
-//=========================================================================
-
-// For debugging problems in os calls (but this doesn't work too well
-// since output is not interleaved properly with output from ACE_TRACE
-//# define ACE_OS_TRACE(X) ::printf(X)
-
-// Uncomment the following if timed message blocks are needed (e.g.
-// for Dynamic_Priority_Test. Otherwise leave this disabled because
-// enabling it adds overhead to message blocks and timed message blocks
-// are "rarely used."
-//#define ACE_HAS_TIMED_MESSAGE_BLOCKS
-
-// Uncomment the following if tokens library is needed.
-//#define ACE_HAS_TOKENS_LIBRARY
-
-#include /**/ "ace/post.h"
-
-#endif /* ACE_CONFIG_NSK_H */
diff --git a/dep/acelite/ace/config-tandem-nsk-mips-v3.h b/dep/acelite/ace/config-tandem-nsk-mips-v3.h
deleted file mode 100644
index c037bed4ec8..00000000000
--- a/dep/acelite/ace/config-tandem-nsk-mips-v3.h
+++ /dev/null
@@ -1,454 +0,0 @@
-// -*- C++ -*-
-//
-// $Id: config-tandem-nsk-mips-v3.h 91685 2010-09-09 09:35:14Z johnnyw $
-
-
-#ifndef ACE_CONFIG_NSK_H
-#define ACE_CONFIG_NSK_H
-
-#include /**/ "ace/pre.h"
-
-// The following configuration file contains defines for Tandem NSK
-// platform, MIPS processor, version 3 C++ compiler.
-
-
-//=========================================================================
-// Tandem NSK specific parts
-//=========================================================================
-
-
-// Disable pthread renaming of symbols such as "open" and "close"
-#define _CMA_NOWRAPPERS_ 1
-
-// Get Handle_Set.cpp to generate correct bit operations for NSK platform
-#define ACE_TANDEM_NSK_BIT_ORDER
-
-// Use facilities provided by T1248 version of pthreads.
-// (If not defined, will use old version of pthreads.)
-#define ACE_TANDEM_T1248_PTHREADS
-
-// Use all available T1248 thread aware wrapper functions for providing
-// non-blocking I/O.
-// [Note: this causes a significant performance degradation]
-//#define ACE_TANDEM_T1248_PTHREADS_ALL_IO_WRAPPERS
-
-
-// Need this include here because some symbols defined by pthreads
-// (e.g. timespec_t) are needed before spthread.h is normally included
-// by ACE
-#ifdef ACE_TANDEM_T1248_PTHREADS
-#include <spthread.h>
-#else
-#include "pthread.h"
-#include "dce/cma_dispatch_coop.h"
-#endif
-
-// The following #defines are hacks to get around things
-// that seem to be missing or different in Tandem land
-#define NSIG 32 // missing from Signal.h
- // note: on nsk TNS/R there is room in
- // sigset_t for 128 signals but those
- // above 31 are not valid.
-#define MAXNAMLEN 248 // missing from dirent.h
-#define ERRMAX 4218 // from errno.h
-
-// Following seems to be missing from G06.20 version of standard
-// pthreads includes (it appeared in older version of standard pthreads)
-// (SCHED_FIFO (aka cma_c_sched_fifo) used in Dynamic_Priority_Test)
-#ifdef ACE_TANDEM_T1248_PTHREADS
-typedef enum CMA_T_SCHED_POLICY {
- cma_c_sched_fifo = 0,
- cma_c_sched_rr = 1,
- cma_c_sched_throughput = 2,
- cma_c_sched_background = 3,
- cma_c_sched_ada_low = 4
- } cma_t_sched_policy;
-#endif
-
-// T1248 doesn't define these constants. They're defined in spt/cma.h
-// (formerly dce/cma.h), but this header is not included or provided
-// by T1248 G07-AAL.
-#define cma_c_prio_fifo_min 16
-#define cma_c_prio_fifo_mid 24
-#define cma_c_prio_fifo_max 31
-#define cma_c_prio_rr_min 16
-#define cma_c_prio_rr_mid 24
-#define cma_c_prio_rr_max 31
-#define cma_c_prio_through_min 8
-#define cma_c_prio_through_mid 12
-#define cma_c_prio_through_max 15
-#define cma_c_prio_back_min 1
-#define cma_c_prio_back_mid 4
-#define cma_c_prio_back_max 7
-
-// Enable NSK Pluggable Protocols
-#define TAO_HAS_NSKPW 1
-#define TAO_HAS_NSKFS 1
-
-//=========================================================================
-// Platform specific parts
-//=========================================================================
-
-// Platform lacks getpwnam_r() methods (e.g., SGI 6.2).
-#define ACE_LACKS_PWD_REENTRANT_FUNCTIONS
-
-// Platform/compiler lacks {get,set}rlimit() function
-#define ACE_LACKS_RLIMIT
-
-// The platform doesn't have mmap(2)
-#define ACE_LACKS_MMAP
-
-// Platform lacks streambuf "linebuffered ()". [C++ iostream]
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF
-
-// Platform supports recvmsg and sendmsg
-#define ACE_HAS_MSG
-
-// Platform defines ACE_HAS_MSG, but lacks msg_accrights{,len}.
-#define ACE_LACKS_MSG_ACCRIGHTS
-
-// Platform supports sigsuspend()
-#define ACE_HAS_SIGSUSPEND
-
-// 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
-
-// OS/compiler uses size_t * rather than int * for socket lengths
-#define ACE_HAS_SIZET_SOCKET_LEN
-
-// OS/compiler uses void * arg 4 setsockopt() rather than const char *
-#define ACE_HAS_VOIDPTR_SOCKOPT
-
-// The platform doesn't have mprotect(2)
-#define ACE_LACKS_MPROTECT
-
-// Platform lacks msync()
-#define ACE_LACKS_MSYNC
-
-// Platform does not support reentrant netdb functions (getprotobyname_r,
-// getprotobynumber_r, gethostbyaddr_r, gethostbyname_r, getservbyname_r).
-#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS Platform does not support
-
-// Platform lacks madvise()
-#define ACE_LACKS_MADVISE
-
-// Platform lacks pri_t
-#define ACE_LACKS_PRI_T
-
-// Platform lacks a working sbrk()
-#define ACE_LACKS_SBRK
-
-// Platform doesn't have syscall() prototype
-#define ACE_LACKS_SYSCALL
-
-// Platform lacks the inet_aton() function.
-#define ACE_LACKS_INET_ATON
-
-// Compiler/platform has Dirent iterator functions
-#define ACE_HAS_DIRENT
-
-// Platform uses ACE_HAS_DIRENT but does not have readdir_r()
-#define ACE_LACKS_READDIR_R
-
-// Platform supports getpagesize() call (otherwise,
-// ACE_PAGE_SIZE must be defined)
-#define ACE_HAS_GETPAGESIZE
-
-// Platform supports IP multicast
-#define ACE_HAS_IP_MULTICAST
-
-// Platform's select() uses non-const timeval*
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-
-// Platform supports POSIX O_NONBLOCK semantics
-#define ACE_HAS_POSIX_NONBLOCK
-
-// Platform lacks named POSIX semaphores
-#define ACE_LACKS_NAMED_POSIX_SEM
-
-// Platform has support for multi-byte character support compliant
-// with the XPG4 Worldwide Portability Interface wide-character
-// classification.
-#define ACE_HAS_XPG4_MULTIBYTE_CHAR
-
-// No wcsstr function available for this compiler
-#define ACE_LACKS_WCSSTR
-
-// No wctype.h available for this compiler
-#define ACE_LACKS_WCTYPE_H
-
-// Platform supports the POSIX regular expression library.
-// [Note Tandem NSK platform does have regular expresson support but it
-// does not follow the assumptions made by ACE. To use it would need
-// to make some ACE modifications.]
-//#define ACE_HAS_REGEX
-
-// Platform doesn't have truncate()
-#define ACE_LACKS_TRUNCATE
-
-// Platform lacks readers/writer locks.
-#define ACE_LACKS_RWLOCK_T
-
-// Compiler's 'new' throws exception on failure (ANSI C++ behavior).
-#define ACE_NEW_THROWS_EXCEPTIONS
-
-// Optimize ACE_Handle_Set::count_bits for select() operations (common
-// case)
-#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-// Platform lacks setreuid()
-#define ACE_LACKS_SETREUID
-
-// Platform lacks setregid()
-#define ACE_LACKS_SETREGID
-
-// Compile using multi-thread libraries
-#define ACE_MT_SAFE 1
-
-
-
-// Platform supports System V IPC
-#define ACE_HAS_SYSV_IPC
-
-#define ACE_LACKS_SO_SNDBUF
-#define ACE_LACKS_SO_RCVBUF
-
-// Platform lacks the socketpair() call
-#define ACE_LACKS_SOCKETPAIR
-
-// Platform limits the maximum socket message size.
-#define ACE_HAS_SOCK_BUF_SIZE_MAX
-
-// hrtime_t is a basic type that doesn't require ACE_U64_TO_U32 conversion
-#define ACE_HRTIME_T_IS_BASIC_TYPE
-
-// printf format specifiers for 64 bit integers
-# define ACE_UINT64_FORMAT_SPECIFIER_ASCII "%Ld"
-# define ACE_INT64_FORMAT_SPECIFIER_ASCII "%Ld"
-
-// Use larger default buffer size for ease of interoperability
-#define ACE_DEFAULT_CDR_BUFSIZE 4096
-
-// Size of a wchar
-#define ACE_SIZEOF_WCHAR 2
-
-// Platform lacks time typedefs
-#define ACE_LACKS_SUSECONDS_T
-#define ACE_LACKS_USECONDS_T
-
-// Platform lacks setegid() and seteuid()
-#define ACE_LACKS_SETEGID
-#define ACE_LACKS_SETEUID
-
-// Platform lacks vsnprintf()
-#define ACE_LACKS_VSNPRINTF
-
-// Platform lacks log2()
-#define ACE_LACKS_LOG2
-
-// Platform lacks alphasort()
-#define ACE_LACKS_ALPHASORT
-
-#define ACE_LACKS_FD_MASK
-#define ACE_LACKS_NFDBITS
-
-//=========================================================================
-// Threads specific parts
-//=========================================================================
-
-// Platform supports threads
-#define ACE_HAS_THREADS
-
-// 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.
-#define ACE_HAS_PTHREADS
-
-// Standard pthreads supports only SCHED_FIFO
-#define ACE_HAS_ONLY_SCHED_FIFO
-
-// Compiler/platform has thread-specific storage
-#define ACE_HAS_THREAD_SPECIFIC_STORAGE
-
-// Platform has no implementation of pthread_condattr_setpshared(),
-// even though it supports pthreads!
-#define ACE_LACKS_CONDATTR_PSHARED
-
-// pthread_cond_timedwait does *not* reset the time argument when the
-// lock is acquired.
-#define ACE_LACKS_COND_TIMEDWAIT_RESET
-
-// Platform lacks pthread_attr_setsched()
-#define ACE_LACKS_SETSCHED
-
-// Platform has pthread_getschedparam and pthread_setschedparam
-// even when ACE_LACKS_SETSCHED is defined.
-#define ACE_HAS_PTHREAD_SCHEDPARAM
-
-// Platform has pthread_mutexattr_setkind_np().
-#define ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP
-
-// Platform lacks pthread_mutexattr_setpshared().
-#define ACE_LACKS_MUTEXATTR_PSHARED
-
-// Platform lacks pthread_attr_setscope()
-#define ACE_LACKS_THREAD_PROCESS_SCOPING
-
-// Platform lacks pthread_attr_setstackaddr
-#define ACE_LACKS_PTHREAD_ATTR_SETSTACKADDR
-
-// Platform lacks pthread_attr_setstack
-#define ACE_LACKS_PTHREAD_ATTR_SETSTACK
-
-// Defining ACE_HAS_UCONTEXT_T since G06.21 version of spthreads has
-// a definition for it.
-#ifdef ACE_TANDEM_T1248_PTHREADS
-#define ACE_HAS_UCONTEXT_T
-#endif
-
-//=========================================================================
-// Include file characteristics
-//=========================================================================
-
-// Compiler/platform contains the <sys/syscall.h> file.
-#define ACE_HAS_SYS_SYSCALL_H
-
-// Platform lacks malloc.h
-#define ACE_LACKS_MALLOC_H
-
-// Platform lacks the siginfo.h include file
-#define ACE_LACKS_SIGINFO_H
-
-// Platform doesn't define struct strrecvfd.
-#define ACE_LACKS_STRRECVFD
-
-// Platform lacks the ucontext.h file
-#define ACE_LACKS_UCONTEXT_H
-
-// Prototypes for both signal() and struct sigaction are consistent.
-#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-// Platform supports the POSIX struct timespec type
-#define ACE_HAS_POSIX_TIME
-
-// Platform/compiler supports timezone * as second parameter to gettimeofday()
-#define ACE_HAS_TIMEZONE_GETTIMEOFDAY
-
-// Platform has <strings.h> (which contains bzero() prototype)
-#define ACE_HAS_STRINGS 1
-
-
-// OS/compiler omits the const from the iovec parameter in the
-// writev() prototype.
-#define ACE_HAS_NONCONST_WRITEV
-
-// Platform lacks <stdint.h>
-#define ACE_LACKS_STDINT_H
-
-// Platform lacks <inttypes.h>
-#define ACE_LACKS_INTTYPES_H
-
-// Platform lacks <sys/select.h>
-#define ACE_LACKS_SYS_SELECT_H
-
-// Platform lacks <dlfcn.h>
-#define ACE_LACKS_DLFCN_H
-
-// Platform lacks <semaphore.h>
-#define ACE_LACKS_SEMAPHORE_H
-
-// Platform lacks <poll.h>
-#define ACE_LACKS_POLL_H
-
-// Platform lacks <sys/sysctl.h>
-#define ACE_LACKS_SYS_SYSCTL_H
-
-//=========================================================================
-// Compiler specific parts
-//=========================================================================
-
-// Compiler/platform has correctly prototyped header files
-#define ACE_HAS_CPLUSPLUS_HEADERS
-
-// Compiler/platform does not support the unsigned long long datatype.
-#define ACE_LACKS_UNSIGNEDLONGLONG_T
-
-// Compiler supports the ssize_t typedef
-#define ACE_HAS_SSIZE_T
-
-// Platform/compiler supports Standard C++ Library
-#define ACE_HAS_STANDARD_CPP_LIBRARY 1
-
-// Compiler's template mechanism must see source code (i.e.,
-// .cpp files).
-#define ACE_TEMPLATES_REQUIRE_SOURCE
-
-// Platform/Compiler supports a String class
-#define ACE_HAS_STRING_CLASS
-#define ACE_HAS_STDCPP_STL_INCLUDES
-
-// Platform has its standard c++ library in the namespace std.
-#define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-
-// Compiler doesn't support static data member templates
-#define ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES
-
-// Platform lacks "signed char" type (broken!)
-// Following will not be needed if use standard c library (G06.20 and later)
-#define ACE_LACKS_SIGNED_CHAR
-
-// Compiler can handle any operators in namespace
-#define ACE_ANY_OPS_USE_NAMESPACE
-
-// Platform lacks intptr_t typedef
-#define ACE_LACKS_INTPTR_T
-
-//=========================================================================
-// C++ version3 import/export macros
-//=========================================================================
-
-// Define the export macros needed to export symbols outside a DLL
-// The ACE_IMPORT_SINGLETON_DECLARE macro has been modified to not explicitly
-// instantiate the class template.
-#if defined(USE_EXPLICIT_EXPORT)
-#define ACE_LACKS_INLINE_FUNCTIONS
-
-#define ACE_HAS_CUSTOM_EXPORT_MACROS
-#define ACE_Proper_Export_Flag export$
-#define ACE_Proper_Import_Flag import$
-#define ACE_EXPORT_SINGLETON_DECLARATION(T) template class export$ T
-#define ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) template class export$ SINGLETON_TYPE<CLASS, LOCK>;
-#define ACE_IMPORT_SINGLETON_DECLARATION(T) template class import$ T
-#define ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) template class import$ SINGLETON_TYPE <CLASS, LOCK>;
-#endif
-
-
-//=========================================================================
-// Build options
-//=========================================================================
-
-// For debugging problems in os calls (but this doesn't work too well
-// since output is not interleaved properly with output from ACE_TRACE
-//# define ACE_OS_TRACE(X) ::printf(X)
-
-// Uncomment the following if timed message blocks are needed (e.g.
-// for Dynamic_Priority_Test. Otherwise leave this disabled because
-// enabling it adds overhead to message blocks and timed message blocks
-// are "rarely used."
-//#define ACE_HAS_TIMED_MESSAGE_BLOCKS
-
-// Uncomment the following if tokens library is needed.
-//#define ACE_HAS_TOKENS_LIBRARY
-
-// NonStop CORBA uses the XML Service Configurator
-#define ACE_HAS_XML_SVC_CONF
-
-#define ACE_LD_SEARCH_PATH "_RLD_LIB_PATH"
-
-#include /**/ "ace/post.h"
-
-#endif /* ACE_CONFIG_NSK_H */
diff --git a/dep/acelite/ace/config-tandem.h b/dep/acelite/ace/config-tandem.h
deleted file mode 100644
index fa2869b3ca8..00000000000
--- a/dep/acelite/ace/config-tandem.h
+++ /dev/null
@@ -1,189 +0,0 @@
-/* -*- C++ -*- */
-// Testing TANDEM
-// $Id: config-tandem.h 91781 2010-09-15 12:49:15Z johnnyw $
-
-// 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_NONCONST_SENDMSG
-
-//Platform supports system configuration information
-#define ACE_HAS_SYS_SYSTEMINFO_H
-#define ACE_HAS_SYSV_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_SYS_SYSCALL_H
-
-//Platform provides <sysent.h> header
-#define ACE_HAS_SYSENT_H
-
-// Platform has POSIX terminal interface.
-#define ACE_HAS_TERMIOS
-
-//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 alloca()
-// Although ACE does have alloca() on this compiler/platform combination, it is
-// disabled by default since it can be dangerous. Uncomment the following line
-// if you ACE to use it.
-//#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
-
-// 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
-
-// Platform/compiler has the sigwait(2) prototype
-#define ACE_HAS_SIGWAIT
-
-//Compiler/platform provides the sockio.h file
-#define ACE_HAS_SYS_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 struct strbuf
-#define ACE_HAS_STRBUF_T
-
-//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
-
-//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
-
-
-#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
-
-#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
-
-//*************************************
-
-/*********************************/
-
-/******* SIGNAL STUFF *******/
-
-//Platform uses non-const char * in calls to gethostbyaddr, gethostbyname,
-// getservbyname
-#define ACE_HAS_NONCONST_GETBY
-#define ACE_HAS_NONCONST_INET_ADDR
-// 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 lacks madvise() (e.g., Linux)
-#define ACE_LACKS_MADVISE
-#define ACE_LACKS_STRCASECMP
-
-// Defines the page size of the system.
-#define ACE_PAGE_SIZE 4096
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CONFIG_H */
diff --git a/dep/acelite/ace/config-tru64.h b/dep/acelite/ace/config-tru64.h
deleted file mode 100644
index 45a7aa6bd53..00000000000
--- a/dep/acelite/ace/config-tru64.h
+++ /dev/null
@@ -1,151 +0,0 @@
-/* -*- C++ -*- */
-// $Id: config-tru64.h 87270 2009-10-29 21:47:47Z olli $
-
-// 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 (__ACE_INLINE__)
-# define __ACE_INLINE__
-#endif /* ! __ACE_INLINE__ */
-
-// Compile using multi-thread libraries.
-#if !defined (ACE_MT_SAFE)
-# define ACE_MT_SAFE 1
-#endif /* ! ACE_MT_SAFE */
-
-/*clearerr is not defined when _REENTRANT is not defined*/
-#if ACE_MT_SAFE == 0
-#define ACE_LACKS_CLEARERR
-#endif /* ACE_MT_SAFE == 0 */
-
-#include "ace/config-posix.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_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_STDCPP_STL_INCLUDES
-#else
-# ifdef __cplusplus /* Let it slide for C compilers. */
-# error unsupported compiler on Digital Unix
-# endif /* __cplusplus */
-#endif /* ! __GNUG__ && ! __DECCXX && ! __rational__ */
-
-#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
-#define ACE_HAS_BROKEN_IF_HEADER
-#if (ACE_MT_SAFE != 0)
-# define ACE_HAS_PTHREADS
-# define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
-#endif /* ACE_MT_SAFE != 0 */
-#define ACE_LACKS_T_ERRNO
-#if !defined (DIGITAL_UNIX)
-# define DIGITAL_UNIX 0x400
-#endif /* ! DIGITAL_UNIX */
-
-#define ACE_SIZEOF_LONG 8
-
-#define ACE_DEFAULT_BASE_ADDR ((char *) 0x80000000)
-#define ACE_HAS_AUTOMATIC_INIT_FINI
-#define ACE_HAS_NONCONST_SETRLIMIT
-#define ACE_HAS_BROKEN_T_ERROR
-#define ACE_HAS_NONCONST_WRITEV
-#define ACE_HAS_CLOCK_GETTIME
-#define ACE_HAS_CLOCK_SETTIME
-#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_NONCONST_SENDMSG
-#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_STRPTIME
-#define ACE_HAS_SVR4_DYNAMIC_LINKING
-#define ACE_HAS_SVR4_SIGNAL_T
-#define ACE_HAS_SYS_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_PTHREAD_ATTR_SETSTACKADDR
-#endif /* ACE_MT_SAFE != 0 */
-#define ACE_HAS_TIUSER_H
-#define ACE_HAS_XTI
-#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_NONCONST_SENDMSG
-#define ACE_HAS_IDTYPE_T
-#define ACE_HAS_NONSTATIC_OBJECT_MANAGER
-
-#if DIGITAL_UNIX >= 0x500
-# define ACE_HAS_XPG4_MULTIBYTE_CHAR 1
-#endif /* DIGITAL_UNIX >= 0x500 */
-
-#if DIGITAL_UNIX >= 0x40E
-# define ACE_LACKS_STDINT_H
-#endif /* DIGITAL_UNIX >= 0x40E */
-
-#if (DIGITAL_UNIX >= 0x400) && (DIGITAL_UNIX < 0x500)
-#define ACE_LACKS_PREAD_PROTOTYPE
-#endif /* (DIGITAL_UNIX >= 0x400) && (DIGITAL_UNIX < 0x500) */
-
-// gethostbyaddr does not handle IPv6-mapped-IPv4 addresses
-#define ACE_HAS_BROKEN_GETHOSTBYADDR_V4MAPPED
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CONFIG_TRU64_H */
diff --git a/dep/acelite/ace/config-unixware-7.1.0.h b/dep/acelite/ace/config-unixware-7.1.0.h
deleted file mode 100644
index 820e7fb763a..00000000000
--- a/dep/acelite/ace/config-unixware-7.1.0.h
+++ /dev/null
@@ -1,406 +0,0 @@
-/* -*- C++ -*- */
-// $Id: config-unixware-7.1.0.h 87268 2009-10-29 21:06:06Z olli $
-
-#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_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
-
-/* 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() */
-// Although ACE does have alloca() on this compiler/platform combination, it is
-// disabled by default since it can be dangerous. Uncomment the following line
-// if you ACE to use it.
-//#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_PROTOTYPE 1
-
-/* 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
-
-/* pthread.h declares an enum with PTHREAD_PROCESS_PRIVATE and
- PTHREAD_PROCESS_SHARED values */
-#define ACE_HAS_PTHREAD_PROCESS_ENUM 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_SOCKADDR_IN_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_SYS_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
-
-/* 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/compiler supports void * as second parameter to gettimeofday(). */
-#define ACE_HAS_VOIDPTR_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_SYS_SYSCALL_H 1
-
-/* Platform supports system configuration information */
-#define ACE_HAS_SYS_SYSTEMINFO_H
-#define ACE_HAS_SYSV_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 POSIX terminal interface. */
-#define ACE_HAS_TERMIOS 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 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 to #include <sched.h> to get thread scheduling defs. */
-#define ACE_NEEDS_SCHED_H 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
-
-/*********************************************************************/
-
-/* 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/dep/acelite/ace/config-unixware-7.1.0.udk.h b/dep/acelite/ace/config-unixware-7.1.0.udk.h
deleted file mode 100644
index ec668c19581..00000000000
--- a/dep/acelite/ace/config-unixware-7.1.0.udk.h
+++ /dev/null
@@ -1,457 +0,0 @@
-/* -*- C++ -*- */
-#ifndef ACE_CONFIG_UNIXWARE_UDK_H
-#define ACE_CONFIG_UNIXWARE_UDK_H
-
-// $Id: config-unixware-7.1.0.udk.h 87167 2009-10-19 19:33:53Z olli $
-
-// 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_TEMPLATES_REQUIRE_SOURCE
-
-#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
-
-/*
- * 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
-
-/* Enable ACE inlining */
-#define __ACE_INLINE__ 1
-
-/* 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_PROTOTYPE
-
-/* 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
-
-/* pthread.h declares an enum with PTHREAD_PROCESS_PRIVATE and
- PTHREAD_PROCESS_SHARED values */
-#define ACE_HAS_PTHREAD_PROCESS_ENUM
-
-/* 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_SOCKADDR_IN_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_SYS_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
-
-/* 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/compiler supports void * as second parameter to gettimeofday(). */
-#define ACE_HAS_VOIDPTR_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_SYS_SYSCALL_H
-
-/* Platform supports system configuration information */
-#define ACE_HAS_SYS_SYSTEMINFO_H
-#define ACE_HAS_SYSV_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 templates that support typedefs inside of classes used
- as formal arguments to a template class. */
-#define ACE_HAS_TEMPLATE_TYPEDEFS 1
-
-/* Platform has POSIX terminal interface. */
-#define ACE_HAS_TERMIOS 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
-
-/* 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 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 to #include <sched.h> to get thread scheduling defs. */
-#define ACE_NEEDS_SCHED_H 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/dep/acelite/ace/config-visualage.h b/dep/acelite/ace/config-visualage.h
deleted file mode 100644
index 4cef8108bc5..00000000000
--- a/dep/acelite/ace/config-visualage.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* -*- C++ -*- */
-// $Id: config-visualage.h 80826 2008-03-04 14:51:23Z wotte $
-
-// 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/dep/acelite/ace/config-vxworks.h b/dep/acelite/ace/config-vxworks.h
index fd4e04193c0..79e51ebd321 100644
--- a/dep/acelite/ace/config-vxworks.h
+++ b/dep/acelite/ace/config-vxworks.h
@@ -1,5 +1,5 @@
//* -*- C++ -*- */
-// $Id: config-vxworks.h 87036 2009-10-10 18:21:39Z johnnyw $
+// $Id: config-vxworks.h 95534 2012-02-17 23:19:33Z mitza $
// The following configuration file is designed to work for VxWorks
// Based on ACE_VXWORKS it will select the correct config file
@@ -33,6 +33,8 @@
# define ACE_VXWORKS 0x670
# elif (_WRS_VXWORKS_MINOR == 8)
# define ACE_VXWORKS 0x680
+# elif (_WRS_VXWORKS_MINOR == 9)
+# define ACE_VXWORKS 0x690
# endif
# endif
# endif
@@ -48,6 +50,8 @@
# include "ace/config-vxworks6.7.h"
#elif (ACE_VXWORKS == 0x680)
# include "ace/config-vxworks6.8.h"
+#elif (ACE_VXWORKS == 0x690)
+# include "ace/config-vxworks6.9.h"
#else
#error Unknown or unsupported VxWorks version
#endif
diff --git a/dep/acelite/ace/config-vxworks6.4.h b/dep/acelite/ace/config-vxworks6.4.h
index 9a0487f36bf..4ed50a7a1df 100644
--- a/dep/acelite/ace/config-vxworks6.4.h
+++ b/dep/acelite/ace/config-vxworks6.4.h
@@ -1,5 +1,5 @@
//* -*- C++ -*- */
-// $Id: config-vxworks6.4.h 91683 2010-09-09 09:07:49Z johnnyw $
+// $Id: config-vxworks6.4.h 93571 2011-03-17 07:37:11Z olli $
// The following configuration file is designed to work for VxWorks
// 6.4 platforms using one of these compilers:
@@ -48,7 +48,7 @@
#elif defined (__DCC__)
# define ACE_HAS_STANDARD_CPP_LIBRARY 1
# define ACE_TEMPLATES_REQUIRE_SOURCE
-#else /* ! __GNUG__ && ! ghs && !__DCC__ */
+#else /* ! __GNUG__ && !__DCC__ */
# ifdef __cplusplus /* Let it slide for C compilers. */
# error unsupported compiler on VxWorks
# endif /* __cplusplus */
@@ -238,7 +238,6 @@
#define ACE_LACKS_STDINT_H
#define ACE_LACKS_UNAME
#define ACE_LACKS_UTSNAME_T
- #define ACE_LACKS_RAND_REENTRANT_FUNCTIONS
#define ACE_LACKS_DLFCN_H
#define ACE_LACKS_WAIT
#define ACE_LACKS_WAITPID
diff --git a/dep/acelite/ace/config-vxworks6.8.h b/dep/acelite/ace/config-vxworks6.8.h
index ecad4752d95..14e072df663 100644
--- a/dep/acelite/ace/config-vxworks6.8.h
+++ b/dep/acelite/ace/config-vxworks6.8.h
@@ -1,5 +1,5 @@
//* -*- C++ -*- */
-// $Id: config-vxworks6.8.h 87036 2009-10-10 18:21:39Z johnnyw $
+// $Id: config-vxworks6.8.h 96050 2012-08-14 22:22:54Z mitza $
// The following configuration file is designed to work for VxWorks
// 6.8 platforms using one of these compilers:
@@ -16,6 +16,14 @@
#include "ace/config-vxworks6.7.h"
+#ifndef ACE_LACKS_RAND_R
+# define ACE_LACKS_RAND_R 1
+#endif
+
+#ifndef __RTP__
+# define ACE_LACKS_STD_WSTRING
+#endif
+
#include /**/ "ace/post.h"
#endif /* ACE_CONFIG_VXWORKS_6_8_H */
diff --git a/dep/acelite/ace/config-vxworks6.9.h b/dep/acelite/ace/config-vxworks6.9.h
new file mode 100644
index 00000000000..f15b2304621
--- /dev/null
+++ b/dep/acelite/ace/config-vxworks6.9.h
@@ -0,0 +1,33 @@
+//* -*- C++ -*- */
+// $Id: config-vxworks6.9.h 96017 2012-08-08 22:18:09Z mitza $
+
+// The following configuration file is designed to work for VxWorks
+// 6.9 platforms using one of these compilers:
+// 1) The GNU g++ compiler that is shipped with VxWorks 6.9
+// 2) The Diab compiler that is shipped with VxWorks 6.9
+
+#ifndef ACE_CONFIG_VXWORKS_6_9_H
+#define ACE_CONFIG_VXWORKS_6_9_H
+#include /**/ "ace/pre.h"
+
+#if !defined (ACE_VXWORKS)
+# define ACE_VXWORKS 0x690
+#endif /* ! ACE_VXWORKS */
+
+#define ACE_HAS_SSIZE_T
+
+#include "ace/config-vxworks6.8.h"
+
+#ifndef ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
+// already defined for earlier RTP versions
+# define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R 1
+#endif
+
+#if defined(__RTP__)
+// bzero is in strings.h
+# define ACE_HAS_STRINGS 1
+#endif
+
+#include /**/ "ace/post.h"
+#endif /* ACE_CONFIG_VXWORKS_6_9_H */
+
diff --git a/dep/acelite/ace/config-win32-borland.h b/dep/acelite/ace/config-win32-borland.h
deleted file mode 100644
index f5305d3b003..00000000000
--- a/dep/acelite/ace/config-win32-borland.h
+++ /dev/null
@@ -1,172 +0,0 @@
-// -*- C++ -*-
-//$Id: config-win32-borland.h 92102 2010-09-30 08:14:15Z johnnyw $
-
-// 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 */
-
-#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>;
-
-// 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__ */
-
-# define ACE_CC_NAME ACE_TEXT ("Embarcadero C++ Builder")
-# define ACE_CC_MAJOR_VERSION (__BORLANDC__ / 0x100)
-# define ACE_CC_MINOR_VERSION (__BORLANDC__ % 0x100)
-# define ACE_CC_BETA_VERSION (0)
-
-#if (__BORLANDC__ >= 0x620)
-# define ACE_CC_PREPROCESSOR_ARGS "-q -Sl -o%s"
-#else
-# define ACE_CC_PREPROCESSOR_ARGS "-q -P- -o%s"
-#endif
-
-// 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
-
-# define ACE_CC_PREPROCESSOR "CPP32.EXE"
-
-# include "ace/config-win32-common.h"
-
-# define ACE_WSTRING_HAS_USHORT_SUPPORT 1
-# define ACE_HAS_DIRENT
-
-#define ACE_USES_STD_NAMESPACE_FOR_STDC_LIB 1
-
-#define ACE_NEEDS_DL_UNDERSCORE
-
-#define ACE_LACKS_TERMIOS_H
-#define ACE_LACKS_NETINET_TCP_H
-#define ACE_LACKS_REGEX_H
-#define ACE_LACKS_SYS_MSG_H
-#define ACE_LACKS_PWD_H
-#define ACE_LACKS_POLL_H
-#define ACE_LACKS_SYS_SHM_H
-#define ACE_LACKS_STRINGS_H
-#define ACE_LACKS_SEMAPHORE_H
-#define ACE_LACKS_INTTYPES_H
-#define ACE_LACKS_UCONTEXT_H
-#define ACE_LACKS_SYS_SELECT_H
-#define ACE_LACKS_SYS_TIME_H
-#define ACE_LACKS_SYS_RESOURCE_H
-#define ACE_LACKS_SYS_WAIT_H
-#define ACE_LACKS_DLFCN_H
-#define ACE_LACKS_SYS_MMAN_H
-#define ACE_LACKS_SYS_UIO_H
-#define ACE_LACKS_SYS_SOCKET_H
-#define ACE_LACKS_NETINET_IN_H
-#define ACE_LACKS_NETDB_H
-#define ACE_LACKS_NET_IF_H
-#define ACE_LACKS_SYS_IPC_H
-#define ACE_LACKS_SYS_SEM_H
-#define ACE_LACKS_SYS_IOCTL_H
-#define ACE_LACKS_STROPTS_H
-
-#undef ACE_LACKS_STRUCT_DIR
-#undef ACE_LACKS_CLOSEDIR
-#undef ACE_LACKS_OPENDIR
-#undef ACE_LACKS_READDIR
-#undef ACE_LACKS_REWINDDIR
-
-#define ACE_HAS_WOPENDIR
-#define ACE_HAS_WCLOSEDIR
-#define ACE_HAS_WREADDIR
-#define ACE_HAS_WREWINDDIR
-
-#define ACE_LACKS_STRRECVFD
-#define ACE_USES_EXPLICIT_STD_NAMESPACE
-
-#define ACE_HAS_TIME_T_LONG_MISMATCH
-
-#define ACE_EXPORT_NESTED_CLASSES 1
-#define ACE_HAS_CPLUSPLUS_HEADERS 1
-#define ACE_HAS_NONCONST_SELECT_TIMEVAL
-#define ACE_HAS_SIG_ATOMIC_T
-#define ACE_HAS_STANDARD_CPP_LIBRARY 1
-#define ACE_HAS_STDCPP_STL_INCLUDES 1
-#define ACE_HAS_STRING_CLASS 1
-#define ACE_HAS_USER_MODE_MASKS 1
-#define ACE_LACKS_ACE_IOSTREAM 1
-#define ACE_LACKS_LINEBUFFERED_STREAMBUF 1
-#define ACE_HAS_NEW_NOTHROW
-#define ACE_TEMPLATES_REQUIRE_SOURCE 1
-#define ACE_SIZEOF_LONG_DOUBLE 10
-#define ACE_UINT64_FORMAT_SPECIFIER_ASCII "%Lu"
-#define ACE_INT64_FORMAT_SPECIFIER_ASCII "%Ld"
-#define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-#define ACE_USES_STD_NAMESPACE_FOR_ABS 1
-#define ACE_ENDTHREADEX(STATUS) ::_endthreadex ((DWORD) STATUS)
-
-#if defined(ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
-// must have _MT defined to include multithreading
-// features from win32 headers
-# if !defined(__MT__)
-// *** DO NOT *** defeat this error message by defining __MT__ yourself.
-// You must link with the multi threaded libraries. Add -tWM to your
-// compiler options
-# 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 */
-
-#if (__BORLANDC__ < 0x620)
-# define ACE_LACKS_ISBLANK
-# define ACE_LACKS_ISWBLANK
-# define ACE_LACKS_PRAGMA_ONCE 1
-#endif
-
-#if (__BORLANDC__ < 0x630)
-# define ACE_LACKS_ISWCTYPE
-# define ACE_LACKS_ISCTYPE
-#endif
-
-#if (__BORLANDC__ < 0x620)
-// Older Borland compilers can't handle assembly in inline methods or
-// templates (E2211). When we build for pentium optimized and we are inlining
-// then we disable inline assembly
-# if defined (ACE_HAS_PENTIUM) && defined(__ACE_INLINE__)
-# define ACE_LACKS_INLINE_ASSEMBLY
-# endif
-#endif
-
-#if (__BORLANDC__ == 0x621)
-// C++ Builder 2010 wcsncat seems broken
-# define ACE_LACKS_WCSNCAT
-#endif
-
-#define ACE_WCSDUP_EQUIVALENT ::_wcsdup
-#define ACE_STRCASECMP_EQUIVALENT ::stricmp
-#define ACE_STRNCASECMP_EQUIVALENT ::strnicmp
-#define ACE_WTOF_EQUIVALENT ::_wtof
-#define ACE_FILENO_EQUIVALENT(X) (_get_osfhandle (::_fileno (X)))
-#define ACE_HAS_ITOA 1
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CONFIG_WIN32_BORLAND_H */
diff --git a/dep/acelite/ace/config-win32-common.h b/dep/acelite/ace/config-win32-common.h
index 95cc3d3d107..098ddbd5701 100644
--- a/dep/acelite/ace/config-win32-common.h
+++ b/dep/acelite/ace/config-win32-common.h
@@ -1,5 +1,5 @@
/* -*- C++ -*- */
-// $Id: config-win32-common.h 92120 2010-10-01 12:00:01Z johnnyw $
+// $Id: config-win32-common.h 96094 2012-08-22 11:51:11Z johnnyw $
#ifndef ACE_CONFIG_WIN32_COMMON_H
@@ -10,7 +10,6 @@
#error Use config-win32.h in config.h instead of this header
#endif /* ACE_CONFIG_WIN32_H */
-
// Windows Mobile (CE) stuff is primarily further restrictions to what's
// in the rest of this file. Also, it defined ACE_HAS_WINCE, which is used
// in this file.
@@ -18,6 +17,21 @@
# include "ace/config-WinCE.h"
#endif /* _WIN32_WCE */
+#if defined(__MINGW32__)
+// When using the --std=c++0x option with MinGW the compiler omits defining
+// the following required macros (at least with the GCC 4.6.2 version)
+// So we define them ourselves here.
+# if !defined(WIN32)
+# define _stdcall __attribute__((__stdcall__))
+# define _cdecl __attribute__((__cdecl__))
+# define _thiscall __attribute__((__thiscall__))
+# define _fastcall __attribute__((__fastcall__))
+# define WIN32 1
+# define WINNT 1
+# define i386 1
+# endif
+#endif
+
// Complain if WIN32 is not already defined.
#if !defined (WIN32) && !defined (ACE_HAS_WINCE)
# error Please define WIN32 in your project settings.
@@ -27,6 +41,12 @@
#if defined (_WIN64) || defined (WIN64)
# define ACE_WIN64
+// MPC template adds _AMD64_ but user projects not generated using MPC
+// may want to use _AMD64_ as well. Ensure it's there in all cases.
+# ifndef _AMD64_
+# define _AMD64_
+# endif
+
// Use 64-bit file offsets by default in the WIN64 case, similar to
// what 64-bit UNIX systems do.
//
@@ -227,6 +247,10 @@
#define ACE_LACKS_SEEKDIR
#define ACE_LACKS_TELLDIR
+#define ACE_LACKS_CLOCKID_T
+#define ACE_LACKS_CLOCK_REALTIME
+#define ACE_LACKS_CLOCK_MONOTONIC
+
/* LACKS gid/pid/sid/uid facilities */
#define ACE_LACKS_GETPGID
#define ACE_LACKS_GETPPID
@@ -258,6 +282,7 @@
#define ACE_LACKS_MODE_MASKS
#define ACE_LACKS_PTHREAD_H
#define ACE_LACKS_PWD_FUNCTIONS
+#define ACE_LACKS_RAND_R
#define ACE_LACKS_READLINK
#define ACE_LACKS_RLIMIT
#define ACE_LACKS_SBRK
@@ -265,6 +290,7 @@
#define ACE_LACKS_SEMBUF_T
#define ACE_LACKS_SIGACTION
#define ACE_LACKS_SIGSET
+#define ACE_LACKS_SIGSET_T
#define ACE_LACKS_SOCKETPAIR
#define ACE_LACKS_SUSECONDS_T
#define ACE_LACKS_USECONDS_T
@@ -301,7 +327,7 @@
#define ACE_SIZEOF_LONG_LONG 8
-#if !defined (ACE_LACKS_LONGLONG_T) && !defined (__MINGW32__)
+#if !defined (__MINGW32__)
#define ACE_INT64_TYPE signed __int64
#define ACE_UINT64_TYPE unsigned __int64
#endif
@@ -501,9 +527,9 @@
# else
# pragma comment(lib, "ws2_32.lib")
# pragma comment(lib, "mswsock.lib")
-# if defined (ACE_HAS_IPV6)
+// # if defined (ACE_HAS_IPV6)
# pragma comment(lib, "iphlpapi.lib")
-# endif
+// # endif
# endif /* ACE_HAS_WINCE */
# endif /* _MSC_VER */
@@ -580,6 +606,9 @@
// Looks like Win32 has a non-const swab function
#define ACE_HAS_NONCONST_SWAB
+// gethostbyaddr does not handle IPv6-mapped-IPv4 addresses
+#define ACE_HAS_BROKEN_GETHOSTBYADDR_V4MAPPED
+
// 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)
diff --git a/dep/acelite/ace/config-win32-ghs.h b/dep/acelite/ace/config-win32-ghs.h
deleted file mode 100644
index 0ac80bfbd11..00000000000
--- a/dep/acelite/ace/config-win32-ghs.h
+++ /dev/null
@@ -1,93 +0,0 @@
-// -*- C++ -*-
-// $Id: config-win32-ghs.h 87268 2009-10-29 21:06:06Z olli $
-
-// 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
-
-//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_TEXT in the following line
-# define ACE_CC_NAME ACE_TEXT ("Green Hills C++")
-# define ACE_CC_MAJOR_VERSION (1)
-# define ACE_CC_MINOR_VERSION (8)
-# define ACE_CC_BETA_VERSION (9)
-# ifndef ACE_USING_MCPP_PREPROCESSOR
-# define ACE_CC_PREPROCESSOR "GCX.EXE"
-# define ACE_CC_PREPROCESSOR_ARGS "-E"
-# endif
-
-// 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_CPLUSPLUS_HEADERS 1
-//# define ACE_HAS_EXCEPTIONS 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_STRING_CLASS 1
-# define ACE_HAS_TEMPLATE_TYPEDEFS 1
-# define ACE_HAS_USER_MODE_MASKS 1
-# define ACE_LACKS_ACE_IOSTREAM 1
-//# define ACE_LACKS_LINEBUFFERED_STREAMBUF 1
-# define ACE_LACKS_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_ASCII "%I64u"
-# define ACE_INT64_FORMAT_SPECIFIER_ASCII "%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_TEXT ("d")
-# endif
-
-#include /**/ "ace/post.h"
-#endif /* ACE_CONFIG_WIN32_GHS_H */
diff --git a/dep/acelite/ace/config-win32-interix.h b/dep/acelite/ace/config-win32-interix.h
index 2fa9695996c..a1a8faefff7 100644
--- a/dep/acelite/ace/config-win32-interix.h
+++ b/dep/acelite/ace/config-win32-interix.h
@@ -1,5 +1,5 @@
// -*- C++ -*-
-// $Id: config-win32-interix.h 91285 2010-08-05 08:29:30Z johnnyw $
+// $Id: config-win32-interix.h 93550 2011-03-15 21:26:56Z olli $
// The following configuration file is designed to work for Interix
// platforms using GNU g++ (Interix == Microsoft's Services for Unix)
@@ -11,6 +11,7 @@
#include "ace/config-g++-common.h"
+#define ACE_HAS_SYS_SIGINFO_H
#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
#define ACE_HAS_3_PARAM_READDIR_R
#define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
@@ -32,11 +33,8 @@
#define ACE_HAS_NEW_NO_H
#define ACE_HAS_NONCONST_SELECT_TIMEVAL
#define ACE_HAS_POLL
-#define ACE_HAS_POSITION_INDEPENDENT_POINTERS 1
-#define ACE_HAS_POSIX_GETPWNAM_R
#define ACE_HAS_POSIX_NONBLOCK
#define ACE_HAS_POSIX_TIME
-#define ACE_HAS_PTHREADS_STD
#define ACE_HAS_PTHREADS_UNIX98_EXT
#define ACE_HAS_PTHREAD_GETCONCURRENCY
#define ACE_HAS_PTHREAD_SETCONCURRENCY
diff --git a/dep/acelite/ace/config-win32-mingw.h b/dep/acelite/ace/config-win32-mingw.h
index 58635b74ca8..a34ff605b2d 100644
--- a/dep/acelite/ace/config-win32-mingw.h
+++ b/dep/acelite/ace/config-win32-mingw.h
@@ -1,5 +1,5 @@
// -*- C++ -*-
-// $Id: config-win32-mingw.h 92102 2010-09-30 08:14:15Z johnnyw $
+// $Id: config-win32-mingw.h 95438 2012-01-16 10:35:03Z mcorino $
//
// The following configuration file is designed to work for win32
@@ -28,11 +28,17 @@
#define ACE_HAS_USER_MODE_MASKS
-#if (__MINGW32_MAJOR_VERSION < 2)
+#if (__MINGW32_MAJOR_VERSION < 2) && (__MINGW64_VERSION_MAJOR < 3)
# error You need a newer version (>= 2.0) of mingw32/w32api
#endif
-#if (__MINGW32_MAJOR_VERSION >= 3)
+// In strict ANSI mode (default when using --std=c++0x) the fileno()
+// macro is not defined so use the following work around.
+#if defined(__STRICT_ANSI__)
+# define ACE_FILENO_EQUIVALENT ::_fileno
+#endif
+
+#if (__MINGW32_MAJOR_VERSION >= 3) || (__MINGW64_VERSION_MAJOR >= 3)
# define ACE_HAS_SSIZE_T
# undef ACE_LACKS_STRUCT_DIR
# undef ACE_LACKS_OPENDIR
@@ -47,6 +53,22 @@
#if (__MINGW32_MAJOR_VERSION > 3) || ((__MINGW32_MAJOR_VERSION == 3) && (__MINGW32_MINOR_VERSION >= 15))
# undef ACE_LACKS_USECONDS_T
+#elif (__MINGW64_VERSION_MAJOR >= 3)
+# undef ACE_LACKS_USECONDS_T
+#endif
+
+#if (__MINGW64_VERSION_MAJOR >= 3)
+# define ACE_HAS_POSIX_TIME 1
+# define ACE_LACKS_TIMESPEC_T 1
+
+# include <stdlib.h>
+# if defined (strtod)
+# undef strtod
+# endif
+#else
+# if defined (ACE_LACKS_SIGSET_T)
+# undef ACE_LACKS_SIGSET_T
+# endif
#endif
#undef ACE_HAS_WTOF
@@ -78,6 +100,8 @@
#define ACE_LACKS_SYS_IOCTL_H
#define ACE_LACKS_PDH_H
#define ACE_LACKS_PDHMSG_H
+#define ACE_LACKS_STRTOK_R
+#define ACE_LACKS_LOCALTIME_R
#define ACE_HAS_NONCONST_WCSDUP
#define ACE_HAS_WINSOCK2_GQOS
#define ACE_ISCTYPE_EQUIVALENT ::_isctype
diff --git a/dep/acelite/ace/config-win32-msvc-10.h b/dep/acelite/ace/config-win32-msvc-10.h
index f915cb22ca9..2cbcd941ae6 100644
--- a/dep/acelite/ace/config-win32-msvc-10.h
+++ b/dep/acelite/ace/config-win32-msvc-10.h
@@ -3,7 +3,7 @@
/**
* @file config-win32-msvc-10.h
*
- * $Id: config-win32-msvc-10.h 91685 2010-09-09 09:35:14Z johnnyw $
+ * $Id: config-win32-msvc-10.h 95719 2012-05-01 12:54:01Z johnnyw $
*
* @brief Microsoft Visual C++ 10.0 configuration file.
*
@@ -35,11 +35,10 @@
#endif
// Windows' timeval is non-conformant (defined in terms of long instead of
-// time_t) and VC9 (on desktop, not CE) changed time_t to a 64-bit value
-// even when compiling a 32-bit application. Therefore, ace/Time_Value
-// needs to rearrange a few things for this compiler. See Time_Value.h
-// for complete details.
-#if !defined (ACE_HAS_WINCE)
+// time_t) and VC8 changed time_t to a 64-bit value even when compiling a
+// 32-bit application. Therefore, ace/Time_Value needs to rearrange a few
+// things for this compiler. See Time_Value.h for complete details.
+#if !defined (_USE_32BIT_TIME_T)
# define ACE_HAS_TIME_T_LONG_MISMATCH
#endif
diff --git a/dep/acelite/ace/config-win32-msvc-7.h b/dep/acelite/ace/config-win32-msvc-7.h
index d7fb64078d9..93ced167cc3 100644
--- a/dep/acelite/ace/config-win32-msvc-7.h
+++ b/dep/acelite/ace/config-win32-msvc-7.h
@@ -3,7 +3,7 @@
/**
* @file config-win32-msvc-7.h
*
- * $Id: config-win32-msvc-7.h 91685 2010-09-09 09:35:14Z johnnyw $
+ * $Id: config-win32-msvc-7.h 93562 2011-03-16 14:13:52Z olli $
*
* @brief Microsoft Visual C++ 7.0 configuration file.
*
@@ -48,6 +48,9 @@
#define ACE_LACKS_STRPTIME
+#define ACE_LACKS_STRTOK_R
+#define ACE_LACKS_LOCALTIME_R
+
#define ACE_HAS_SIG_ATOMIC_T
#define ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES
#define ACE_LACKS_STRRECVFD
diff --git a/dep/acelite/ace/config-win32-msvc-8.h b/dep/acelite/ace/config-win32-msvc-8.h
index ef13986f906..fa6c63a1fd3 100644
--- a/dep/acelite/ace/config-win32-msvc-8.h
+++ b/dep/acelite/ace/config-win32-msvc-8.h
@@ -3,7 +3,7 @@
/**
* @file config-win32-msvc-8.h
*
- * $Id: config-win32-msvc-8.h 91685 2010-09-09 09:35:14Z johnnyw $
+ * $Id: config-win32-msvc-8.h 95719 2012-05-01 12:54:01Z johnnyw $
*
* @brief Microsoft Visual C++ 8.0 configuration file.
*
@@ -37,11 +37,10 @@
#endif
// Windows' timeval is non-conformant (defined in terms of long instead of
-// time_t) and VC8 (on desktop, not CE) changed time_t to a 64-bit value
-// even when compiling a 32-bit application. Therefore, ace/Time_Value
-// needs to rearrange a few things for this compiler. See Time_Value.h
-// for complete details.
-#if !defined (ACE_HAS_WINCE)
+// time_t) and VC8 changed time_t to a 64-bit value even when compiling a
+// 32-bit application. Therefore, ace/Time_Value needs to rearrange a few
+// things for this compiler. See Time_Value.h for complete details.
+#if !defined (_USE_32BIT_TIME_T)
# define ACE_HAS_TIME_T_LONG_MISMATCH
#endif
@@ -131,7 +130,7 @@
# define ACE_HAS_TR24731_2005_CRT
#endif
-//Detect Platform SDK 64-bit (AMD64) compiler using _MSC_FULL_VER
+// Detect Platform SDK 64-bit (AMD64) compiler using _MSC_FULL_VER
#if (defined (_WIN64) || defined (WIN64)) && _MSC_FULL_VER < 140050000
# define ACE_AUTO_PTR_LACKS_RESET
# define ACE_MSVC_USES_DOUBLE_UNDERSCORE_STAT64
diff --git a/dep/acelite/ace/config-win32-msvc-9.h b/dep/acelite/ace/config-win32-msvc-9.h
index 884f975347e..551b80f7694 100644
--- a/dep/acelite/ace/config-win32-msvc-9.h
+++ b/dep/acelite/ace/config-win32-msvc-9.h
@@ -3,7 +3,7 @@
/**
* @file config-win32-msvc-9.h
*
- * $Id: config-win32-msvc-9.h 91685 2010-09-09 09:35:14Z johnnyw $
+ * $Id: config-win32-msvc-9.h 95719 2012-05-01 12:54:01Z johnnyw $
*
* @brief Microsoft Visual C++ 9.0 configuration file.
*
@@ -35,11 +35,10 @@
#endif
// Windows' timeval is non-conformant (defined in terms of long instead of
-// time_t) and VC9 (on desktop, not CE) changed time_t to a 64-bit value
-// even when compiling a 32-bit application. Therefore, ace/Time_Value
-// needs to rearrange a few things for this compiler. See Time_Value.h
-// for complete details.
-#if !defined (ACE_HAS_WINCE)
+// time_t) and VC9 changed time_t to a 64-bit value even when compiling a
+// 32-bit application. Therefore, ace/Time_Value needs to rearrange a few
+// things for this compiler. See Time_Value.h for complete details.
+#if !defined (_USE_32BIT_TIME_T)
# define ACE_HAS_TIME_T_LONG_MISMATCH
#endif
@@ -57,14 +56,13 @@
# define ACE_FILENO_EQUIVALENT(X) (_get_osfhandle (::_fileno (X)))
#endif
-// Windows Mobile 6 doesn't do sig_atomic_t, but maybe future versions will.
-# if !defined (_WIN32_WCE) || (_WIN32_WCE > 0x601)
+// Windows CE 7 doesn't do sig_atomic_t, but maybe future versions will.
+# if !defined (_WIN32_WCE) || (_WIN32_WCE > 0x700)
# define ACE_HAS_SIG_ATOMIC_T
-# endif /* !Win CE 6.0 or less */
+# endif /* !Win CE 7.0 or less */
#define ACE_LACKS_STRPTIME
-// Evaluate this with a WinCE build; maybe things have improved since VC8.
#if !defined (ACE_HAS_WINCE)
# define ACE_HAS_INTRIN_H
# define ACE_HAS_INTRINSIC_INTERLOCKED
diff --git a/dep/acelite/ace/config-win32-msvc.h b/dep/acelite/ace/config-win32-msvc.h
index 6b84ac2348c..d6ec650e5f8 100644
--- a/dep/acelite/ace/config-win32-msvc.h
+++ b/dep/acelite/ace/config-win32-msvc.h
@@ -2,12 +2,11 @@
/**
* @file config-win32-msvc.h
*
- * $Id: config-win32-msvc.h 92120 2010-10-01 12:00:01Z johnnyw $
+ * $Id: config-win32-msvc.h 95788 2012-05-24 07:59:51Z johnnyw $
*
* @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)
+ * This file is the ACE configuration file for Microsoft Visual C++
*
* @author Darrell Brunsch <brunsch@cs.wustl.edu>
*/
@@ -156,7 +155,7 @@
# pragma warning(disable: 1744) /* field of class type without a DLL interface used in a class with a DLL interface */
# pragma warning(disable: 1738)
# endif
-#endif /* !ALL_WARNINGS && _MSV_VER && !ghs && !__MINGW32__ */
+#endif /* !ALL_WARNINGS && _MSV_VER && !__MINGW32__ */
// STRICT type checking in WINDOWS.H enhances type safety for Windows
// programs by using distinct types to represent all the different
diff --git a/dep/acelite/ace/config-win32.h b/dep/acelite/ace/config-win32.h
index 89d8d68bc65..3f8caefb6a4 100644
--- a/dep/acelite/ace/config-win32.h
+++ b/dep/acelite/ace/config-win32.h
@@ -3,7 +3,7 @@
/**
* @file config-win32.h
*
- * $Id: config-win32.h 92120 2010-10-01 12:00:01Z johnnyw $
+ * $Id: config-win32.h 94388 2011-08-10 17:14:40Z johnnyw $
*
* @brief Microsoft Windows configuration file.
*
@@ -22,18 +22,10 @@
// NOTE: Please do not add anything besides #include's here. Put other stuff
// (definitions, etc.) in the included headers
-// 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 "ace/config-win32-common.h"
// Include the config-win32-* file specific to the compiler
-#if defined (__BORLANDC__)
-# include "ace/config-win32-borland.h"
-#elif defined (_MSC_VER)
+#if defined (_MSC_VER)
# include "ace/config-win32-msvc.h"
#elif defined (ACE_HAS_CEGCC) //need to be prior to MINGW32
# include "ace/config-win32-cegcc.h"
@@ -45,9 +37,6 @@
# error Compiler is not supported
#endif
-// gethostbyaddr does not handle IPv6-mapped-IPv4 addresses
-#define ACE_HAS_BROKEN_GETHOSTBYADDR_V4MAPPED
-
#include /**/ "ace/post.h"
#endif /* ACE_CONFIG_WIN32_H */
diff --git a/dep/acelite/ace/config-windows.h b/dep/acelite/ace/config-windows.h
new file mode 100644
index 00000000000..28e59c9a3d8
--- /dev/null
+++ b/dep/acelite/ace/config-windows.h
@@ -0,0 +1,5 @@
+/* -*- C++ -*- */
+// $Id: config-windows.h 94353 2011-07-30 13:13:13Z johnnyw $
+
+// This is all we need to do to build ACE on a Windows platform (32bit or 64bit)
+#include "config-win32.h"
diff --git a/dep/acelite/ace/gethrtime.cpp b/dep/acelite/ace/gethrtime.cpp
deleted file mode 100644
index 5c32d16dadd..00000000000
--- a/dep/acelite/ace/gethrtime.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-// $Id: gethrtime.cpp 91286 2010-08-05 09:04:31Z johnnyw $
-//
-// 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/config-all.h"
-
-
-
-#if defined (ghs) && (defined (i386) || defined(__i386__))
-
-#include "ace/OS_NS_time.h"
-
-extern "C"
-ACE_hrtime_t
-ACE_GETHRTIME_NAME (void)
-{
-#if defined (ACE_HAS_PENTIUM)
- // ACE_TRACE ("ACE_GETHRTIME_NAME");
-
-#if defined (ACE_LACKS_LONGLONG_T)
- double now;
-#else /* ! ACE_LACKS_LONGLONG_T */
- ACE_hrtime_t now;
-#endif /* ! ACE_LACKS_LONGLONG_T */
-
- // 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/dep/acelite/ace/os_include/os_dirent.h b/dep/acelite/ace/os_include/os_dirent.h
index 034bacd006d..a51317a4612 100644
--- a/dep/acelite/ace/os_include/os_dirent.h
+++ b/dep/acelite/ace/os_include/os_dirent.h
@@ -6,7 +6,7 @@
*
* format of directory entries
*
- * $Id: os_dirent.h 82985 2008-10-08 18:15:30Z johnnyw $
+ * $Id: os_dirent.h 93359 2011-02-11 11:33:12Z mcorino $
*
* @author Don Hinton <dhinton@dresystems.com>
* @author This code was originally in various places including ace/OS.h.
@@ -27,10 +27,6 @@
#include "ace/os_include/sys/os_types.h"
#include "ace/os_include/os_limits.h"
-#if defined (ACE_VXWORKS) && (ACE_VXWORKS < 0x620)
-# include "ace/os_include/os_unistd.h" // VxWorks needs this to compile
-#endif /* ACE_VXWORKS */
-
#if !defined (ACE_LACKS_DIRENT_H)
# include /**/ <dirent.h>
#endif /* !ACE_LACKS_DIRENT_H */
diff --git a/dep/acelite/ace/os_include/os_dlfcn.h b/dep/acelite/ace/os_include/os_dlfcn.h
index 0f74437fb80..c65d78f197c 100644
--- a/dep/acelite/ace/os_include/os_dlfcn.h
+++ b/dep/acelite/ace/os_include/os_dlfcn.h
@@ -6,7 +6,7 @@
*
* dynamic linking
*
- * $Id: os_dlfcn.h 82273 2008-07-09 14:21:45Z jtc $
+ * $Id: os_dlfcn.h 94379 2011-08-09 17:18:49Z johnnyw $
*
* @author Don Hinton <dhinton@dresystems.com>
* @author This code was originally in various places including ace/OS.h.
@@ -49,13 +49,6 @@ extern "C"
{
#endif /* __cplusplus */
-#if defined (_M_UNIX)
- int _dlclose (void *);
- char *_dlerror (void);
- void *_dlopen (const char *, int);
- void * _dlsym (void *, const char *);
-#endif /* _M_UNIX */
-
/* 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 */
@@ -63,22 +56,38 @@ extern "C"
#if defined (ACE_WIN32)
// 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
+# if !defined (ACE_SHLIB_INVALID_HANDLE)
+# define ACE_SHLIB_INVALID_HANDLE 0
+# endif /* ACE_SHLIB_INVALID_HANDLE */
+# if !defined (ACE_DEFAULT_SHLIB_MODE)
+# define ACE_DEFAULT_SHLIB_MODE 0
+# endif /* ACE_DEFAULT_SHLIB_MODE */
#elif defined (ACE_HAS_SVR4_DYNAMIC_LINKING)
typedef void *ACE_SHLIB_HANDLE;
-# define ACE_SHLIB_INVALID_HANDLE 0
+# if !defined (ACE_SHLIB_INVALID_HANDLE)
+# define ACE_SHLIB_INVALID_HANDLE 0
+# endif /* ACE_SHLIB_INVALID_HANDLE */
// This is needed to for dynamic_cast to work properly on objects passed to
// libraries.
-# define ACE_DEFAULT_SHLIB_MODE RTLD_LAZY | RTLD_GLOBAL
+# if !defined (ACE_DEFAULT_SHLIB_MODE)
+# define ACE_DEFAULT_SHLIB_MODE RTLD_LAZY | RTLD_GLOBAL
+# endif
#elif defined (__hpux)
typedef shl_t ACE_SHLIB_HANDLE;
-# define ACE_SHLIB_INVALID_HANDLE 0
-# define ACE_DEFAULT_SHLIB_MODE BIND_DEFERRED | DYNAMIC_PATH
+# if !defined (ACE_SHLIB_INVALID_HANDLE)
+# define ACE_SHLIB_INVALID_HANDLE 0
+# endif /* ACE_SHLIB_INVALID_HANDLE */
+# if !defined (ACE_DEFAULT_SHLIB_MODE)
+# define ACE_DEFAULT_SHLIB_MODE BIND_DEFERRED | DYNAMIC_PATH
+# endif /* ACE_DEFAULT_SHLIB_MODE */
#else /* !ACE_WIN32 && !ACE_HAS_SVR4_DYNAMIC_LINKING && !__hpux */
typedef void *ACE_SHLIB_HANDLE;
-# define ACE_SHLIB_INVALID_HANDLE 0
-# define ACE_DEFAULT_SHLIB_MODE RTLD_LAZY
+# if !defined (ACE_SHLIB_INVALID_HANDLE)
+# define ACE_SHLIB_INVALID_HANDLE 0
+# endif /* ACE_SHLIB_INVALID_HANDLE */
+# if !defined (ACE_DEFAULT_SHLIB_MODE)
+# define ACE_DEFAULT_SHLIB_MODE RTLD_LAZY
+# endif /* ACE_DEFAULT_SHLIB_MODE */
#endif /* ACE_WIN32 */
#if !defined (RTLD_LAZY)
diff --git a/dep/acelite/ace/os_include/os_fcntl.h b/dep/acelite/ace/os_include/os_fcntl.h
index 048ff62ae6e..bc3796a6b1f 100644
--- a/dep/acelite/ace/os_include/os_fcntl.h
+++ b/dep/acelite/ace/os_include/os_fcntl.h
@@ -6,7 +6,7 @@
*
* file control options
*
- * $Id: os_fcntl.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: os_fcntl.h 93359 2011-02-11 11:33:12Z mcorino $
*
* @author Don Hinton <dhinton@dresystems.com>
* @author This code was originally in various places including ace/OS.h.
@@ -31,11 +31,6 @@
# include /**/ <fcntl.h>
#endif /* !ACE_LACKS_FCNTL_H */
-#if defined (ACE_VXWORKS) && (ACE_VXWORKS < 0x620)
-// for creat(), open()
-# include /**/ <ioLib.h>
-#endif /* ACE_VXWORKS */
-
// Place all additions (especially function declarations) within extern "C" {}
#ifdef __cplusplus
extern "C"
diff --git a/dep/acelite/ace/os_include/os_ifaddrs.h b/dep/acelite/ace/os_include/os_ifaddrs.h
new file mode 100644
index 00000000000..1009c592a63
--- /dev/null
+++ b/dep/acelite/ace/os_include/os_ifaddrs.h
@@ -0,0 +1,43 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file os_ifaddrs.h
+ *
+ * os_ifaddrs.h include
+ *
+ * $Id: os_ifaddrs.h 93622 2011-03-22 15:45:57Z johnnyw $
+ *
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ */
+//=============================================================================
+
+#ifndef ACE_OS_INCLUDE_OS_IFADDRS_H
+#define ACE_OS_INCLUDE_OS_IFADDRS_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_VXWORKS)
+# include /**/ <net/ifaddrs.h>
+#else
+# include /**/ <ifaddrs.h>
+#endif /*ACE_VXWORKS */
+
+// Place all additions (especially function declarations) within extern "C" {}
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#include /**/ "ace/post.h"
+#endif /* ACE_OS_INCLUDE_OS_IFADDRS_H */
diff --git a/dep/acelite/ace/os_include/os_limits.h b/dep/acelite/ace/os_include/os_limits.h
index a128efcc060..c0e5e23914a 100644
--- a/dep/acelite/ace/os_include/os_limits.h
+++ b/dep/acelite/ace/os_include/os_limits.h
@@ -6,7 +6,7 @@
*
* implementation-defined constants
*
- * $Id: os_limits.h 84972 2009-03-25 19:09:06Z johnnyw $
+ * $Id: os_limits.h 93359 2011-02-11 11:33:12Z mcorino $
*
* @author Don Hinton <dhinton@dresystems.com>
* @author This code was originally in various places including ace/OS.h.
@@ -35,11 +35,6 @@
# include /**/ <sys/param.h>
#endif /* ACE_LACKS_SYS_PARAM_H */
-// On VxWorks 5.5.1 _POSIX_TIMER_MAX is defined in time.h
-#if defined (ACE_VXWORKS) && (ACE_VXWORKS < 0x620)
-# include /**/ <time.h>
-#endif /* ACE_VXWORKS */
-
// Place all additions (especially function declarations) within extern "C" {}
#ifdef __cplusplus
extern "C"
@@ -102,7 +97,7 @@ extern "C"
# define ACE_IOV_MAX IOV_MAX
#endif /* ACE_IOV_MAX */
-#if defined (ACE_VXWORKS) && ((ACE_VXWORKS >= 0x620) && (ACE_VXWORKS <= 0x670)) && !defined (__RTP__)
+#if defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x670) && !defined (__RTP__)
# if defined (PIPE_BUF) && (PIPE_BUF == -1)
# undef PIPE_BUF
# endif
diff --git a/dep/acelite/ace/os_include/os_netdb.h b/dep/acelite/ace/os_include/os_netdb.h
index 87629474aa9..14a8e5d7f8b 100644
--- a/dep/acelite/ace/os_include/os_netdb.h
+++ b/dep/acelite/ace/os_include/os_netdb.h
@@ -6,7 +6,7 @@
*
* definitions for network database operations
*
- * $Id: os_netdb.h 91743 2010-09-13 18:24:51Z johnnyw $
+ * $Id: os_netdb.h 93359 2011-02-11 11:33:12Z mcorino $
*
* @author Don Hinton <dhinton@dresystems.com>
* @author This code was originally in various places including ace/OS.h.
@@ -27,10 +27,6 @@
#include "ace/os_include/netinet/os_in.h"
#include "ace/os_include/os_limits.h"
-#if defined (ACE_VXWORKS) && (ACE_VXWORKS < 0x620)
-# include /**/ <hostLib.h>
-#endif /* ACE_VXWORKS */
-
// Place all additions (especially function declarations) within extern "C" {}
#ifdef __cplusplus
extern "C"
diff --git a/dep/acelite/ace/os_include/os_pthread.h b/dep/acelite/ace/os_include/os_pthread.h
index 64f1b75537d..aef6fca29ab 100644
--- a/dep/acelite/ace/os_include/os_pthread.h
+++ b/dep/acelite/ace/os_include/os_pthread.h
@@ -6,7 +6,7 @@
*
* threads
*
- * $Id: os_pthread.h 91781 2010-09-15 12:49:15Z johnnyw $
+ * $Id: os_pthread.h 95761 2012-05-15 18:23:04Z johnnyw $
*
* @author Don Hinton <dhinton@dresystems.com>
* @author This code was originally in various places including ace/OS.h.
@@ -48,11 +48,7 @@
#if !defined (ACE_LACKS_PTHREAD_H)
extern "C" {
-# if defined (ACE_TANDEM_T1248_PTHREADS)
-# include /**/ <spthread.h>
-# else
# include /**/ <pthread.h>
-# endif
}
#endif /* !ACE_LACKS_PTHREAD_H */
@@ -233,26 +229,10 @@
# 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
+# define THR_CANCEL_DISABLE 0x00000100
+# define THR_CANCEL_ENABLE 0x00000200
+# define THR_CANCEL_DEFERRED 0x00000400
+# define THR_CANCEL_ASYNCHRONOUS 0x00000800
# if !defined (PTHREAD_CREATE_JOINABLE)
# if defined (PTHREAD_CREATE_UNDETACHED)
@@ -292,20 +272,20 @@
# endif /* ACE_HAS_STHREADS */
/* MM-Graz: prevent warnings */
-# undef THR_BOUND
-# undef THR_NEW_LWP
-# undef THR_DETACHED
-# undef THR_SUSPENDED
-# undef THR_DAEMON
-
-# define THR_BOUND 0x00000001
-# define THR_NEW_LWP 0x00000002
-# define THR_DETACHED 0x00000040
-# define THR_SUSPENDED 0x00000080
-# define THR_DAEMON 0x00000100
-# define THR_SCHED_FIFO 0x00020000
-# define THR_SCHED_RR 0x00040000
-# define THR_SCHED_DEFAULT 0x00080000
+# undef THR_BOUND
+# undef THR_NEW_LWP
+# undef THR_DETACHED
+# undef THR_SUSPENDED
+# undef THR_DAEMON
+
+# define THR_BOUND 0x00000001
+# define THR_NEW_LWP 0x00000002
+# define THR_DAEMON 0x00000010
+# define THR_DETACHED 0x00000040
+# define THR_SUSPENDED 0x00000080
+# define THR_SCHED_FIFO 0x00020000
+# define THR_SCHED_RR 0x00040000
+# define THR_SCHED_DEFAULT 0x00080000
# define THR_JOINABLE 0x00010000
@@ -385,7 +365,7 @@ public:
const struct timespec * abstime);
# endif /* _XOPEN_SOURCE && _XOPEN_SOURCE < 600 */
-# endif /* linux && ((__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)) */
+# endif /* ACE_LINUX && ((__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)) */
#elif defined (ACE_HAS_STHREADS)
# if !defined (ACE_THR_PRI_FIFO_MIN)
diff --git a/dep/acelite/ace/os_include/os_pwd.h b/dep/acelite/ace/os_include/os_pwd.h
index be00448a9d0..a478a770b3b 100644
--- a/dep/acelite/ace/os_include/os_pwd.h
+++ b/dep/acelite/ace/os_include/os_pwd.h
@@ -6,7 +6,7 @@
*
* password structure
*
- * $Id: os_pwd.h 91683 2010-09-09 09:07:49Z johnnyw $
+ * $Id: os_pwd.h 93564 2011-03-16 14:35:58Z olli $
*
* @author Don Hinton <dhinton@dresystems.com>
* @author This code was originally in various places including ace/OS.h.
@@ -36,14 +36,6 @@ extern "C"
{
#endif /* __cplusplus */
-#if !defined (ACE_WIN32)
-// 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 int _posix_getpwnam_r(const char *, struct passwd *, char *,
- int, struct passwd **);
-# endif /* AIX and VAC++ 4 */
-#endif /* !ACE_WIN32 */
#ifdef __cplusplus
}
diff --git a/dep/acelite/ace/os_include/os_signal.h b/dep/acelite/ace/os_include/os_signal.h
index 667f28401e4..14e12a81127 100644
--- a/dep/acelite/ace/os_include/os_signal.h
+++ b/dep/acelite/ace/os_include/os_signal.h
@@ -6,7 +6,7 @@
*
* signals
*
- * $Id: os_signal.h 91781 2010-09-15 12:49:15Z johnnyw $
+ * $Id: os_signal.h 95430 2012-01-11 20:45:28Z mcorino $
*
* @author Don Hinton <dhinton@dresystems.com>
* @author This code was originally in various places including ace/OS.h.
@@ -34,27 +34,23 @@
#if defined (ACE_HAS_SIGINFO_T)
# if !defined (ACE_LACKS_SIGINFO_H)
-# if defined (__QNX__) || defined (__OpenBSD__) || defined (__INTERIX)
+# if defined (ACE_HAS_SYS_SIGINFO_H)
# include /**/ <sys/siginfo.h>
-# else /* __QNX__ || __OpenBSD__ */
+# else /* ACE_HAS_SYS_SIGINFO_H */
# include /**/ <siginfo.h>
-# endif /* __QNX__ || __OpenBSD__ */
+# endif /* ACE_HAS_SYS_SIGINFO_H */
# endif /* ACE_LACKS_SIGINFO_H */
#endif /* ACE_HAS_SIGINFO_T */
-#if defined (ACE_VXWORKS) && (ACE_VXWORKS < 0x620) && !defined (__RTP__)
-# include /**/ <sigLib.h>
-#endif /* ACE_VXWORKS */
-
// Place all additions (especially function declarations) within extern "C" {}
#ifdef __cplusplus
extern "C"
{
#endif /* __cplusplus */
-#if defined (ACE_LACKS_SIGSET) && !defined (__MINGW32__)
+#if defined (ACE_LACKS_SIGSET_T)
typedef u_int sigset_t;
-#endif /* ACE_LACKS_SIGSET && !sigset_t */
+#endif /* ACE_LACKS_SIGSET_T && !sigset_t */
#if !defined (ACE_HAS_SIG_ATOMIC_T)
typedef int sig_atomic_t;
diff --git a/dep/acelite/ace/os_include/os_stdio.h b/dep/acelite/ace/os_include/os_stdio.h
index e9f452024ff..fe2a7e305e3 100644
--- a/dep/acelite/ace/os_include/os_stdio.h
+++ b/dep/acelite/ace/os_include/os_stdio.h
@@ -6,7 +6,7 @@
*
* standard buffered input/output
*
- * $Id: os_stdio.h 80826 2008-03-04 14:51:23Z wotte $
+ * $Id: os_stdio.h 93597 2011-03-21 12:54:52Z johnnyw $
*
* @author Don Hinton <dhinton@dresystems.com>
* @author This code was originally in various places including ace/OS.h.
@@ -37,9 +37,6 @@
# include /**/ <ioLib.h>
// for remCurIdGet()
# include /**/ <remLib.h>
-# if defined (__RTP__) && ((ACE_VXWORKS >= 0x620) && (ACE_VXWORKS <= 0x650))
-# define L_cuserid _PARM_L_cuserid
-# endif
#endif /* ACE_VXWORKS */
// Place all additions (especially function declarations) within extern "C" {}
diff --git a/dep/acelite/ace/os_include/os_stdlib.h b/dep/acelite/ace/os_include/os_stdlib.h
index 863a508029f..5576b142c6a 100644
--- a/dep/acelite/ace/os_include/os_stdlib.h
+++ b/dep/acelite/ace/os_include/os_stdlib.h
@@ -6,7 +6,7 @@
*
* standard library definitions
*
- * $Id: os_stdlib.h 91683 2010-09-09 09:07:49Z johnnyw $
+ * $Id: os_stdlib.h 93573 2011-03-17 07:53:03Z olli $
*
* @author Don Hinton <dhinton@dresystems.com>
* @author This code was originally in various places including ace/OS.h.
@@ -45,14 +45,6 @@ extern "C"
{
#endif /* __cplusplus */
- typedef u_int ACE_RANDR_TYPE;
-#if defined (ACE_HAS_BROKEN_RANDR)
- // The SunOS 5.4.X version of rand_r is inconsistent with the header
- // files...
- int rand_r (ACE_RANDR_TYPE seed);
-#else
-#endif /* ACE_HAS_BROKEN_RANDR */
-
#if defined (ACE_LACKS_PUTENV_PROTOTYPE)
int putenv (char *);
#endif /* ACE_LACKS_PUTENV_PROTOTYPE */
diff --git a/dep/acelite/ace/os_include/os_string.h b/dep/acelite/ace/os_include/os_string.h
index 0aa2f7de7cc..779e97cf9fe 100644
--- a/dep/acelite/ace/os_include/os_string.h
+++ b/dep/acelite/ace/os_include/os_string.h
@@ -6,7 +6,7 @@
*
* string operations
*
- * $Id: os_string.h 87216 2009-10-23 20:26:16Z olli $
+ * $Id: os_string.h 93117 2011-01-20 12:11:28Z mcorino $
*
* @author Don Hinton <dhinton@dresystems.com>
* @author This code was originally in various places including ace/OS.h.
@@ -41,10 +41,6 @@ extern "C"
char *strtok_r (char *s, const char *delim, char **save_ptr);
#endif /* ACE_LACKS_STRTOK_R_PROTOTYPE */
-#if defined (ACE_LACKS_STRNLEN_PROTOTYPE)
- size_t strnlen(const char *s, size_t maxlen);
-#endif /* ACE_LACKS_STRNLEN_PROTOTYPE */
-
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/dep/acelite/ace/os_include/os_wchar.h b/dep/acelite/ace/os_include/os_wchar.h
index 37eab2e4ee0..86f6572bc62 100644
--- a/dep/acelite/ace/os_include/os_wchar.h
+++ b/dep/acelite/ace/os_include/os_wchar.h
@@ -6,7 +6,7 @@
*
* wide-character handling
*
- * $Id: os_wchar.h 83948 2008-12-02 13:55:34Z jtc $
+ * $Id: os_wchar.h 93117 2011-01-20 12:11:28Z mcorino $
*
* @author Don Hinton <dhinton@dresystems.com>
* @author This code was originally in various places including ace/OS.h.
@@ -41,14 +41,6 @@ extern "C"
{
#endif /* __cplusplus */
-#if defined (ACE_LACKS_WCSTOLL_PROTOTYPE)
- long long wcstoll (const wchar_t *, wchar_t **, int);
-#endif /* ACE_LACKS_WCSTOLL_PROTOTYPE */
-
-#if defined (ACE_LACKS_WCSTOULL_PROTOTYPE)
- unsigned long long wcstoull (const wchar_t *, wchar_t **, int);
-#endif /* ACE_LACKS_WCSTOULL_PROTOTYPE */
-
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/dep/acelite/ace/os_include/sys/os_resource.h b/dep/acelite/ace/os_include/sys/os_resource.h
index 7f644a09d25..3ee101438cf 100644
--- a/dep/acelite/ace/os_include/sys/os_resource.h
+++ b/dep/acelite/ace/os_include/sys/os_resource.h
@@ -6,7 +6,7 @@
*
* definitions for XSI resource operations
*
- * $Id: os_resource.h 91781 2010-09-15 12:49:15Z johnnyw $
+ * $Id: os_resource.h 93895 2011-04-14 07:59:18Z olli $
*
* @author Don Hinton <dhinton@dresystems.com>
* @author This code was originally in various places including ace/OS.h.
@@ -50,17 +50,6 @@ extern "C"
{
#endif /* __cplusplus */
-// There must be a better way to do this...
-#if !defined (RLIMIT_NOFILE) && !defined (ACE_LACKS_RLIMIT_NOFILE)
-# if defined (linux) || defined (AIX)
-# if defined (RLIMIT_OFILE)
-# define RLIMIT_NOFILE RLIMIT_OFILE
-# else
-# define RLIMIT_NOFILE 200
-# endif /* RLIMIT_OFILE */
-# endif /* defined (linux) || defined (AIX) */
-#endif /* RLIMIT_NOFILE */
-
#if defined (ACE_WIN32)
# define RUSAGE_SELF 1
/// Fake the UNIX rusage structure. Perhaps we can add more to this
diff --git a/dep/acelite/ace/os_include/sys/os_select.h b/dep/acelite/ace/os_include/sys/os_select.h
index 59473aff398..d6f7a36f796 100644
--- a/dep/acelite/ace/os_include/sys/os_select.h
+++ b/dep/acelite/ace/os_include/sys/os_select.h
@@ -6,7 +6,7 @@
*
* select types
*
- * $Id: os_select.h 85015 2009-04-03 12:27:59Z johnnyw $
+ * $Id: os_select.h 93359 2011-02-11 11:33:12Z mcorino $
*
* @author Don Hinton <dhinton@dresystems.com>
* @author This code was originally in various places including ace/OS.h.
@@ -44,7 +44,7 @@ extern "C"
#if defined (ACE_LACKS_FD_MASK)
typedef long fd_mask;
-#endif /* __QNX__ */
+#endif /* ACE_LACKS_FD_MASK */
#if defined (ACE_WIN32)
// This will help until we figure out everything:
diff --git a/dep/acelite/ace/os_include/sys/os_stat.h b/dep/acelite/ace/os_include/sys/os_stat.h
index 19b126500c1..d4987246680 100644
--- a/dep/acelite/ace/os_include/sys/os_stat.h
+++ b/dep/acelite/ace/os_include/sys/os_stat.h
@@ -6,7 +6,7 @@
*
* data returned by the stat() function
*
- * $Id: os_stat.h 85057 2009-04-08 10:59:58Z msmit $
+ * $Id: os_stat.h 95718 2012-05-01 11:42:47Z johnnyw $
*
* @author Don Hinton <dhinton@dresystems.com>
* @author This code was originally in various places including ace/OS.h.
@@ -110,6 +110,7 @@ extern "C"
# define S_IFDIR FILE_ATTRIBUTE_DIRECTORY
# define S_IFREG FILE_ATTRIBUTE_NORMAL
# define S_IFLNK 0
+# define S_IFCHR 0
# if !defined (__MINGW32__)
// Since CE does not have _stat by default as NT/2000 does, the 'stat'
diff --git a/dep/acelite/ace/os_include/sys/os_time.h b/dep/acelite/ace/os_include/sys/os_time.h
index 937ceebaa13..29e317d58f7 100644
--- a/dep/acelite/ace/os_include/sys/os_time.h
+++ b/dep/acelite/ace/os_include/sys/os_time.h
@@ -6,7 +6,7 @@
*
* time types
*
- * $Id: os_time.h 85365 2009-05-18 08:27:42Z johnnyw $
+ * $Id: os_time.h 96090 2012-08-22 06:13:38Z johnnyw $
*
* @author Don Hinton <dhinton@dresystems.com>
* @author This code was originally in various places including ace/OS.h.
@@ -30,9 +30,13 @@
# include /**/ <sys/time.h>
#endif /* !ACE_LACKS_SYS_TIME_H */
-#if defined (ACE_VXWORKS) && (ACE_VXWORKS == 0x620)
-# include /**/ <time.h> // VxWorks 6.2 defined timeval in time.h
-#endif
+#if defined (ACE_LACKS_CLOCK_REALTIME)
+# define CLOCK_REALTIME 0
+#endif /* ACE_LACKS_CLOCK_REALTIME */
+
+#if defined (ACE_LACKS_CLOCK_MONOTONIC)
+# define CLOCK_MONOTONIC 1
+#endif /* ACE_LACKS_CLOCK_MONOTONIC */
// Place all additions (especially function declarations) within extern "C" {}
#ifdef __cplusplus
diff --git a/dep/acelite/ace/os_include/sys/os_types.h b/dep/acelite/ace/os_include/sys/os_types.h
index 195f24cffa5..d2920899283 100644
--- a/dep/acelite/ace/os_include/sys/os_types.h
+++ b/dep/acelite/ace/os_include/sys/os_types.h
@@ -6,7 +6,7 @@
*
* data types
*
- * $Id: os_types.h 91683 2010-09-09 09:07:49Z johnnyw $
+ * $Id: os_types.h 96089 2012-08-21 16:59:07Z johnnyw $
*
* @author Don Hinton <dhinton@dresystems.com>
* @author This code was originally in various places including ace/OS.h.
@@ -47,13 +47,9 @@ extern "C"
typedef double ACE_timer_t;
-// todo: don't forget to clean this up! ;-)
-#if !defined (ACE_HAS_CLOCK_GETTIME) && !(defined (_CLOCKID_T_) || defined (_CLOCKID_T))
+#if defined (ACE_LACKS_CLOCKID_T)
typedef int clockid_t;
-# if !defined (CLOCK_REALTIME)
-# define CLOCK_REALTIME 0
-# endif /* CLOCK_REALTIME */
-#endif /* ! ACE_HAS_CLOCK_GETTIME && ! _CLOCKID_T_ */
+#endif /* ACE_LACKS_CLOCKID_T */
#if defined (ACE_LACKS_DEV_T)
typedef unsigned int dev_t;
@@ -71,7 +67,7 @@ typedef double ACE_timer_t;
#if defined (ACE_SIZEOF_LONG) && ACE_SIZEOF_LONG == 8
typedef off_t ACE_LOFF_T;
-#elif defined (ACE_HAS_RTEMS) || defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__APPLE__) || defined(ACE_MVS) || defined(__INTERIX) || \
+#elif defined (ACE_HAS_RTEMS) || defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__APPLE__) || defined(__INTERIX) || \
(defined (ACE_OPENVMS) && defined (_LARGEFILE))
typedef off_t ACE_LOFF_T;
#elif defined (AIX) || defined (HPUX) || defined (__QNX__)
@@ -80,7 +76,7 @@ typedef double ACE_timer_t;
typedef offset_t ACE_LOFF_T;
#elif defined (WIN32)
typedef __int64 ACE_LOFF_T;
-#elif (defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x680)) || \
+#elif (defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x690)) || \
defined (ACE_LYNXOS_MAJOR) || \
(defined (ACE_OPENVMS) && !defined (_LARGEFILE)) || \
defined (__TANDEM)