diff options
author | irfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-10-08 17:12:45 +0000 |
---|---|---|
committer | irfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-10-08 17:12:45 +0000 |
commit | 85b3931f3331302c4dbf6205595c8cccfdca705e (patch) | |
tree | 63a7e45078230fc5b356cbdd80cf1adf9ec82678 /TAO | |
parent | eb6f9152072284b18cd63401807f1db2619b853c (diff) | |
download | ATCD-85b3931f3331302c4dbf6205595c8cccfdca705e.tar.gz |
ChangeLogTag:Fri Oct 08 12:05:03 1999 Irfan Pyarali <irfan@cs.wustl.edu>
Diffstat (limited to 'TAO')
60 files changed, 5968 insertions, 385 deletions
diff --git a/TAO/ChangeLog-99c b/TAO/ChangeLog-99c index d16f3f1e0ef..bfdc4ecc0ac 100644 --- a/TAO/ChangeLog-99c +++ b/TAO/ChangeLog-99c @@ -1,3 +1,77 @@ +Fri Oct 08 12:05:03 1999 Irfan Pyarali <irfan@cs.wustl.edu> + + * tao/Messaging_Policy_i.h (SyncScopePolicy): Added + TAO_Sync_Scope_Policy, an implementation for the Messaging + SyncScopePolicy. + + * tao/Messaging.pidl: Added TAO specific SYNC_FLUSH option to the + SyncScope policy defined in the Messaging specification. This + allows the user to flush any queue messages on this connection. + + * tao/TAO.pidl (BufferingConstraintPolicy): Added new policy for + selecting parameters for buffering. This includes buffering + constraints based on timeouts, message counts, and/or message + bytes. This policy comes into effect with the selection of the + SYNC_NONE option for the SyncScope policy defined in the + Messaging specification. + + Also added the respective stubs and skeletons. + + The stub and skeleton files were missing TAO_HAS_CORBA_MESSAGING + guards. Those files and Client_Priority_Policy.* should be + fixed now. + + Buffering_Constraint_Policy.* contain code for the servant + implementation for this policy. + + * tao/orbconf.h (TAO_BUFFERING_CONSTRAINT_POLICY_TYPE): Added + policy type constant for new (TAO specific) buffer constraint + policy. + + * tao: Added support the SyncScope and the BufferingContraint + policies to the following Stub, ORB, and ORB_Core. + + * tao/Sync_Strategies: This new files contains three strategies + for dealing with oneway invocations. + TAO_Transport_Sync_Strategy synchronizes with the transport + layer. TAO_None_Sync_Strategy buffers oneways till some + buffering constraints are met. TAO_Flush_Sync_Strategy flushes + any queued message to the transport layer. + + * tao/{U,I}IOP_Transport.cpp (send): If we have a valid stub, use + the sync strategy to send the data. Only clients have valid + stubs; server don't. + + * tao/Invocation.cpp (invoke): Invocation class now provides the + stub to the transport. This can be used to find the correct + Sync Strategy to use. + + * tao/GIOP.cpp (send_message): This message now takes an + additional <stub> parameter. + + * tao/Pluggable.h (TAO_Transport): Added a message queue pointer + to the base class. This queue is created on demand. Also added + new <send> and <send_request> methods that take a stub pointer + as an additional parameter. + + * examples/Buffered_Oneways: This is a simple test for buffered + oneways. It invokes multiple oneway calls. Due to buffering in + the ORB, the calls are automatically bunched together instead of + being delivered to the server upon every invocation. + + * tao/Typecode.i (equal): If the two pointers <this> and <tc> are + the same, immediately return true. Thanks to Carlos for helping + with this. + + * tao/Policy_Manager.cpp: Added code for the two new policies, + BufferingConstraintPolicy and SyncScope. Also code for the + Client Priority policy was missing from <copy_from>. This was + fixed. + + * tao/TimeBase.pidl: Added missing #pragma prefix "" at the end of + the file. Otherwise, any file including TimeBase.pidl got the + "omg.org" prefix. + Fri Oct 8 11:28:54 1999 Pradeep Gore <pradeep@flamenco.cs.wustl.edu> * orbsvcs/orbsvcs/orbsvcs.dsp: diff --git a/TAO/examples/Buffered_Oneways/Buffered_Oneways.dsw b/TAO/examples/Buffered_Oneways/Buffered_Oneways.dsw new file mode 100644 index 00000000000..65fefc63e63 --- /dev/null +++ b/TAO/examples/Buffered_Oneways/Buffered_Oneways.dsw @@ -0,0 +1,40 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "client"=.\client.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "server"=.\server.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
diff --git a/TAO/examples/Buffered_Oneways/Makefile b/TAO/examples/Buffered_Oneways/Makefile new file mode 100644 index 00000000000..1f6f2b871a5 --- /dev/null +++ b/TAO/examples/Buffered_Oneways/Makefile @@ -0,0 +1,2062 @@ +#---------------------------------------------------------------------------- +# +# $Id$ +# +#---------------------------------------------------------------------------- + +#---------------------------------------------------------------------------- +# Local macros +#---------------------------------------------------------------------------- + +ifndef TAO_ROOT + TAO_ROOT = $(ACE_ROOT)/TAO +endif # ! TAO_ROOT + +LDLIBS = -lTAO + +IDLFILES = testC testS +BIN = client server + +SRC = $(addsuffix .cpp, $(BIN) $(IDLFILES) test_i) + +CLIENT_OBJS = client.o $(addsuffix .o, $(IDLFILES)) +SERVER_OBJS = server.o test_i.o $(addsuffix .o, $(IDLFILES)) + +TAO_IDLFLAGS += -Ge 1 +#---------------------------------------------------------------------------- +# Include macros and targets +#---------------------------------------------------------------------------- + +include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU +include $(ACE_ROOT)/include/makeinclude/macros.GNU +include $(TAO_ROOT)/rules.tao.GNU +include $(ACE_ROOT)/include/makeinclude/rules.common.GNU +include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU +include $(ACE_ROOT)/include/makeinclude/rules.local.GNU +include $(TAO_ROOT)/taoconfig.mk + +#---------------------------------------------------------------------------- +# Local targets +#---------------------------------------------------------------------------- + +.PRECIOUS: $(foreach ext, $(IDL_EXT), test$(ext)) + +server: $(addprefix $(VDIR),$(SERVER_OBJS)) + $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) + +client: $(addprefix $(VDIR),$(CLIENT_OBJS)) + $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) + +realclean: clean + -$(RM) $(foreach ext, $(IDL_EXT), test$(ext)) + +# DO NOT DELETE THIS LINE -- g++dep uses it. +# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. + +.obj/client.o .obj/client.so .shobj/client.o .shobj/client.so: client.cpp \ + $(ACE_ROOT)/ace/Get_Opt.h \ + $(ACE_ROOT)/ace/ACE.h \ + $(ACE_ROOT)/ace/OS.h \ + $(ACE_ROOT)/ace/inc_user_config.h \ + $(ACE_ROOT)/ace/streams.h \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/Basic_Types.i \ + $(ACE_ROOT)/ace/Trace.h \ + $(ACE_ROOT)/ace/OS.i \ + $(ACE_ROOT)/ace/Log_Msg.h \ + $(ACE_ROOT)/ace/Log_Record.h \ + $(ACE_ROOT)/ace/ACE.i \ + $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/Log_Record.i \ + $(ACE_ROOT)/ace/Get_Opt.i \ + $(ACE_ROOT)/ace/Task.h \ + $(ACE_ROOT)/ace/Service_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.i \ + $(ACE_ROOT)/ace/Event_Handler.h \ + $(ACE_ROOT)/ace/Event_Handler.i \ + $(ACE_ROOT)/ace/Service_Object.i \ + $(ACE_ROOT)/ace/Thread_Manager.h \ + $(ACE_ROOT)/ace/Thread.h \ + $(ACE_ROOT)/ace/Thread.i \ + $(ACE_ROOT)/ace/Synch.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ + $(ACE_ROOT)/ace/Synch.i \ + $(ACE_ROOT)/ace/Synch_T.h \ + $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Atomic_Op.i \ + $(ACE_ROOT)/ace/Synch_T.cpp \ + $(ACE_ROOT)/ace/Containers.h \ + $(ACE_ROOT)/ace/Malloc_Base.h \ + $(ACE_ROOT)/ace/Containers.i \ + $(ACE_ROOT)/ace/Containers_T.h \ + $(ACE_ROOT)/ace/Containers_T.i \ + $(ACE_ROOT)/ace/Containers_T.cpp \ + $(ACE_ROOT)/ace/Malloc.h \ + $(ACE_ROOT)/ace/Malloc.i \ + $(ACE_ROOT)/ace/Malloc_T.h \ + $(ACE_ROOT)/ace/Free_List.h \ + $(ACE_ROOT)/ace/Free_List.i \ + $(ACE_ROOT)/ace/Free_List.cpp \ + $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Memory_Pool.h \ + $(ACE_ROOT)/ace/Signal.h \ + $(ACE_ROOT)/ace/Signal.i \ + $(ACE_ROOT)/ace/Mem_Map.h \ + $(ACE_ROOT)/ace/Mem_Map.i \ + $(ACE_ROOT)/ace/Memory_Pool.i \ + $(ACE_ROOT)/ace/Thread_Manager.i \ + $(ACE_ROOT)/ace/Task.i \ + $(ACE_ROOT)/ace/Task_T.h \ + $(ACE_ROOT)/ace/Message_Queue.h \ + $(ACE_ROOT)/ace/Message_Block.h \ + $(ACE_ROOT)/ace/Message_Block.i \ + $(ACE_ROOT)/ace/Message_Block_T.h \ + $(ACE_ROOT)/ace/Message_Block_T.i \ + $(ACE_ROOT)/ace/Message_Block_T.cpp \ + $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ + $(ACE_ROOT)/ace/Message_Queue_T.h \ + $(ACE_ROOT)/ace/Message_Queue_T.i \ + $(ACE_ROOT)/ace/Message_Queue_T.cpp \ + $(ACE_ROOT)/ace/Strategies.h \ + $(ACE_ROOT)/ace/Strategies_T.h \ + $(ACE_ROOT)/ace/Service_Config.h \ + $(ACE_ROOT)/ace/SString.h \ + $(ACE_ROOT)/ace/SString.i \ + $(ACE_ROOT)/ace/Service_Config.i \ + $(ACE_ROOT)/ace/Reactor.h \ + $(ACE_ROOT)/ace/Handle_Set.h \ + $(ACE_ROOT)/ace/Handle_Set.i \ + $(ACE_ROOT)/ace/Timer_Queue.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.i \ + $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ + $(ACE_ROOT)/ace/Reactor.i \ + $(ACE_ROOT)/ace/Reactor_Impl.h \ + $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(ACE_ROOT)/ace/Synch_Options.h \ + $(ACE_ROOT)/ace/Synch_Options.i \ + $(ACE_ROOT)/ace/Hash_Map_Manager.h \ + $(ACE_ROOT)/ace/Functor.h \ + $(ACE_ROOT)/ace/Functor.i \ + $(ACE_ROOT)/ace/Functor_T.h \ + $(ACE_ROOT)/ace/Functor_T.i \ + $(ACE_ROOT)/ace/Functor_T.cpp \ + $(ACE_ROOT)/ace/Hash_Map_Manager.i \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ + $(ACE_ROOT)/ace/Strategies_T.i \ + $(ACE_ROOT)/ace/Strategies_T.cpp \ + $(ACE_ROOT)/ace/Service_Repository.h \ + $(ACE_ROOT)/ace/Service_Types.h \ + $(ACE_ROOT)/ace/Service_Types.i \ + $(ACE_ROOT)/ace/Service_Repository.i \ + $(ACE_ROOT)/ace/WFMO_Reactor.h \ + $(ACE_ROOT)/ace/WFMO_Reactor.i \ + $(ACE_ROOT)/ace/Strategies.i \ + $(ACE_ROOT)/ace/Message_Queue.i \ + $(ACE_ROOT)/ace/Task_T.i \ + $(ACE_ROOT)/ace/Task_T.cpp \ + $(ACE_ROOT)/ace/Module.h \ + $(ACE_ROOT)/ace/Module.i \ + $(ACE_ROOT)/ace/Module.cpp \ + $(ACE_ROOT)/ace/Stream_Modules.h \ + $(ACE_ROOT)/ace/Stream_Modules.i \ + $(ACE_ROOT)/ace/Stream_Modules.cpp \ + testC.h \ + $(TAO_ROOT)/tao/corba.h \ + $(TAO_ROOT)/tao/corbafwd.h \ + $(ACE_ROOT)/ace/CDR_Stream.h \ + $(ACE_ROOT)/ace/CDR_Stream.i \ + $(TAO_ROOT)/tao/try_macros.h \ + $(TAO_ROOT)/tao/orbconf.h \ + $(ACE_ROOT)/ace/CORBA_macros.h \ + $(TAO_ROOT)/tao/corbafwd.i \ + $(TAO_ROOT)/tao/Environment.h \ + $(TAO_ROOT)/tao/Environment.i \ + $(TAO_ROOT)/tao/ORB.h \ + $(TAO_ROOT)/tao/Exception.h \ + $(TAO_ROOT)/tao/Exception.i \ + $(TAO_ROOT)/tao/IOR_LookupTable.h \ + $(TAO_ROOT)/tao/Services.h \ + $(TAO_ROOT)/tao/Sequence.h \ + $(TAO_ROOT)/tao/Managed_Types.h \ + $(TAO_ROOT)/tao/Managed_Types.i \ + $(TAO_ROOT)/tao/Sequence.i \ + $(TAO_ROOT)/tao/Sequence_T.h \ + $(TAO_ROOT)/tao/Sequence_T.i \ + $(TAO_ROOT)/tao/Sequence_T.cpp \ + $(TAO_ROOT)/tao/varout.h \ + $(TAO_ROOT)/tao/Object.h \ + $(TAO_ROOT)/tao/Object.i \ + $(TAO_ROOT)/tao/varout.i \ + $(TAO_ROOT)/tao/varout.cpp \ + $(TAO_ROOT)/tao/Services.i \ + $(TAO_ROOT)/tao/IORManipulation.h \ + $(TAO_ROOT)/tao/IORS.h \ + $(TAO_ROOT)/tao/IORC.h \ + $(TAO_ROOT)/tao/CDR.h \ + $(TAO_ROOT)/tao/Typecode.h \ + $(TAO_ROOT)/tao/Typecode.i \ + $(TAO_ROOT)/tao/CDR.i \ + $(TAO_ROOT)/tao/IORC.i \ + $(TAO_ROOT)/tao/Servant_Base.h \ + $(TAO_ROOT)/tao/POAC.h \ + $(TAO_ROOT)/tao/PolicyC.h \ + $(TAO_ROOT)/tao/CurrentC.h \ + $(TAO_ROOT)/tao/CurrentC.i \ + $(TAO_ROOT)/tao/PolicyC.i \ + $(TAO_ROOT)/tao/POAC.i \ + $(TAO_ROOT)/tao/Servant_Base.i \ + $(TAO_ROOT)/tao/IORS.i \ + $(TAO_ROOT)/tao/Interceptor.h \ + $(TAO_ROOT)/tao/InterceptorS.h \ + $(TAO_ROOT)/tao/InterceptorC.h \ + $(TAO_ROOT)/tao/IOPC.h \ + $(TAO_ROOT)/tao/IOPC.i \ + $(TAO_ROOT)/tao/Any.h \ + $(TAO_ROOT)/tao/Any.i \ + $(TAO_ROOT)/tao/InterceptorC.i \ + $(TAO_ROOT)/tao/Interceptor.i \ + $(TAO_ROOT)/tao/ORB.i \ + $(TAO_ROOT)/tao/NVList.h \ + $(TAO_ROOT)/tao/NVList.i \ + $(TAO_ROOT)/tao/Principal.h \ + $(TAO_ROOT)/tao/Principal.i \ + $(TAO_ROOT)/tao/Request.h \ + $(TAO_ROOT)/tao/Context.h \ + $(TAO_ROOT)/tao/Context.i \ + $(TAO_ROOT)/tao/Request.i \ + $(TAO_ROOT)/tao/Server_Request.h \ + $(TAO_ROOT)/tao/Object_KeyC.h \ + $(TAO_ROOT)/tao/Object_KeyC.i \ + $(TAO_ROOT)/tao/GIOP.h \ + $(TAO_ROOT)/tao/GIOP.i \ + $(TAO_ROOT)/tao/Server_Request.i \ + $(TAO_ROOT)/tao/Marshal.h \ + $(TAO_ROOT)/tao/Marshal.i \ + $(TAO_ROOT)/tao/singletons.h \ + $(ACE_ROOT)/ace/Singleton.h \ + $(ACE_ROOT)/ace/Singleton.i \ + $(ACE_ROOT)/ace/Singleton.cpp \ + $(ACE_ROOT)/ace/Object_Manager.h \ + $(ACE_ROOT)/ace/Object_Manager.i \ + $(ACE_ROOT)/ace/Managed_Object.h \ + $(ACE_ROOT)/ace/Managed_Object.i \ + $(ACE_ROOT)/ace/Managed_Object.cpp \ + $(TAO_ROOT)/tao/POA.h \ + $(TAO_ROOT)/tao/Object_Adapter.h \ + $(TAO_ROOT)/tao/Key_Adapters.h \ + $(ACE_ROOT)/ace/Map.h \ + $(ACE_ROOT)/ace/Map.i \ + $(ACE_ROOT)/ace/Map_T.h \ + $(ACE_ROOT)/ace/Pair.h \ + $(ACE_ROOT)/ace/Pair.i \ + $(ACE_ROOT)/ace/Pair_T.h \ + $(ACE_ROOT)/ace/Pair_T.i \ + $(ACE_ROOT)/ace/Pair_T.cpp \ + $(ACE_ROOT)/ace/Map_Manager.h \ + $(ACE_ROOT)/ace/Map_Manager.i \ + $(ACE_ROOT)/ace/Map_Manager.cpp \ + $(ACE_ROOT)/ace/Active_Map_Manager.h \ + $(ACE_ROOT)/ace/Active_Map_Manager.i \ + $(ACE_ROOT)/ace/Active_Map_Manager_T.h \ + $(ACE_ROOT)/ace/Active_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Active_Map_Manager_T.cpp \ + $(ACE_ROOT)/ace/Map_T.i \ + $(ACE_ROOT)/ace/Map_T.cpp \ + $(TAO_ROOT)/tao/Key_Adapters.i \ + $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ + $(TAO_ROOT)/tao/poa_macros.h \ + $(TAO_ROOT)/tao/POAS.h \ + $(TAO_ROOT)/tao/POA_CORBA.h \ + $(TAO_ROOT)/tao/DynAnyC.h \ + $(TAO_ROOT)/tao/DynAnyC.i \ + $(TAO_ROOT)/tao/DomainC.h \ + $(TAO_ROOT)/tao/DomainC.i \ + $(TAO_ROOT)/tao/POAS.i \ + $(TAO_ROOT)/tao/Active_Object_Map.h \ + $(TAO_ROOT)/tao/Active_Object_Map.i \ + $(TAO_ROOT)/tao/Object_Adapter.i \ + $(TAO_ROOT)/tao/POAManager.h \ + $(TAO_ROOT)/tao/POAManager.i \ + $(TAO_ROOT)/tao/POA.i \ + $(TAO_ROOT)/tao/Stub.h \ + $(TAO_ROOT)/tao/Pluggable.h \ + $(TAO_ROOT)/tao/Pluggable.i \ + $(TAO_ROOT)/tao/MProfile.h \ + $(TAO_ROOT)/tao/Profile.h \ + $(TAO_ROOT)/tao/Tagged_Components.h \ + $(TAO_ROOT)/tao/CONV_FRAMEC.h \ + $(TAO_ROOT)/tao/CONV_FRAMEC.i \ + $(TAO_ROOT)/tao/Tagged_Components.i \ + $(TAO_ROOT)/tao/Profile.i \ + $(TAO_ROOT)/tao/MProfile.i \ + $(TAO_ROOT)/tao/MessagingS.h \ + $(TAO_ROOT)/tao/TimeBaseS.h \ + $(TAO_ROOT)/tao/TimeBaseC.h \ + $(TAO_ROOT)/tao/TimeBaseC.i \ + $(TAO_ROOT)/tao/TimeBaseS_T.h \ + $(TAO_ROOT)/tao/TimeBaseS_T.i \ + $(TAO_ROOT)/tao/TimeBaseS_T.cpp \ + $(TAO_ROOT)/tao/TimeBaseS.i \ + $(TAO_ROOT)/tao/MessagingC.h \ + $(TAO_ROOT)/tao/PollableC.h \ + $(TAO_ROOT)/tao/MessagingC.i \ + $(TAO_ROOT)/tao/MessagingS.i \ + $(TAO_ROOT)/tao/TAOS.h \ + $(TAO_ROOT)/tao/TAOC.h \ + $(TAO_ROOT)/tao/TAOC.i \ + $(TAO_ROOT)/tao/TAOS_T.h \ + $(TAO_ROOT)/tao/TAOS_T.i \ + $(TAO_ROOT)/tao/TAOS_T.cpp \ + $(TAO_ROOT)/tao/TAOS.i \ + $(TAO_ROOT)/tao/Stub.i \ + $(TAO_ROOT)/tao/params.h \ + $(TAO_ROOT)/tao/params.i \ + $(TAO_ROOT)/tao/ORB_Core.h \ + $(TAO_ROOT)/tao/Policy_Manager.h \ + $(TAO_ROOT)/tao/Policy_Manager.i \ + $(TAO_ROOT)/tao/Resource_Factory.h \ + $(TAO_ROOT)/tao/Protocol_Factory.h \ + $(TAO_ROOT)/tao/ORB_Core.i \ + $(ACE_ROOT)/ace/Dynamic_Service.h \ + $(ACE_ROOT)/ace/Dynamic_Service.cpp \ + $(TAO_ROOT)/tao/Operation_Table.h \ + $(TAO_ROOT)/tao/debug.h \ + $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ + $(TAO_ROOT)/tao/Invocation.h \ + $(TAO_ROOT)/tao/Reply_Dispatcher.h \ + $(TAO_ROOT)/tao/Reply_Dispatcher.i \ + $(TAO_ROOT)/tao/Invocation.i \ + $(TAO_ROOT)/tao/InconsistentTypeCodeC.h \ + $(TAO_ROOT)/tao/DynAny_i.h \ + $(TAO_ROOT)/tao/Union.h \ + $(TAO_ROOT)/tao/ValueBase.h \ + $(TAO_ROOT)/tao/ValueBase.i \ + $(TAO_ROOT)/tao/ValueFactory.h \ + $(TAO_ROOT)/tao/ValueFactory.i \ + $(TAO_ROOT)/tao/ObjectIDList.h \ + $(TAO_ROOT)/tao/ObjectIDList.i \ + $(TAO_ROOT)/tao/WrongTransactionC.h \ + $(TAO_ROOT)/tao/BoundsC.h \ + $(TAO_ROOT)/tao/BoundsC.i \ + testC.i +.obj/server.o .obj/server.so .shobj/server.o .shobj/server.so: server.cpp \ + $(ACE_ROOT)/ace/Get_Opt.h \ + $(ACE_ROOT)/ace/ACE.h \ + $(ACE_ROOT)/ace/OS.h \ + $(ACE_ROOT)/ace/inc_user_config.h \ + $(ACE_ROOT)/ace/streams.h \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/Basic_Types.i \ + $(ACE_ROOT)/ace/Trace.h \ + $(ACE_ROOT)/ace/OS.i \ + $(ACE_ROOT)/ace/Log_Msg.h \ + $(ACE_ROOT)/ace/Log_Record.h \ + $(ACE_ROOT)/ace/ACE.i \ + $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/Log_Record.i \ + $(ACE_ROOT)/ace/Get_Opt.i \ + test_i.h testS.h testC.h \ + $(TAO_ROOT)/tao/corba.h \ + $(TAO_ROOT)/tao/corbafwd.h \ + $(ACE_ROOT)/ace/CDR_Stream.h \ + $(ACE_ROOT)/ace/Message_Block.h \ + $(ACE_ROOT)/ace/Malloc.h \ + $(ACE_ROOT)/ace/Malloc_Base.h \ + $(ACE_ROOT)/ace/Malloc.i \ + $(ACE_ROOT)/ace/Malloc_T.h \ + $(ACE_ROOT)/ace/Synch.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ + $(ACE_ROOT)/ace/Synch.i \ + $(ACE_ROOT)/ace/Synch_T.h \ + $(ACE_ROOT)/ace/Event_Handler.h \ + $(ACE_ROOT)/ace/Event_Handler.i \ + $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Thread.h \ + $(ACE_ROOT)/ace/Thread.i \ + $(ACE_ROOT)/ace/Atomic_Op.i \ + $(ACE_ROOT)/ace/Synch_T.cpp \ + $(ACE_ROOT)/ace/Free_List.h \ + $(ACE_ROOT)/ace/Free_List.i \ + $(ACE_ROOT)/ace/Free_List.cpp \ + $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Memory_Pool.h \ + $(ACE_ROOT)/ace/Signal.h \ + $(ACE_ROOT)/ace/Containers.h \ + $(ACE_ROOT)/ace/Containers.i \ + $(ACE_ROOT)/ace/Containers_T.h \ + $(ACE_ROOT)/ace/Containers_T.i \ + $(ACE_ROOT)/ace/Containers_T.cpp \ + $(ACE_ROOT)/ace/Signal.i \ + $(ACE_ROOT)/ace/Mem_Map.h \ + $(ACE_ROOT)/ace/Mem_Map.i \ + $(ACE_ROOT)/ace/Memory_Pool.i \ + $(ACE_ROOT)/ace/Message_Block.i \ + $(ACE_ROOT)/ace/Message_Block_T.h \ + $(ACE_ROOT)/ace/Message_Block_T.i \ + $(ACE_ROOT)/ace/Message_Block_T.cpp \ + $(ACE_ROOT)/ace/SString.h \ + $(ACE_ROOT)/ace/SString.i \ + $(ACE_ROOT)/ace/CDR_Stream.i \ + $(TAO_ROOT)/tao/try_macros.h \ + $(TAO_ROOT)/tao/orbconf.h \ + $(ACE_ROOT)/ace/CORBA_macros.h \ + $(TAO_ROOT)/tao/corbafwd.i \ + $(TAO_ROOT)/tao/Environment.h \ + $(TAO_ROOT)/tao/Environment.i \ + $(TAO_ROOT)/tao/ORB.h \ + $(TAO_ROOT)/tao/Exception.h \ + $(TAO_ROOT)/tao/Exception.i \ + $(TAO_ROOT)/tao/IOR_LookupTable.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager.h \ + $(ACE_ROOT)/ace/Functor.h \ + $(ACE_ROOT)/ace/Functor.i \ + $(ACE_ROOT)/ace/Functor_T.h \ + $(ACE_ROOT)/ace/Functor_T.i \ + $(ACE_ROOT)/ace/Functor_T.cpp \ + $(ACE_ROOT)/ace/Hash_Map_Manager.i \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ + $(ACE_ROOT)/ace/Service_Config.h \ + $(ACE_ROOT)/ace/Service_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.i \ + $(ACE_ROOT)/ace/Service_Object.i \ + $(ACE_ROOT)/ace/Service_Config.i \ + $(ACE_ROOT)/ace/Reactor.h \ + $(ACE_ROOT)/ace/Handle_Set.h \ + $(ACE_ROOT)/ace/Handle_Set.i \ + $(ACE_ROOT)/ace/Timer_Queue.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.i \ + $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ + $(ACE_ROOT)/ace/Reactor.i \ + $(ACE_ROOT)/ace/Reactor_Impl.h \ + $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(TAO_ROOT)/tao/Services.h \ + $(TAO_ROOT)/tao/Sequence.h \ + $(TAO_ROOT)/tao/Managed_Types.h \ + $(TAO_ROOT)/tao/Managed_Types.i \ + $(TAO_ROOT)/tao/Sequence.i \ + $(TAO_ROOT)/tao/Sequence_T.h \ + $(TAO_ROOT)/tao/Sequence_T.i \ + $(TAO_ROOT)/tao/Sequence_T.cpp \ + $(TAO_ROOT)/tao/varout.h \ + $(TAO_ROOT)/tao/Object.h \ + $(TAO_ROOT)/tao/Object.i \ + $(TAO_ROOT)/tao/varout.i \ + $(TAO_ROOT)/tao/varout.cpp \ + $(TAO_ROOT)/tao/Services.i \ + $(TAO_ROOT)/tao/IORManipulation.h \ + $(TAO_ROOT)/tao/IORS.h \ + $(TAO_ROOT)/tao/IORC.h \ + $(TAO_ROOT)/tao/CDR.h \ + $(TAO_ROOT)/tao/Typecode.h \ + $(TAO_ROOT)/tao/Typecode.i \ + $(TAO_ROOT)/tao/CDR.i \ + $(TAO_ROOT)/tao/IORC.i \ + $(TAO_ROOT)/tao/Servant_Base.h \ + $(TAO_ROOT)/tao/POAC.h \ + $(TAO_ROOT)/tao/PolicyC.h \ + $(TAO_ROOT)/tao/CurrentC.h \ + $(TAO_ROOT)/tao/CurrentC.i \ + $(TAO_ROOT)/tao/PolicyC.i \ + $(TAO_ROOT)/tao/POAC.i \ + $(TAO_ROOT)/tao/Servant_Base.i \ + $(TAO_ROOT)/tao/IORS.i \ + $(TAO_ROOT)/tao/Interceptor.h \ + $(TAO_ROOT)/tao/InterceptorS.h \ + $(TAO_ROOT)/tao/InterceptorC.h \ + $(TAO_ROOT)/tao/IOPC.h \ + $(TAO_ROOT)/tao/IOPC.i \ + $(TAO_ROOT)/tao/Any.h \ + $(TAO_ROOT)/tao/Any.i \ + $(TAO_ROOT)/tao/InterceptorC.i \ + $(TAO_ROOT)/tao/Interceptor.i \ + $(TAO_ROOT)/tao/ORB.i \ + $(TAO_ROOT)/tao/NVList.h \ + $(TAO_ROOT)/tao/NVList.i \ + $(TAO_ROOT)/tao/Principal.h \ + $(TAO_ROOT)/tao/Principal.i \ + $(TAO_ROOT)/tao/Request.h \ + $(TAO_ROOT)/tao/Context.h \ + $(TAO_ROOT)/tao/Context.i \ + $(TAO_ROOT)/tao/Request.i \ + $(TAO_ROOT)/tao/Server_Request.h \ + $(TAO_ROOT)/tao/Object_KeyC.h \ + $(TAO_ROOT)/tao/Object_KeyC.i \ + $(TAO_ROOT)/tao/GIOP.h \ + $(TAO_ROOT)/tao/GIOP.i \ + $(TAO_ROOT)/tao/Server_Request.i \ + $(TAO_ROOT)/tao/Marshal.h \ + $(TAO_ROOT)/tao/Marshal.i \ + $(TAO_ROOT)/tao/singletons.h \ + $(ACE_ROOT)/ace/Singleton.h \ + $(ACE_ROOT)/ace/Singleton.i \ + $(ACE_ROOT)/ace/Singleton.cpp \ + $(ACE_ROOT)/ace/Object_Manager.h \ + $(ACE_ROOT)/ace/Object_Manager.i \ + $(ACE_ROOT)/ace/Managed_Object.h \ + $(ACE_ROOT)/ace/Managed_Object.i \ + $(ACE_ROOT)/ace/Managed_Object.cpp \ + $(TAO_ROOT)/tao/POA.h \ + $(TAO_ROOT)/tao/Object_Adapter.h \ + $(TAO_ROOT)/tao/Key_Adapters.h \ + $(ACE_ROOT)/ace/Map.h \ + $(ACE_ROOT)/ace/Map.i \ + $(ACE_ROOT)/ace/Map_T.h \ + $(ACE_ROOT)/ace/Pair.h \ + $(ACE_ROOT)/ace/Pair.i \ + $(ACE_ROOT)/ace/Pair_T.h \ + $(ACE_ROOT)/ace/Pair_T.i \ + $(ACE_ROOT)/ace/Pair_T.cpp \ + $(ACE_ROOT)/ace/Map_Manager.h \ + $(ACE_ROOT)/ace/Map_Manager.i \ + $(ACE_ROOT)/ace/Map_Manager.cpp \ + $(ACE_ROOT)/ace/Active_Map_Manager.h \ + $(ACE_ROOT)/ace/Active_Map_Manager.i \ + $(ACE_ROOT)/ace/Active_Map_Manager_T.h \ + $(ACE_ROOT)/ace/Active_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Active_Map_Manager_T.cpp \ + $(ACE_ROOT)/ace/Map_T.i \ + $(ACE_ROOT)/ace/Map_T.cpp \ + $(TAO_ROOT)/tao/Key_Adapters.i \ + $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ + $(TAO_ROOT)/tao/poa_macros.h \ + $(TAO_ROOT)/tao/POAS.h \ + $(TAO_ROOT)/tao/POA_CORBA.h \ + $(TAO_ROOT)/tao/DynAnyC.h \ + $(TAO_ROOT)/tao/DynAnyC.i \ + $(TAO_ROOT)/tao/DomainC.h \ + $(TAO_ROOT)/tao/DomainC.i \ + $(TAO_ROOT)/tao/POAS.i \ + $(TAO_ROOT)/tao/Active_Object_Map.h \ + $(TAO_ROOT)/tao/Active_Object_Map.i \ + $(TAO_ROOT)/tao/Object_Adapter.i \ + $(TAO_ROOT)/tao/POAManager.h \ + $(TAO_ROOT)/tao/POAManager.i \ + $(TAO_ROOT)/tao/POA.i \ + $(TAO_ROOT)/tao/Stub.h \ + $(TAO_ROOT)/tao/Pluggable.h \ + $(TAO_ROOT)/tao/Pluggable.i \ + $(TAO_ROOT)/tao/MProfile.h \ + $(TAO_ROOT)/tao/Profile.h \ + $(TAO_ROOT)/tao/Tagged_Components.h \ + $(TAO_ROOT)/tao/CONV_FRAMEC.h \ + $(TAO_ROOT)/tao/CONV_FRAMEC.i \ + $(TAO_ROOT)/tao/Tagged_Components.i \ + $(TAO_ROOT)/tao/Profile.i \ + $(TAO_ROOT)/tao/MProfile.i \ + $(TAO_ROOT)/tao/MessagingS.h \ + $(TAO_ROOT)/tao/TimeBaseS.h \ + $(TAO_ROOT)/tao/TimeBaseC.h \ + $(TAO_ROOT)/tao/TimeBaseC.i \ + $(TAO_ROOT)/tao/TimeBaseS_T.h \ + $(TAO_ROOT)/tao/TimeBaseS_T.i \ + $(TAO_ROOT)/tao/TimeBaseS_T.cpp \ + $(TAO_ROOT)/tao/TimeBaseS.i \ + $(TAO_ROOT)/tao/MessagingC.h \ + $(TAO_ROOT)/tao/PollableC.h \ + $(TAO_ROOT)/tao/MessagingC.i \ + $(TAO_ROOT)/tao/MessagingS.i \ + $(TAO_ROOT)/tao/TAOS.h \ + $(TAO_ROOT)/tao/TAOC.h \ + $(TAO_ROOT)/tao/TAOC.i \ + $(TAO_ROOT)/tao/TAOS_T.h \ + $(TAO_ROOT)/tao/TAOS_T.i \ + $(TAO_ROOT)/tao/TAOS_T.cpp \ + $(TAO_ROOT)/tao/TAOS.i \ + $(TAO_ROOT)/tao/Stub.i \ + $(TAO_ROOT)/tao/params.h \ + $(TAO_ROOT)/tao/params.i \ + $(TAO_ROOT)/tao/ORB_Core.h \ + $(TAO_ROOT)/tao/Policy_Manager.h \ + $(TAO_ROOT)/tao/Policy_Manager.i \ + $(TAO_ROOT)/tao/Resource_Factory.h \ + $(TAO_ROOT)/tao/Protocol_Factory.h \ + $(ACE_ROOT)/ace/Strategies_T.h \ + $(ACE_ROOT)/ace/Strategies.h \ + $(ACE_ROOT)/ace/Strategies.i \ + $(ACE_ROOT)/ace/Synch_Options.h \ + $(ACE_ROOT)/ace/Synch_Options.i \ + $(ACE_ROOT)/ace/Thread_Manager.h \ + $(ACE_ROOT)/ace/Thread_Manager.i \ + $(ACE_ROOT)/ace/Strategies_T.i \ + $(ACE_ROOT)/ace/Strategies_T.cpp \ + $(ACE_ROOT)/ace/Service_Repository.h \ + $(ACE_ROOT)/ace/Service_Types.h \ + $(ACE_ROOT)/ace/Service_Types.i \ + $(ACE_ROOT)/ace/Service_Repository.i \ + $(ACE_ROOT)/ace/WFMO_Reactor.h \ + $(ACE_ROOT)/ace/Message_Queue.h \ + $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ + $(ACE_ROOT)/ace/Message_Queue_T.h \ + $(ACE_ROOT)/ace/Message_Queue_T.i \ + $(ACE_ROOT)/ace/Message_Queue_T.cpp \ + $(ACE_ROOT)/ace/Message_Queue.i \ + $(ACE_ROOT)/ace/WFMO_Reactor.i \ + $(TAO_ROOT)/tao/ORB_Core.i \ + $(ACE_ROOT)/ace/Dynamic_Service.h \ + $(ACE_ROOT)/ace/Dynamic_Service.cpp \ + $(TAO_ROOT)/tao/Operation_Table.h \ + $(TAO_ROOT)/tao/debug.h \ + $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ + $(TAO_ROOT)/tao/Invocation.h \ + $(TAO_ROOT)/tao/Reply_Dispatcher.h \ + $(TAO_ROOT)/tao/Reply_Dispatcher.i \ + $(TAO_ROOT)/tao/Invocation.i \ + $(TAO_ROOT)/tao/InconsistentTypeCodeC.h \ + $(TAO_ROOT)/tao/DynAny_i.h \ + $(TAO_ROOT)/tao/Union.h \ + $(TAO_ROOT)/tao/ValueBase.h \ + $(TAO_ROOT)/tao/ValueBase.i \ + $(TAO_ROOT)/tao/ValueFactory.h \ + $(TAO_ROOT)/tao/ValueFactory.i \ + $(TAO_ROOT)/tao/ObjectIDList.h \ + $(TAO_ROOT)/tao/ObjectIDList.i \ + $(TAO_ROOT)/tao/WrongTransactionC.h \ + $(TAO_ROOT)/tao/BoundsC.h \ + $(TAO_ROOT)/tao/BoundsC.i \ + testC.i testS_T.h testS_T.i testS_T.cpp testS.i test_i.i +.obj/orb_creation.o .obj/orb_creation.so .shobj/orb_creation.o .shobj/orb_creation.so: orb_creation.cpp \ + $(ACE_ROOT)/ace/Get_Opt.h \ + $(ACE_ROOT)/ace/ACE.h \ + $(ACE_ROOT)/ace/OS.h \ + $(ACE_ROOT)/ace/inc_user_config.h \ + $(ACE_ROOT)/ace/streams.h \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/Basic_Types.i \ + $(ACE_ROOT)/ace/Trace.h \ + $(ACE_ROOT)/ace/OS.i \ + $(ACE_ROOT)/ace/Log_Msg.h \ + $(ACE_ROOT)/ace/Log_Record.h \ + $(ACE_ROOT)/ace/ACE.i \ + $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/Log_Record.i \ + $(ACE_ROOT)/ace/Get_Opt.i \ + $(ACE_ROOT)/ace/Task.h \ + $(ACE_ROOT)/ace/Service_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.i \ + $(ACE_ROOT)/ace/Event_Handler.h \ + $(ACE_ROOT)/ace/Event_Handler.i \ + $(ACE_ROOT)/ace/Service_Object.i \ + $(ACE_ROOT)/ace/Thread_Manager.h \ + $(ACE_ROOT)/ace/Thread.h \ + $(ACE_ROOT)/ace/Thread.i \ + $(ACE_ROOT)/ace/Synch.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ + $(ACE_ROOT)/ace/Synch.i \ + $(ACE_ROOT)/ace/Synch_T.h \ + $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Atomic_Op.i \ + $(ACE_ROOT)/ace/Synch_T.cpp \ + $(ACE_ROOT)/ace/Containers.h \ + $(ACE_ROOT)/ace/Malloc_Base.h \ + $(ACE_ROOT)/ace/Containers.i \ + $(ACE_ROOT)/ace/Containers_T.h \ + $(ACE_ROOT)/ace/Containers_T.i \ + $(ACE_ROOT)/ace/Containers_T.cpp \ + $(ACE_ROOT)/ace/Malloc.h \ + $(ACE_ROOT)/ace/Malloc.i \ + $(ACE_ROOT)/ace/Malloc_T.h \ + $(ACE_ROOT)/ace/Free_List.h \ + $(ACE_ROOT)/ace/Free_List.i \ + $(ACE_ROOT)/ace/Free_List.cpp \ + $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Memory_Pool.h \ + $(ACE_ROOT)/ace/Signal.h \ + $(ACE_ROOT)/ace/Signal.i \ + $(ACE_ROOT)/ace/Mem_Map.h \ + $(ACE_ROOT)/ace/Mem_Map.i \ + $(ACE_ROOT)/ace/Memory_Pool.i \ + $(ACE_ROOT)/ace/Thread_Manager.i \ + $(ACE_ROOT)/ace/Task.i \ + $(ACE_ROOT)/ace/Task_T.h \ + $(ACE_ROOT)/ace/Message_Queue.h \ + $(ACE_ROOT)/ace/Message_Block.h \ + $(ACE_ROOT)/ace/Message_Block.i \ + $(ACE_ROOT)/ace/Message_Block_T.h \ + $(ACE_ROOT)/ace/Message_Block_T.i \ + $(ACE_ROOT)/ace/Message_Block_T.cpp \ + $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ + $(ACE_ROOT)/ace/Message_Queue_T.h \ + $(ACE_ROOT)/ace/Message_Queue_T.i \ + $(ACE_ROOT)/ace/Message_Queue_T.cpp \ + $(ACE_ROOT)/ace/Strategies.h \ + $(ACE_ROOT)/ace/Strategies_T.h \ + $(ACE_ROOT)/ace/Service_Config.h \ + $(ACE_ROOT)/ace/SString.h \ + $(ACE_ROOT)/ace/SString.i \ + $(ACE_ROOT)/ace/Service_Config.i \ + $(ACE_ROOT)/ace/Reactor.h \ + $(ACE_ROOT)/ace/Handle_Set.h \ + $(ACE_ROOT)/ace/Handle_Set.i \ + $(ACE_ROOT)/ace/Timer_Queue.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.i \ + $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ + $(ACE_ROOT)/ace/Reactor.i \ + $(ACE_ROOT)/ace/Reactor_Impl.h \ + $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(ACE_ROOT)/ace/Synch_Options.h \ + $(ACE_ROOT)/ace/Synch_Options.i \ + $(ACE_ROOT)/ace/Hash_Map_Manager.h \ + $(ACE_ROOT)/ace/Functor.h \ + $(ACE_ROOT)/ace/Functor.i \ + $(ACE_ROOT)/ace/Functor_T.h \ + $(ACE_ROOT)/ace/Functor_T.i \ + $(ACE_ROOT)/ace/Functor_T.cpp \ + $(ACE_ROOT)/ace/Hash_Map_Manager.i \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ + $(ACE_ROOT)/ace/Strategies_T.i \ + $(ACE_ROOT)/ace/Strategies_T.cpp \ + $(ACE_ROOT)/ace/Service_Repository.h \ + $(ACE_ROOT)/ace/Service_Types.h \ + $(ACE_ROOT)/ace/Service_Types.i \ + $(ACE_ROOT)/ace/Service_Repository.i \ + $(ACE_ROOT)/ace/WFMO_Reactor.h \ + $(ACE_ROOT)/ace/WFMO_Reactor.i \ + $(ACE_ROOT)/ace/Strategies.i \ + $(ACE_ROOT)/ace/Message_Queue.i \ + $(ACE_ROOT)/ace/Task_T.i \ + $(ACE_ROOT)/ace/Task_T.cpp \ + $(ACE_ROOT)/ace/Module.h \ + $(ACE_ROOT)/ace/Module.i \ + $(ACE_ROOT)/ace/Module.cpp \ + $(ACE_ROOT)/ace/Stream_Modules.h \ + $(ACE_ROOT)/ace/Stream_Modules.i \ + $(ACE_ROOT)/ace/Stream_Modules.cpp \ + testC.h \ + $(TAO_ROOT)/tao/corba.h \ + $(TAO_ROOT)/tao/corbafwd.h \ + $(ACE_ROOT)/ace/CDR_Stream.h \ + $(ACE_ROOT)/ace/CDR_Stream.i \ + $(TAO_ROOT)/tao/try_macros.h \ + $(TAO_ROOT)/tao/orbconf.h \ + $(ACE_ROOT)/ace/CORBA_macros.h \ + $(TAO_ROOT)/tao/corbafwd.i \ + $(TAO_ROOT)/tao/Environment.h \ + $(TAO_ROOT)/tao/Environment.i \ + $(TAO_ROOT)/tao/ORB.h \ + $(TAO_ROOT)/tao/Exception.h \ + $(TAO_ROOT)/tao/Exception.i \ + $(TAO_ROOT)/tao/IOR_LookupTable.h \ + $(TAO_ROOT)/tao/Services.h \ + $(TAO_ROOT)/tao/Sequence.h \ + $(TAO_ROOT)/tao/Managed_Types.h \ + $(TAO_ROOT)/tao/Managed_Types.i \ + $(TAO_ROOT)/tao/Sequence.i \ + $(TAO_ROOT)/tao/Sequence_T.h \ + $(TAO_ROOT)/tao/Sequence_T.i \ + $(TAO_ROOT)/tao/Sequence_T.cpp \ + $(TAO_ROOT)/tao/varout.h \ + $(TAO_ROOT)/tao/Object.h \ + $(TAO_ROOT)/tao/Object.i \ + $(TAO_ROOT)/tao/varout.i \ + $(TAO_ROOT)/tao/varout.cpp \ + $(TAO_ROOT)/tao/Services.i \ + $(TAO_ROOT)/tao/IORManipulation.h \ + $(TAO_ROOT)/tao/IORS.h \ + $(TAO_ROOT)/tao/IORC.h \ + $(TAO_ROOT)/tao/CDR.h \ + $(TAO_ROOT)/tao/Typecode.h \ + $(TAO_ROOT)/tao/Typecode.i \ + $(TAO_ROOT)/tao/CDR.i \ + $(TAO_ROOT)/tao/IORC.i \ + $(TAO_ROOT)/tao/Servant_Base.h \ + $(TAO_ROOT)/tao/POAC.h \ + $(TAO_ROOT)/tao/PolicyC.h \ + $(TAO_ROOT)/tao/CurrentC.h \ + $(TAO_ROOT)/tao/CurrentC.i \ + $(TAO_ROOT)/tao/PolicyC.i \ + $(TAO_ROOT)/tao/POAC.i \ + $(TAO_ROOT)/tao/Servant_Base.i \ + $(TAO_ROOT)/tao/IORS.i \ + $(TAO_ROOT)/tao/Interceptor.h \ + $(TAO_ROOT)/tao/InterceptorS.h \ + $(TAO_ROOT)/tao/InterceptorC.h \ + $(TAO_ROOT)/tao/IOPC.h \ + $(TAO_ROOT)/tao/IOPC.i \ + $(TAO_ROOT)/tao/Any.h \ + $(TAO_ROOT)/tao/Any.i \ + $(TAO_ROOT)/tao/InterceptorC.i \ + $(TAO_ROOT)/tao/Interceptor.i \ + $(TAO_ROOT)/tao/ORB.i \ + $(TAO_ROOT)/tao/NVList.h \ + $(TAO_ROOT)/tao/NVList.i \ + $(TAO_ROOT)/tao/Principal.h \ + $(TAO_ROOT)/tao/Principal.i \ + $(TAO_ROOT)/tao/Request.h \ + $(TAO_ROOT)/tao/Context.h \ + $(TAO_ROOT)/tao/Context.i \ + $(TAO_ROOT)/tao/Request.i \ + $(TAO_ROOT)/tao/Server_Request.h \ + $(TAO_ROOT)/tao/Object_KeyC.h \ + $(TAO_ROOT)/tao/Object_KeyC.i \ + $(TAO_ROOT)/tao/GIOP.h \ + $(TAO_ROOT)/tao/GIOP.i \ + $(TAO_ROOT)/tao/Server_Request.i \ + $(TAO_ROOT)/tao/Marshal.h \ + $(TAO_ROOT)/tao/Marshal.i \ + $(TAO_ROOT)/tao/singletons.h \ + $(ACE_ROOT)/ace/Singleton.h \ + $(ACE_ROOT)/ace/Singleton.i \ + $(ACE_ROOT)/ace/Singleton.cpp \ + $(ACE_ROOT)/ace/Object_Manager.h \ + $(ACE_ROOT)/ace/Object_Manager.i \ + $(ACE_ROOT)/ace/Managed_Object.h \ + $(ACE_ROOT)/ace/Managed_Object.i \ + $(ACE_ROOT)/ace/Managed_Object.cpp \ + $(TAO_ROOT)/tao/POA.h \ + $(TAO_ROOT)/tao/Object_Adapter.h \ + $(TAO_ROOT)/tao/Key_Adapters.h \ + $(ACE_ROOT)/ace/Map.h \ + $(ACE_ROOT)/ace/Map.i \ + $(ACE_ROOT)/ace/Map_T.h \ + $(ACE_ROOT)/ace/Pair.h \ + $(ACE_ROOT)/ace/Pair.i \ + $(ACE_ROOT)/ace/Pair_T.h \ + $(ACE_ROOT)/ace/Pair_T.i \ + $(ACE_ROOT)/ace/Pair_T.cpp \ + $(ACE_ROOT)/ace/Map_Manager.h \ + $(ACE_ROOT)/ace/Map_Manager.i \ + $(ACE_ROOT)/ace/Map_Manager.cpp \ + $(ACE_ROOT)/ace/Active_Map_Manager.h \ + $(ACE_ROOT)/ace/Active_Map_Manager.i \ + $(ACE_ROOT)/ace/Active_Map_Manager_T.h \ + $(ACE_ROOT)/ace/Active_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Active_Map_Manager_T.cpp \ + $(ACE_ROOT)/ace/Map_T.i \ + $(ACE_ROOT)/ace/Map_T.cpp \ + $(TAO_ROOT)/tao/Key_Adapters.i \ + $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ + $(TAO_ROOT)/tao/poa_macros.h \ + $(TAO_ROOT)/tao/POAS.h \ + $(TAO_ROOT)/tao/POA_CORBA.h \ + $(TAO_ROOT)/tao/DynAnyC.h \ + $(TAO_ROOT)/tao/DynAnyC.i \ + $(TAO_ROOT)/tao/DomainC.h \ + $(TAO_ROOT)/tao/DomainC.i \ + $(TAO_ROOT)/tao/POAS.i \ + $(TAO_ROOT)/tao/Active_Object_Map.h \ + $(TAO_ROOT)/tao/Active_Object_Map.i \ + $(TAO_ROOT)/tao/Object_Adapter.i \ + $(TAO_ROOT)/tao/POAManager.h \ + $(TAO_ROOT)/tao/POAManager.i \ + $(TAO_ROOT)/tao/POA.i \ + $(TAO_ROOT)/tao/Stub.h \ + $(TAO_ROOT)/tao/Pluggable.h \ + $(TAO_ROOT)/tao/Pluggable.i \ + $(TAO_ROOT)/tao/MProfile.h \ + $(TAO_ROOT)/tao/Profile.h \ + $(TAO_ROOT)/tao/Tagged_Components.h \ + $(TAO_ROOT)/tao/CONV_FRAMEC.h \ + $(TAO_ROOT)/tao/CONV_FRAMEC.i \ + $(TAO_ROOT)/tao/Tagged_Components.i \ + $(TAO_ROOT)/tao/Profile.i \ + $(TAO_ROOT)/tao/MProfile.i \ + $(TAO_ROOT)/tao/MessagingS.h \ + $(TAO_ROOT)/tao/TimeBaseS.h \ + $(TAO_ROOT)/tao/TimeBaseC.h \ + $(TAO_ROOT)/tao/TimeBaseC.i \ + $(TAO_ROOT)/tao/TimeBaseS_T.h \ + $(TAO_ROOT)/tao/TimeBaseS_T.i \ + $(TAO_ROOT)/tao/TimeBaseS_T.cpp \ + $(TAO_ROOT)/tao/TimeBaseS.i \ + $(TAO_ROOT)/tao/MessagingC.h \ + $(TAO_ROOT)/tao/PollableC.h \ + $(TAO_ROOT)/tao/MessagingC.i \ + $(TAO_ROOT)/tao/MessagingS.i \ + $(TAO_ROOT)/tao/TAOS.h \ + $(TAO_ROOT)/tao/TAOC.h \ + $(TAO_ROOT)/tao/TAOC.i \ + $(TAO_ROOT)/tao/TAOS_T.h \ + $(TAO_ROOT)/tao/TAOS_T.i \ + $(TAO_ROOT)/tao/TAOS_T.cpp \ + $(TAO_ROOT)/tao/TAOS.i \ + $(TAO_ROOT)/tao/Stub.i \ + $(TAO_ROOT)/tao/params.h \ + $(TAO_ROOT)/tao/params.i \ + $(TAO_ROOT)/tao/ORB_Core.h \ + $(TAO_ROOT)/tao/Policy_Manager.h \ + $(TAO_ROOT)/tao/Policy_Manager.i \ + $(TAO_ROOT)/tao/Resource_Factory.h \ + $(TAO_ROOT)/tao/Protocol_Factory.h \ + $(TAO_ROOT)/tao/ORB_Core.i \ + $(ACE_ROOT)/ace/Dynamic_Service.h \ + $(ACE_ROOT)/ace/Dynamic_Service.cpp \ + $(TAO_ROOT)/tao/Operation_Table.h \ + $(TAO_ROOT)/tao/debug.h \ + $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ + $(TAO_ROOT)/tao/Invocation.h \ + $(TAO_ROOT)/tao/Reply_Dispatcher.h \ + $(TAO_ROOT)/tao/Reply_Dispatcher.i \ + $(TAO_ROOT)/tao/Invocation.i \ + $(TAO_ROOT)/tao/InconsistentTypeCodeC.h \ + $(TAO_ROOT)/tao/DynAny_i.h \ + $(TAO_ROOT)/tao/Union.h \ + $(TAO_ROOT)/tao/ValueBase.h \ + $(TAO_ROOT)/tao/ValueBase.i \ + $(TAO_ROOT)/tao/ValueFactory.h \ + $(TAO_ROOT)/tao/ValueFactory.i \ + $(TAO_ROOT)/tao/ObjectIDList.h \ + $(TAO_ROOT)/tao/ObjectIDList.i \ + $(TAO_ROOT)/tao/WrongTransactionC.h \ + $(TAO_ROOT)/tao/BoundsC.h \ + $(TAO_ROOT)/tao/BoundsC.i \ + testC.i +.obj/simple-client.o .obj/simple-client.so .shobj/simple-client.o .shobj/simple-client.so: simple-client.cpp \ + $(ACE_ROOT)/ace/Get_Opt.h \ + $(ACE_ROOT)/ace/ACE.h \ + $(ACE_ROOT)/ace/OS.h \ + $(ACE_ROOT)/ace/inc_user_config.h \ + $(ACE_ROOT)/ace/streams.h \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/Basic_Types.i \ + $(ACE_ROOT)/ace/Trace.h \ + $(ACE_ROOT)/ace/OS.i \ + $(ACE_ROOT)/ace/Log_Msg.h \ + $(ACE_ROOT)/ace/Log_Record.h \ + $(ACE_ROOT)/ace/ACE.i \ + $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/Log_Record.i \ + $(ACE_ROOT)/ace/Get_Opt.i \ + $(ACE_ROOT)/ace/Task.h \ + $(ACE_ROOT)/ace/Service_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.i \ + $(ACE_ROOT)/ace/Event_Handler.h \ + $(ACE_ROOT)/ace/Event_Handler.i \ + $(ACE_ROOT)/ace/Service_Object.i \ + $(ACE_ROOT)/ace/Thread_Manager.h \ + $(ACE_ROOT)/ace/Thread.h \ + $(ACE_ROOT)/ace/Thread.i \ + $(ACE_ROOT)/ace/Synch.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ + $(ACE_ROOT)/ace/Synch.i \ + $(ACE_ROOT)/ace/Synch_T.h \ + $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Atomic_Op.i \ + $(ACE_ROOT)/ace/Synch_T.cpp \ + $(ACE_ROOT)/ace/Containers.h \ + $(ACE_ROOT)/ace/Malloc_Base.h \ + $(ACE_ROOT)/ace/Containers.i \ + $(ACE_ROOT)/ace/Containers_T.h \ + $(ACE_ROOT)/ace/Containers_T.i \ + $(ACE_ROOT)/ace/Containers_T.cpp \ + $(ACE_ROOT)/ace/Malloc.h \ + $(ACE_ROOT)/ace/Malloc.i \ + $(ACE_ROOT)/ace/Malloc_T.h \ + $(ACE_ROOT)/ace/Free_List.h \ + $(ACE_ROOT)/ace/Free_List.i \ + $(ACE_ROOT)/ace/Free_List.cpp \ + $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Memory_Pool.h \ + $(ACE_ROOT)/ace/Signal.h \ + $(ACE_ROOT)/ace/Signal.i \ + $(ACE_ROOT)/ace/Mem_Map.h \ + $(ACE_ROOT)/ace/Mem_Map.i \ + $(ACE_ROOT)/ace/Memory_Pool.i \ + $(ACE_ROOT)/ace/Thread_Manager.i \ + $(ACE_ROOT)/ace/Task.i \ + $(ACE_ROOT)/ace/Task_T.h \ + $(ACE_ROOT)/ace/Message_Queue.h \ + $(ACE_ROOT)/ace/Message_Block.h \ + $(ACE_ROOT)/ace/Message_Block.i \ + $(ACE_ROOT)/ace/Message_Block_T.h \ + $(ACE_ROOT)/ace/Message_Block_T.i \ + $(ACE_ROOT)/ace/Message_Block_T.cpp \ + $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ + $(ACE_ROOT)/ace/Message_Queue_T.h \ + $(ACE_ROOT)/ace/Message_Queue_T.i \ + $(ACE_ROOT)/ace/Message_Queue_T.cpp \ + $(ACE_ROOT)/ace/Strategies.h \ + $(ACE_ROOT)/ace/Strategies_T.h \ + $(ACE_ROOT)/ace/Service_Config.h \ + $(ACE_ROOT)/ace/SString.h \ + $(ACE_ROOT)/ace/SString.i \ + $(ACE_ROOT)/ace/Service_Config.i \ + $(ACE_ROOT)/ace/Reactor.h \ + $(ACE_ROOT)/ace/Handle_Set.h \ + $(ACE_ROOT)/ace/Handle_Set.i \ + $(ACE_ROOT)/ace/Timer_Queue.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.i \ + $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ + $(ACE_ROOT)/ace/Reactor.i \ + $(ACE_ROOT)/ace/Reactor_Impl.h \ + $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(ACE_ROOT)/ace/Synch_Options.h \ + $(ACE_ROOT)/ace/Synch_Options.i \ + $(ACE_ROOT)/ace/Hash_Map_Manager.h \ + $(ACE_ROOT)/ace/Functor.h \ + $(ACE_ROOT)/ace/Functor.i \ + $(ACE_ROOT)/ace/Functor_T.h \ + $(ACE_ROOT)/ace/Functor_T.i \ + $(ACE_ROOT)/ace/Functor_T.cpp \ + $(ACE_ROOT)/ace/Hash_Map_Manager.i \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ + $(ACE_ROOT)/ace/Strategies_T.i \ + $(ACE_ROOT)/ace/Strategies_T.cpp \ + $(ACE_ROOT)/ace/Service_Repository.h \ + $(ACE_ROOT)/ace/Service_Types.h \ + $(ACE_ROOT)/ace/Service_Types.i \ + $(ACE_ROOT)/ace/Service_Repository.i \ + $(ACE_ROOT)/ace/WFMO_Reactor.h \ + $(ACE_ROOT)/ace/WFMO_Reactor.i \ + $(ACE_ROOT)/ace/Strategies.i \ + $(ACE_ROOT)/ace/Message_Queue.i \ + $(ACE_ROOT)/ace/Task_T.i \ + $(ACE_ROOT)/ace/Task_T.cpp \ + $(ACE_ROOT)/ace/Module.h \ + $(ACE_ROOT)/ace/Module.i \ + $(ACE_ROOT)/ace/Module.cpp \ + $(ACE_ROOT)/ace/Stream_Modules.h \ + $(ACE_ROOT)/ace/Stream_Modules.i \ + $(ACE_ROOT)/ace/Stream_Modules.cpp \ + testC.h \ + $(TAO_ROOT)/tao/corba.h \ + $(TAO_ROOT)/tao/corbafwd.h \ + $(ACE_ROOT)/ace/CDR_Stream.h \ + $(ACE_ROOT)/ace/CDR_Stream.i \ + $(TAO_ROOT)/tao/try_macros.h \ + $(TAO_ROOT)/tao/orbconf.h \ + $(ACE_ROOT)/ace/CORBA_macros.h \ + $(TAO_ROOT)/tao/corbafwd.i \ + $(TAO_ROOT)/tao/Environment.h \ + $(TAO_ROOT)/tao/Environment.i \ + $(TAO_ROOT)/tao/ORB.h \ + $(TAO_ROOT)/tao/Exception.h \ + $(TAO_ROOT)/tao/Exception.i \ + $(TAO_ROOT)/tao/IOR_LookupTable.h \ + $(TAO_ROOT)/tao/Services.h \ + $(TAO_ROOT)/tao/Sequence.h \ + $(TAO_ROOT)/tao/Managed_Types.h \ + $(TAO_ROOT)/tao/Managed_Types.i \ + $(TAO_ROOT)/tao/Sequence.i \ + $(TAO_ROOT)/tao/Sequence_T.h \ + $(TAO_ROOT)/tao/Sequence_T.i \ + $(TAO_ROOT)/tao/Sequence_T.cpp \ + $(TAO_ROOT)/tao/varout.h \ + $(TAO_ROOT)/tao/Object.h \ + $(TAO_ROOT)/tao/Object.i \ + $(TAO_ROOT)/tao/varout.i \ + $(TAO_ROOT)/tao/varout.cpp \ + $(TAO_ROOT)/tao/Services.i \ + $(TAO_ROOT)/tao/IORManipulation.h \ + $(TAO_ROOT)/tao/IORS.h \ + $(TAO_ROOT)/tao/IORC.h \ + $(TAO_ROOT)/tao/CDR.h \ + $(TAO_ROOT)/tao/Typecode.h \ + $(TAO_ROOT)/tao/Typecode.i \ + $(TAO_ROOT)/tao/CDR.i \ + $(TAO_ROOT)/tao/IORC.i \ + $(TAO_ROOT)/tao/Servant_Base.h \ + $(TAO_ROOT)/tao/POAC.h \ + $(TAO_ROOT)/tao/PolicyC.h \ + $(TAO_ROOT)/tao/CurrentC.h \ + $(TAO_ROOT)/tao/CurrentC.i \ + $(TAO_ROOT)/tao/PolicyC.i \ + $(TAO_ROOT)/tao/POAC.i \ + $(TAO_ROOT)/tao/Servant_Base.i \ + $(TAO_ROOT)/tao/IORS.i \ + $(TAO_ROOT)/tao/Interceptor.h \ + $(TAO_ROOT)/tao/InterceptorS.h \ + $(TAO_ROOT)/tao/InterceptorC.h \ + $(TAO_ROOT)/tao/IOPC.h \ + $(TAO_ROOT)/tao/IOPC.i \ + $(TAO_ROOT)/tao/Any.h \ + $(TAO_ROOT)/tao/Any.i \ + $(TAO_ROOT)/tao/InterceptorC.i \ + $(TAO_ROOT)/tao/Interceptor.i \ + $(TAO_ROOT)/tao/ORB.i \ + $(TAO_ROOT)/tao/NVList.h \ + $(TAO_ROOT)/tao/NVList.i \ + $(TAO_ROOT)/tao/Principal.h \ + $(TAO_ROOT)/tao/Principal.i \ + $(TAO_ROOT)/tao/Request.h \ + $(TAO_ROOT)/tao/Context.h \ + $(TAO_ROOT)/tao/Context.i \ + $(TAO_ROOT)/tao/Request.i \ + $(TAO_ROOT)/tao/Server_Request.h \ + $(TAO_ROOT)/tao/Object_KeyC.h \ + $(TAO_ROOT)/tao/Object_KeyC.i \ + $(TAO_ROOT)/tao/GIOP.h \ + $(TAO_ROOT)/tao/GIOP.i \ + $(TAO_ROOT)/tao/Server_Request.i \ + $(TAO_ROOT)/tao/Marshal.h \ + $(TAO_ROOT)/tao/Marshal.i \ + $(TAO_ROOT)/tao/singletons.h \ + $(ACE_ROOT)/ace/Singleton.h \ + $(ACE_ROOT)/ace/Singleton.i \ + $(ACE_ROOT)/ace/Singleton.cpp \ + $(ACE_ROOT)/ace/Object_Manager.h \ + $(ACE_ROOT)/ace/Object_Manager.i \ + $(ACE_ROOT)/ace/Managed_Object.h \ + $(ACE_ROOT)/ace/Managed_Object.i \ + $(ACE_ROOT)/ace/Managed_Object.cpp \ + $(TAO_ROOT)/tao/POA.h \ + $(TAO_ROOT)/tao/Object_Adapter.h \ + $(TAO_ROOT)/tao/Key_Adapters.h \ + $(ACE_ROOT)/ace/Map.h \ + $(ACE_ROOT)/ace/Map.i \ + $(ACE_ROOT)/ace/Map_T.h \ + $(ACE_ROOT)/ace/Pair.h \ + $(ACE_ROOT)/ace/Pair.i \ + $(ACE_ROOT)/ace/Pair_T.h \ + $(ACE_ROOT)/ace/Pair_T.i \ + $(ACE_ROOT)/ace/Pair_T.cpp \ + $(ACE_ROOT)/ace/Map_Manager.h \ + $(ACE_ROOT)/ace/Map_Manager.i \ + $(ACE_ROOT)/ace/Map_Manager.cpp \ + $(ACE_ROOT)/ace/Active_Map_Manager.h \ + $(ACE_ROOT)/ace/Active_Map_Manager.i \ + $(ACE_ROOT)/ace/Active_Map_Manager_T.h \ + $(ACE_ROOT)/ace/Active_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Active_Map_Manager_T.cpp \ + $(ACE_ROOT)/ace/Map_T.i \ + $(ACE_ROOT)/ace/Map_T.cpp \ + $(TAO_ROOT)/tao/Key_Adapters.i \ + $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ + $(TAO_ROOT)/tao/poa_macros.h \ + $(TAO_ROOT)/tao/POAS.h \ + $(TAO_ROOT)/tao/POA_CORBA.h \ + $(TAO_ROOT)/tao/DynAnyC.h \ + $(TAO_ROOT)/tao/DynAnyC.i \ + $(TAO_ROOT)/tao/DomainC.h \ + $(TAO_ROOT)/tao/DomainC.i \ + $(TAO_ROOT)/tao/POAS.i \ + $(TAO_ROOT)/tao/Active_Object_Map.h \ + $(TAO_ROOT)/tao/Active_Object_Map.i \ + $(TAO_ROOT)/tao/Object_Adapter.i \ + $(TAO_ROOT)/tao/POAManager.h \ + $(TAO_ROOT)/tao/POAManager.i \ + $(TAO_ROOT)/tao/POA.i \ + $(TAO_ROOT)/tao/Stub.h \ + $(TAO_ROOT)/tao/Pluggable.h \ + $(TAO_ROOT)/tao/Pluggable.i \ + $(TAO_ROOT)/tao/MProfile.h \ + $(TAO_ROOT)/tao/Profile.h \ + $(TAO_ROOT)/tao/Tagged_Components.h \ + $(TAO_ROOT)/tao/CONV_FRAMEC.h \ + $(TAO_ROOT)/tao/CONV_FRAMEC.i \ + $(TAO_ROOT)/tao/Tagged_Components.i \ + $(TAO_ROOT)/tao/Profile.i \ + $(TAO_ROOT)/tao/MProfile.i \ + $(TAO_ROOT)/tao/MessagingS.h \ + $(TAO_ROOT)/tao/TimeBaseS.h \ + $(TAO_ROOT)/tao/TimeBaseC.h \ + $(TAO_ROOT)/tao/TimeBaseC.i \ + $(TAO_ROOT)/tao/TimeBaseS_T.h \ + $(TAO_ROOT)/tao/TimeBaseS_T.i \ + $(TAO_ROOT)/tao/TimeBaseS_T.cpp \ + $(TAO_ROOT)/tao/TimeBaseS.i \ + $(TAO_ROOT)/tao/MessagingC.h \ + $(TAO_ROOT)/tao/PollableC.h \ + $(TAO_ROOT)/tao/MessagingC.i \ + $(TAO_ROOT)/tao/MessagingS.i \ + $(TAO_ROOT)/tao/TAOS.h \ + $(TAO_ROOT)/tao/TAOC.h \ + $(TAO_ROOT)/tao/TAOC.i \ + $(TAO_ROOT)/tao/TAOS_T.h \ + $(TAO_ROOT)/tao/TAOS_T.i \ + $(TAO_ROOT)/tao/TAOS_T.cpp \ + $(TAO_ROOT)/tao/TAOS.i \ + $(TAO_ROOT)/tao/Stub.i \ + $(TAO_ROOT)/tao/params.h \ + $(TAO_ROOT)/tao/params.i \ + $(TAO_ROOT)/tao/ORB_Core.h \ + $(TAO_ROOT)/tao/Policy_Manager.h \ + $(TAO_ROOT)/tao/Policy_Manager.i \ + $(TAO_ROOT)/tao/Resource_Factory.h \ + $(TAO_ROOT)/tao/Protocol_Factory.h \ + $(TAO_ROOT)/tao/ORB_Core.i \ + $(ACE_ROOT)/ace/Dynamic_Service.h \ + $(ACE_ROOT)/ace/Dynamic_Service.cpp \ + $(TAO_ROOT)/tao/Operation_Table.h \ + $(TAO_ROOT)/tao/debug.h \ + $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ + $(TAO_ROOT)/tao/Invocation.h \ + $(TAO_ROOT)/tao/Reply_Dispatcher.h \ + $(TAO_ROOT)/tao/Reply_Dispatcher.i \ + $(TAO_ROOT)/tao/Invocation.i \ + $(TAO_ROOT)/tao/InconsistentTypeCodeC.h \ + $(TAO_ROOT)/tao/DynAny_i.h \ + $(TAO_ROOT)/tao/Union.h \ + $(TAO_ROOT)/tao/ValueBase.h \ + $(TAO_ROOT)/tao/ValueBase.i \ + $(TAO_ROOT)/tao/ValueFactory.h \ + $(TAO_ROOT)/tao/ValueFactory.i \ + $(TAO_ROOT)/tao/ObjectIDList.h \ + $(TAO_ROOT)/tao/ObjectIDList.i \ + $(TAO_ROOT)/tao/WrongTransactionC.h \ + $(TAO_ROOT)/tao/BoundsC.h \ + $(TAO_ROOT)/tao/BoundsC.i \ + testC.i +.obj/testC.o .obj/testC.so .shobj/testC.o .shobj/testC.so: testC.cpp testC.h \ + $(TAO_ROOT)/tao/corba.h \ + $(ACE_ROOT)/ace/OS.h \ + $(ACE_ROOT)/ace/inc_user_config.h \ + $(ACE_ROOT)/ace/streams.h \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/Basic_Types.i \ + $(ACE_ROOT)/ace/Trace.h \ + $(ACE_ROOT)/ace/OS.i \ + $(ACE_ROOT)/ace/Log_Msg.h \ + $(ACE_ROOT)/ace/Log_Record.h \ + $(ACE_ROOT)/ace/ACE.h \ + $(ACE_ROOT)/ace/ACE.i \ + $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/Log_Record.i \ + $(TAO_ROOT)/tao/corbafwd.h \ + $(ACE_ROOT)/ace/CDR_Stream.h \ + $(ACE_ROOT)/ace/Message_Block.h \ + $(ACE_ROOT)/ace/Malloc.h \ + $(ACE_ROOT)/ace/Malloc_Base.h \ + $(ACE_ROOT)/ace/Malloc.i \ + $(ACE_ROOT)/ace/Malloc_T.h \ + $(ACE_ROOT)/ace/Synch.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ + $(ACE_ROOT)/ace/Synch.i \ + $(ACE_ROOT)/ace/Synch_T.h \ + $(ACE_ROOT)/ace/Event_Handler.h \ + $(ACE_ROOT)/ace/Event_Handler.i \ + $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Thread.h \ + $(ACE_ROOT)/ace/Thread.i \ + $(ACE_ROOT)/ace/Atomic_Op.i \ + $(ACE_ROOT)/ace/Synch_T.cpp \ + $(ACE_ROOT)/ace/Free_List.h \ + $(ACE_ROOT)/ace/Free_List.i \ + $(ACE_ROOT)/ace/Free_List.cpp \ + $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Memory_Pool.h \ + $(ACE_ROOT)/ace/Signal.h \ + $(ACE_ROOT)/ace/Containers.h \ + $(ACE_ROOT)/ace/Containers.i \ + $(ACE_ROOT)/ace/Containers_T.h \ + $(ACE_ROOT)/ace/Containers_T.i \ + $(ACE_ROOT)/ace/Containers_T.cpp \ + $(ACE_ROOT)/ace/Signal.i \ + $(ACE_ROOT)/ace/Mem_Map.h \ + $(ACE_ROOT)/ace/Mem_Map.i \ + $(ACE_ROOT)/ace/Memory_Pool.i \ + $(ACE_ROOT)/ace/Message_Block.i \ + $(ACE_ROOT)/ace/Message_Block_T.h \ + $(ACE_ROOT)/ace/Message_Block_T.i \ + $(ACE_ROOT)/ace/Message_Block_T.cpp \ + $(ACE_ROOT)/ace/SString.h \ + $(ACE_ROOT)/ace/SString.i \ + $(ACE_ROOT)/ace/CDR_Stream.i \ + $(TAO_ROOT)/tao/try_macros.h \ + $(TAO_ROOT)/tao/orbconf.h \ + $(ACE_ROOT)/ace/CORBA_macros.h \ + $(TAO_ROOT)/tao/corbafwd.i \ + $(TAO_ROOT)/tao/Environment.h \ + $(TAO_ROOT)/tao/Environment.i \ + $(TAO_ROOT)/tao/ORB.h \ + $(TAO_ROOT)/tao/Exception.h \ + $(TAO_ROOT)/tao/Exception.i \ + $(TAO_ROOT)/tao/IOR_LookupTable.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager.h \ + $(ACE_ROOT)/ace/Functor.h \ + $(ACE_ROOT)/ace/Functor.i \ + $(ACE_ROOT)/ace/Functor_T.h \ + $(ACE_ROOT)/ace/Functor_T.i \ + $(ACE_ROOT)/ace/Functor_T.cpp \ + $(ACE_ROOT)/ace/Hash_Map_Manager.i \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ + $(ACE_ROOT)/ace/Service_Config.h \ + $(ACE_ROOT)/ace/Service_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.i \ + $(ACE_ROOT)/ace/Service_Object.i \ + $(ACE_ROOT)/ace/Service_Config.i \ + $(ACE_ROOT)/ace/Reactor.h \ + $(ACE_ROOT)/ace/Handle_Set.h \ + $(ACE_ROOT)/ace/Handle_Set.i \ + $(ACE_ROOT)/ace/Timer_Queue.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.i \ + $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ + $(ACE_ROOT)/ace/Reactor.i \ + $(ACE_ROOT)/ace/Reactor_Impl.h \ + $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(TAO_ROOT)/tao/Services.h \ + $(TAO_ROOT)/tao/Sequence.h \ + $(TAO_ROOT)/tao/Managed_Types.h \ + $(TAO_ROOT)/tao/Managed_Types.i \ + $(TAO_ROOT)/tao/Sequence.i \ + $(TAO_ROOT)/tao/Sequence_T.h \ + $(TAO_ROOT)/tao/Sequence_T.i \ + $(TAO_ROOT)/tao/Sequence_T.cpp \ + $(TAO_ROOT)/tao/varout.h \ + $(TAO_ROOT)/tao/Object.h \ + $(TAO_ROOT)/tao/Object.i \ + $(TAO_ROOT)/tao/varout.i \ + $(TAO_ROOT)/tao/varout.cpp \ + $(TAO_ROOT)/tao/Services.i \ + $(TAO_ROOT)/tao/IORManipulation.h \ + $(TAO_ROOT)/tao/IORS.h \ + $(TAO_ROOT)/tao/IORC.h \ + $(TAO_ROOT)/tao/CDR.h \ + $(TAO_ROOT)/tao/Typecode.h \ + $(TAO_ROOT)/tao/Typecode.i \ + $(TAO_ROOT)/tao/CDR.i \ + $(TAO_ROOT)/tao/IORC.i \ + $(TAO_ROOT)/tao/Servant_Base.h \ + $(TAO_ROOT)/tao/POAC.h \ + $(TAO_ROOT)/tao/PolicyC.h \ + $(TAO_ROOT)/tao/CurrentC.h \ + $(TAO_ROOT)/tao/CurrentC.i \ + $(TAO_ROOT)/tao/PolicyC.i \ + $(TAO_ROOT)/tao/POAC.i \ + $(TAO_ROOT)/tao/Servant_Base.i \ + $(TAO_ROOT)/tao/IORS.i \ + $(TAO_ROOT)/tao/Interceptor.h \ + $(TAO_ROOT)/tao/InterceptorS.h \ + $(TAO_ROOT)/tao/InterceptorC.h \ + $(TAO_ROOT)/tao/IOPC.h \ + $(TAO_ROOT)/tao/IOPC.i \ + $(TAO_ROOT)/tao/Any.h \ + $(TAO_ROOT)/tao/Any.i \ + $(TAO_ROOT)/tao/InterceptorC.i \ + $(TAO_ROOT)/tao/Interceptor.i \ + $(TAO_ROOT)/tao/ORB.i \ + $(TAO_ROOT)/tao/NVList.h \ + $(TAO_ROOT)/tao/NVList.i \ + $(TAO_ROOT)/tao/Principal.h \ + $(TAO_ROOT)/tao/Principal.i \ + $(TAO_ROOT)/tao/Request.h \ + $(TAO_ROOT)/tao/Context.h \ + $(TAO_ROOT)/tao/Context.i \ + $(TAO_ROOT)/tao/Request.i \ + $(TAO_ROOT)/tao/Server_Request.h \ + $(TAO_ROOT)/tao/Object_KeyC.h \ + $(TAO_ROOT)/tao/Object_KeyC.i \ + $(TAO_ROOT)/tao/GIOP.h \ + $(TAO_ROOT)/tao/GIOP.i \ + $(TAO_ROOT)/tao/Server_Request.i \ + $(TAO_ROOT)/tao/Marshal.h \ + $(TAO_ROOT)/tao/Marshal.i \ + $(TAO_ROOT)/tao/singletons.h \ + $(ACE_ROOT)/ace/Singleton.h \ + $(ACE_ROOT)/ace/Singleton.i \ + $(ACE_ROOT)/ace/Singleton.cpp \ + $(ACE_ROOT)/ace/Object_Manager.h \ + $(ACE_ROOT)/ace/Object_Manager.i \ + $(ACE_ROOT)/ace/Managed_Object.h \ + $(ACE_ROOT)/ace/Managed_Object.i \ + $(ACE_ROOT)/ace/Managed_Object.cpp \ + $(TAO_ROOT)/tao/POA.h \ + $(TAO_ROOT)/tao/Object_Adapter.h \ + $(TAO_ROOT)/tao/Key_Adapters.h \ + $(ACE_ROOT)/ace/Map.h \ + $(ACE_ROOT)/ace/Map.i \ + $(ACE_ROOT)/ace/Map_T.h \ + $(ACE_ROOT)/ace/Pair.h \ + $(ACE_ROOT)/ace/Pair.i \ + $(ACE_ROOT)/ace/Pair_T.h \ + $(ACE_ROOT)/ace/Pair_T.i \ + $(ACE_ROOT)/ace/Pair_T.cpp \ + $(ACE_ROOT)/ace/Map_Manager.h \ + $(ACE_ROOT)/ace/Map_Manager.i \ + $(ACE_ROOT)/ace/Map_Manager.cpp \ + $(ACE_ROOT)/ace/Active_Map_Manager.h \ + $(ACE_ROOT)/ace/Active_Map_Manager.i \ + $(ACE_ROOT)/ace/Active_Map_Manager_T.h \ + $(ACE_ROOT)/ace/Active_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Active_Map_Manager_T.cpp \ + $(ACE_ROOT)/ace/Map_T.i \ + $(ACE_ROOT)/ace/Map_T.cpp \ + $(TAO_ROOT)/tao/Key_Adapters.i \ + $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ + $(TAO_ROOT)/tao/poa_macros.h \ + $(TAO_ROOT)/tao/POAS.h \ + $(TAO_ROOT)/tao/POA_CORBA.h \ + $(TAO_ROOT)/tao/DynAnyC.h \ + $(TAO_ROOT)/tao/DynAnyC.i \ + $(TAO_ROOT)/tao/DomainC.h \ + $(TAO_ROOT)/tao/DomainC.i \ + $(TAO_ROOT)/tao/POAS.i \ + $(TAO_ROOT)/tao/Active_Object_Map.h \ + $(TAO_ROOT)/tao/Active_Object_Map.i \ + $(TAO_ROOT)/tao/Object_Adapter.i \ + $(TAO_ROOT)/tao/POAManager.h \ + $(TAO_ROOT)/tao/POAManager.i \ + $(TAO_ROOT)/tao/POA.i \ + $(TAO_ROOT)/tao/Stub.h \ + $(TAO_ROOT)/tao/Pluggable.h \ + $(TAO_ROOT)/tao/Pluggable.i \ + $(TAO_ROOT)/tao/MProfile.h \ + $(TAO_ROOT)/tao/Profile.h \ + $(TAO_ROOT)/tao/Tagged_Components.h \ + $(TAO_ROOT)/tao/CONV_FRAMEC.h \ + $(TAO_ROOT)/tao/CONV_FRAMEC.i \ + $(TAO_ROOT)/tao/Tagged_Components.i \ + $(TAO_ROOT)/tao/Profile.i \ + $(TAO_ROOT)/tao/MProfile.i \ + $(TAO_ROOT)/tao/MessagingS.h \ + $(TAO_ROOT)/tao/TimeBaseS.h \ + $(TAO_ROOT)/tao/TimeBaseC.h \ + $(TAO_ROOT)/tao/TimeBaseC.i \ + $(TAO_ROOT)/tao/TimeBaseS_T.h \ + $(TAO_ROOT)/tao/TimeBaseS_T.i \ + $(TAO_ROOT)/tao/TimeBaseS_T.cpp \ + $(TAO_ROOT)/tao/TimeBaseS.i \ + $(TAO_ROOT)/tao/MessagingC.h \ + $(TAO_ROOT)/tao/PollableC.h \ + $(TAO_ROOT)/tao/MessagingC.i \ + $(TAO_ROOT)/tao/MessagingS.i \ + $(TAO_ROOT)/tao/TAOS.h \ + $(TAO_ROOT)/tao/TAOC.h \ + $(TAO_ROOT)/tao/TAOC.i \ + $(TAO_ROOT)/tao/TAOS_T.h \ + $(TAO_ROOT)/tao/TAOS_T.i \ + $(TAO_ROOT)/tao/TAOS_T.cpp \ + $(TAO_ROOT)/tao/TAOS.i \ + $(TAO_ROOT)/tao/Stub.i \ + $(TAO_ROOT)/tao/params.h \ + $(TAO_ROOT)/tao/params.i \ + $(TAO_ROOT)/tao/ORB_Core.h \ + $(TAO_ROOT)/tao/Policy_Manager.h \ + $(TAO_ROOT)/tao/Policy_Manager.i \ + $(TAO_ROOT)/tao/Resource_Factory.h \ + $(TAO_ROOT)/tao/Protocol_Factory.h \ + $(ACE_ROOT)/ace/Strategies_T.h \ + $(ACE_ROOT)/ace/Strategies.h \ + $(ACE_ROOT)/ace/Strategies.i \ + $(ACE_ROOT)/ace/Synch_Options.h \ + $(ACE_ROOT)/ace/Synch_Options.i \ + $(ACE_ROOT)/ace/Thread_Manager.h \ + $(ACE_ROOT)/ace/Thread_Manager.i \ + $(ACE_ROOT)/ace/Strategies_T.i \ + $(ACE_ROOT)/ace/Strategies_T.cpp \ + $(ACE_ROOT)/ace/Service_Repository.h \ + $(ACE_ROOT)/ace/Service_Types.h \ + $(ACE_ROOT)/ace/Service_Types.i \ + $(ACE_ROOT)/ace/Service_Repository.i \ + $(ACE_ROOT)/ace/WFMO_Reactor.h \ + $(ACE_ROOT)/ace/Message_Queue.h \ + $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ + $(ACE_ROOT)/ace/Message_Queue_T.h \ + $(ACE_ROOT)/ace/Message_Queue_T.i \ + $(ACE_ROOT)/ace/Message_Queue_T.cpp \ + $(ACE_ROOT)/ace/Message_Queue.i \ + $(ACE_ROOT)/ace/WFMO_Reactor.i \ + $(TAO_ROOT)/tao/ORB_Core.i \ + $(ACE_ROOT)/ace/Dynamic_Service.h \ + $(ACE_ROOT)/ace/Dynamic_Service.cpp \ + $(TAO_ROOT)/tao/Operation_Table.h \ + $(TAO_ROOT)/tao/debug.h \ + $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ + $(TAO_ROOT)/tao/Invocation.h \ + $(TAO_ROOT)/tao/Reply_Dispatcher.h \ + $(TAO_ROOT)/tao/Reply_Dispatcher.i \ + $(TAO_ROOT)/tao/Invocation.i \ + $(TAO_ROOT)/tao/InconsistentTypeCodeC.h \ + $(TAO_ROOT)/tao/DynAny_i.h \ + $(TAO_ROOT)/tao/Union.h \ + $(TAO_ROOT)/tao/ValueBase.h \ + $(TAO_ROOT)/tao/ValueBase.i \ + $(TAO_ROOT)/tao/ValueFactory.h \ + $(TAO_ROOT)/tao/ValueFactory.i \ + $(TAO_ROOT)/tao/ObjectIDList.h \ + $(TAO_ROOT)/tao/ObjectIDList.i \ + $(TAO_ROOT)/tao/WrongTransactionC.h \ + $(TAO_ROOT)/tao/BoundsC.h \ + $(TAO_ROOT)/tao/BoundsC.i \ + testC.i +.obj/testS.o .obj/testS.so .shobj/testS.o .shobj/testS.so: testS.cpp testS.h testC.h \ + $(TAO_ROOT)/tao/corba.h \ + $(ACE_ROOT)/ace/OS.h \ + $(ACE_ROOT)/ace/inc_user_config.h \ + $(ACE_ROOT)/ace/streams.h \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/Basic_Types.i \ + $(ACE_ROOT)/ace/Trace.h \ + $(ACE_ROOT)/ace/OS.i \ + $(ACE_ROOT)/ace/Log_Msg.h \ + $(ACE_ROOT)/ace/Log_Record.h \ + $(ACE_ROOT)/ace/ACE.h \ + $(ACE_ROOT)/ace/ACE.i \ + $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/Log_Record.i \ + $(TAO_ROOT)/tao/corbafwd.h \ + $(ACE_ROOT)/ace/CDR_Stream.h \ + $(ACE_ROOT)/ace/Message_Block.h \ + $(ACE_ROOT)/ace/Malloc.h \ + $(ACE_ROOT)/ace/Malloc_Base.h \ + $(ACE_ROOT)/ace/Malloc.i \ + $(ACE_ROOT)/ace/Malloc_T.h \ + $(ACE_ROOT)/ace/Synch.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ + $(ACE_ROOT)/ace/Synch.i \ + $(ACE_ROOT)/ace/Synch_T.h \ + $(ACE_ROOT)/ace/Event_Handler.h \ + $(ACE_ROOT)/ace/Event_Handler.i \ + $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Thread.h \ + $(ACE_ROOT)/ace/Thread.i \ + $(ACE_ROOT)/ace/Atomic_Op.i \ + $(ACE_ROOT)/ace/Synch_T.cpp \ + $(ACE_ROOT)/ace/Free_List.h \ + $(ACE_ROOT)/ace/Free_List.i \ + $(ACE_ROOT)/ace/Free_List.cpp \ + $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Memory_Pool.h \ + $(ACE_ROOT)/ace/Signal.h \ + $(ACE_ROOT)/ace/Containers.h \ + $(ACE_ROOT)/ace/Containers.i \ + $(ACE_ROOT)/ace/Containers_T.h \ + $(ACE_ROOT)/ace/Containers_T.i \ + $(ACE_ROOT)/ace/Containers_T.cpp \ + $(ACE_ROOT)/ace/Signal.i \ + $(ACE_ROOT)/ace/Mem_Map.h \ + $(ACE_ROOT)/ace/Mem_Map.i \ + $(ACE_ROOT)/ace/Memory_Pool.i \ + $(ACE_ROOT)/ace/Message_Block.i \ + $(ACE_ROOT)/ace/Message_Block_T.h \ + $(ACE_ROOT)/ace/Message_Block_T.i \ + $(ACE_ROOT)/ace/Message_Block_T.cpp \ + $(ACE_ROOT)/ace/SString.h \ + $(ACE_ROOT)/ace/SString.i \ + $(ACE_ROOT)/ace/CDR_Stream.i \ + $(TAO_ROOT)/tao/try_macros.h \ + $(TAO_ROOT)/tao/orbconf.h \ + $(ACE_ROOT)/ace/CORBA_macros.h \ + $(TAO_ROOT)/tao/corbafwd.i \ + $(TAO_ROOT)/tao/Environment.h \ + $(TAO_ROOT)/tao/Environment.i \ + $(TAO_ROOT)/tao/ORB.h \ + $(TAO_ROOT)/tao/Exception.h \ + $(TAO_ROOT)/tao/Exception.i \ + $(TAO_ROOT)/tao/IOR_LookupTable.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager.h \ + $(ACE_ROOT)/ace/Functor.h \ + $(ACE_ROOT)/ace/Functor.i \ + $(ACE_ROOT)/ace/Functor_T.h \ + $(ACE_ROOT)/ace/Functor_T.i \ + $(ACE_ROOT)/ace/Functor_T.cpp \ + $(ACE_ROOT)/ace/Hash_Map_Manager.i \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ + $(ACE_ROOT)/ace/Service_Config.h \ + $(ACE_ROOT)/ace/Service_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.i \ + $(ACE_ROOT)/ace/Service_Object.i \ + $(ACE_ROOT)/ace/Service_Config.i \ + $(ACE_ROOT)/ace/Reactor.h \ + $(ACE_ROOT)/ace/Handle_Set.h \ + $(ACE_ROOT)/ace/Handle_Set.i \ + $(ACE_ROOT)/ace/Timer_Queue.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.i \ + $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ + $(ACE_ROOT)/ace/Reactor.i \ + $(ACE_ROOT)/ace/Reactor_Impl.h \ + $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(TAO_ROOT)/tao/Services.h \ + $(TAO_ROOT)/tao/Sequence.h \ + $(TAO_ROOT)/tao/Managed_Types.h \ + $(TAO_ROOT)/tao/Managed_Types.i \ + $(TAO_ROOT)/tao/Sequence.i \ + $(TAO_ROOT)/tao/Sequence_T.h \ + $(TAO_ROOT)/tao/Sequence_T.i \ + $(TAO_ROOT)/tao/Sequence_T.cpp \ + $(TAO_ROOT)/tao/varout.h \ + $(TAO_ROOT)/tao/Object.h \ + $(TAO_ROOT)/tao/Object.i \ + $(TAO_ROOT)/tao/varout.i \ + $(TAO_ROOT)/tao/varout.cpp \ + $(TAO_ROOT)/tao/Services.i \ + $(TAO_ROOT)/tao/IORManipulation.h \ + $(TAO_ROOT)/tao/IORS.h \ + $(TAO_ROOT)/tao/IORC.h \ + $(TAO_ROOT)/tao/CDR.h \ + $(TAO_ROOT)/tao/Typecode.h \ + $(TAO_ROOT)/tao/Typecode.i \ + $(TAO_ROOT)/tao/CDR.i \ + $(TAO_ROOT)/tao/IORC.i \ + $(TAO_ROOT)/tao/Servant_Base.h \ + $(TAO_ROOT)/tao/POAC.h \ + $(TAO_ROOT)/tao/PolicyC.h \ + $(TAO_ROOT)/tao/CurrentC.h \ + $(TAO_ROOT)/tao/CurrentC.i \ + $(TAO_ROOT)/tao/PolicyC.i \ + $(TAO_ROOT)/tao/POAC.i \ + $(TAO_ROOT)/tao/Servant_Base.i \ + $(TAO_ROOT)/tao/IORS.i \ + $(TAO_ROOT)/tao/Interceptor.h \ + $(TAO_ROOT)/tao/InterceptorS.h \ + $(TAO_ROOT)/tao/InterceptorC.h \ + $(TAO_ROOT)/tao/IOPC.h \ + $(TAO_ROOT)/tao/IOPC.i \ + $(TAO_ROOT)/tao/Any.h \ + $(TAO_ROOT)/tao/Any.i \ + $(TAO_ROOT)/tao/InterceptorC.i \ + $(TAO_ROOT)/tao/Interceptor.i \ + $(TAO_ROOT)/tao/ORB.i \ + $(TAO_ROOT)/tao/NVList.h \ + $(TAO_ROOT)/tao/NVList.i \ + $(TAO_ROOT)/tao/Principal.h \ + $(TAO_ROOT)/tao/Principal.i \ + $(TAO_ROOT)/tao/Request.h \ + $(TAO_ROOT)/tao/Context.h \ + $(TAO_ROOT)/tao/Context.i \ + $(TAO_ROOT)/tao/Request.i \ + $(TAO_ROOT)/tao/Server_Request.h \ + $(TAO_ROOT)/tao/Object_KeyC.h \ + $(TAO_ROOT)/tao/Object_KeyC.i \ + $(TAO_ROOT)/tao/GIOP.h \ + $(TAO_ROOT)/tao/GIOP.i \ + $(TAO_ROOT)/tao/Server_Request.i \ + $(TAO_ROOT)/tao/Marshal.h \ + $(TAO_ROOT)/tao/Marshal.i \ + $(TAO_ROOT)/tao/singletons.h \ + $(ACE_ROOT)/ace/Singleton.h \ + $(ACE_ROOT)/ace/Singleton.i \ + $(ACE_ROOT)/ace/Singleton.cpp \ + $(ACE_ROOT)/ace/Object_Manager.h \ + $(ACE_ROOT)/ace/Object_Manager.i \ + $(ACE_ROOT)/ace/Managed_Object.h \ + $(ACE_ROOT)/ace/Managed_Object.i \ + $(ACE_ROOT)/ace/Managed_Object.cpp \ + $(TAO_ROOT)/tao/POA.h \ + $(TAO_ROOT)/tao/Object_Adapter.h \ + $(TAO_ROOT)/tao/Key_Adapters.h \ + $(ACE_ROOT)/ace/Map.h \ + $(ACE_ROOT)/ace/Map.i \ + $(ACE_ROOT)/ace/Map_T.h \ + $(ACE_ROOT)/ace/Pair.h \ + $(ACE_ROOT)/ace/Pair.i \ + $(ACE_ROOT)/ace/Pair_T.h \ + $(ACE_ROOT)/ace/Pair_T.i \ + $(ACE_ROOT)/ace/Pair_T.cpp \ + $(ACE_ROOT)/ace/Map_Manager.h \ + $(ACE_ROOT)/ace/Map_Manager.i \ + $(ACE_ROOT)/ace/Map_Manager.cpp \ + $(ACE_ROOT)/ace/Active_Map_Manager.h \ + $(ACE_ROOT)/ace/Active_Map_Manager.i \ + $(ACE_ROOT)/ace/Active_Map_Manager_T.h \ + $(ACE_ROOT)/ace/Active_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Active_Map_Manager_T.cpp \ + $(ACE_ROOT)/ace/Map_T.i \ + $(ACE_ROOT)/ace/Map_T.cpp \ + $(TAO_ROOT)/tao/Key_Adapters.i \ + $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ + $(TAO_ROOT)/tao/poa_macros.h \ + $(TAO_ROOT)/tao/POAS.h \ + $(TAO_ROOT)/tao/POA_CORBA.h \ + $(TAO_ROOT)/tao/DynAnyC.h \ + $(TAO_ROOT)/tao/DynAnyC.i \ + $(TAO_ROOT)/tao/DomainC.h \ + $(TAO_ROOT)/tao/DomainC.i \ + $(TAO_ROOT)/tao/POAS.i \ + $(TAO_ROOT)/tao/Active_Object_Map.h \ + $(TAO_ROOT)/tao/Active_Object_Map.i \ + $(TAO_ROOT)/tao/Object_Adapter.i \ + $(TAO_ROOT)/tao/POAManager.h \ + $(TAO_ROOT)/tao/POAManager.i \ + $(TAO_ROOT)/tao/POA.i \ + $(TAO_ROOT)/tao/Stub.h \ + $(TAO_ROOT)/tao/Pluggable.h \ + $(TAO_ROOT)/tao/Pluggable.i \ + $(TAO_ROOT)/tao/MProfile.h \ + $(TAO_ROOT)/tao/Profile.h \ + $(TAO_ROOT)/tao/Tagged_Components.h \ + $(TAO_ROOT)/tao/CONV_FRAMEC.h \ + $(TAO_ROOT)/tao/CONV_FRAMEC.i \ + $(TAO_ROOT)/tao/Tagged_Components.i \ + $(TAO_ROOT)/tao/Profile.i \ + $(TAO_ROOT)/tao/MProfile.i \ + $(TAO_ROOT)/tao/MessagingS.h \ + $(TAO_ROOT)/tao/TimeBaseS.h \ + $(TAO_ROOT)/tao/TimeBaseC.h \ + $(TAO_ROOT)/tao/TimeBaseC.i \ + $(TAO_ROOT)/tao/TimeBaseS_T.h \ + $(TAO_ROOT)/tao/TimeBaseS_T.i \ + $(TAO_ROOT)/tao/TimeBaseS_T.cpp \ + $(TAO_ROOT)/tao/TimeBaseS.i \ + $(TAO_ROOT)/tao/MessagingC.h \ + $(TAO_ROOT)/tao/PollableC.h \ + $(TAO_ROOT)/tao/MessagingC.i \ + $(TAO_ROOT)/tao/MessagingS.i \ + $(TAO_ROOT)/tao/TAOS.h \ + $(TAO_ROOT)/tao/TAOC.h \ + $(TAO_ROOT)/tao/TAOC.i \ + $(TAO_ROOT)/tao/TAOS_T.h \ + $(TAO_ROOT)/tao/TAOS_T.i \ + $(TAO_ROOT)/tao/TAOS_T.cpp \ + $(TAO_ROOT)/tao/TAOS.i \ + $(TAO_ROOT)/tao/Stub.i \ + $(TAO_ROOT)/tao/params.h \ + $(TAO_ROOT)/tao/params.i \ + $(TAO_ROOT)/tao/ORB_Core.h \ + $(TAO_ROOT)/tao/Policy_Manager.h \ + $(TAO_ROOT)/tao/Policy_Manager.i \ + $(TAO_ROOT)/tao/Resource_Factory.h \ + $(TAO_ROOT)/tao/Protocol_Factory.h \ + $(ACE_ROOT)/ace/Strategies_T.h \ + $(ACE_ROOT)/ace/Strategies.h \ + $(ACE_ROOT)/ace/Strategies.i \ + $(ACE_ROOT)/ace/Synch_Options.h \ + $(ACE_ROOT)/ace/Synch_Options.i \ + $(ACE_ROOT)/ace/Thread_Manager.h \ + $(ACE_ROOT)/ace/Thread_Manager.i \ + $(ACE_ROOT)/ace/Strategies_T.i \ + $(ACE_ROOT)/ace/Strategies_T.cpp \ + $(ACE_ROOT)/ace/Service_Repository.h \ + $(ACE_ROOT)/ace/Service_Types.h \ + $(ACE_ROOT)/ace/Service_Types.i \ + $(ACE_ROOT)/ace/Service_Repository.i \ + $(ACE_ROOT)/ace/WFMO_Reactor.h \ + $(ACE_ROOT)/ace/Message_Queue.h \ + $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ + $(ACE_ROOT)/ace/Message_Queue_T.h \ + $(ACE_ROOT)/ace/Message_Queue_T.i \ + $(ACE_ROOT)/ace/Message_Queue_T.cpp \ + $(ACE_ROOT)/ace/Message_Queue.i \ + $(ACE_ROOT)/ace/WFMO_Reactor.i \ + $(TAO_ROOT)/tao/ORB_Core.i \ + $(ACE_ROOT)/ace/Dynamic_Service.h \ + $(ACE_ROOT)/ace/Dynamic_Service.cpp \ + $(TAO_ROOT)/tao/Operation_Table.h \ + $(TAO_ROOT)/tao/debug.h \ + $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ + $(TAO_ROOT)/tao/Invocation.h \ + $(TAO_ROOT)/tao/Reply_Dispatcher.h \ + $(TAO_ROOT)/tao/Reply_Dispatcher.i \ + $(TAO_ROOT)/tao/Invocation.i \ + $(TAO_ROOT)/tao/InconsistentTypeCodeC.h \ + $(TAO_ROOT)/tao/DynAny_i.h \ + $(TAO_ROOT)/tao/Union.h \ + $(TAO_ROOT)/tao/ValueBase.h \ + $(TAO_ROOT)/tao/ValueBase.i \ + $(TAO_ROOT)/tao/ValueFactory.h \ + $(TAO_ROOT)/tao/ValueFactory.i \ + $(TAO_ROOT)/tao/ObjectIDList.h \ + $(TAO_ROOT)/tao/ObjectIDList.i \ + $(TAO_ROOT)/tao/WrongTransactionC.h \ + $(TAO_ROOT)/tao/BoundsC.h \ + $(TAO_ROOT)/tao/BoundsC.i \ + testC.i testS_T.h testS_T.i testS_T.cpp testS.i +.obj/test_i.o .obj/test_i.so .shobj/test_i.o .shobj/test_i.so: test_i.cpp test_i.h testS.h testC.h \ + $(TAO_ROOT)/tao/corba.h \ + $(ACE_ROOT)/ace/OS.h \ + $(ACE_ROOT)/ace/inc_user_config.h \ + $(ACE_ROOT)/ace/streams.h \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/Basic_Types.i \ + $(ACE_ROOT)/ace/Trace.h \ + $(ACE_ROOT)/ace/OS.i \ + $(ACE_ROOT)/ace/Log_Msg.h \ + $(ACE_ROOT)/ace/Log_Record.h \ + $(ACE_ROOT)/ace/ACE.h \ + $(ACE_ROOT)/ace/ACE.i \ + $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/Log_Record.i \ + $(TAO_ROOT)/tao/corbafwd.h \ + $(ACE_ROOT)/ace/CDR_Stream.h \ + $(ACE_ROOT)/ace/Message_Block.h \ + $(ACE_ROOT)/ace/Malloc.h \ + $(ACE_ROOT)/ace/Malloc_Base.h \ + $(ACE_ROOT)/ace/Malloc.i \ + $(ACE_ROOT)/ace/Malloc_T.h \ + $(ACE_ROOT)/ace/Synch.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ + $(ACE_ROOT)/ace/Synch.i \ + $(ACE_ROOT)/ace/Synch_T.h \ + $(ACE_ROOT)/ace/Event_Handler.h \ + $(ACE_ROOT)/ace/Event_Handler.i \ + $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Thread.h \ + $(ACE_ROOT)/ace/Thread.i \ + $(ACE_ROOT)/ace/Atomic_Op.i \ + $(ACE_ROOT)/ace/Synch_T.cpp \ + $(ACE_ROOT)/ace/Free_List.h \ + $(ACE_ROOT)/ace/Free_List.i \ + $(ACE_ROOT)/ace/Free_List.cpp \ + $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Memory_Pool.h \ + $(ACE_ROOT)/ace/Signal.h \ + $(ACE_ROOT)/ace/Containers.h \ + $(ACE_ROOT)/ace/Containers.i \ + $(ACE_ROOT)/ace/Containers_T.h \ + $(ACE_ROOT)/ace/Containers_T.i \ + $(ACE_ROOT)/ace/Containers_T.cpp \ + $(ACE_ROOT)/ace/Signal.i \ + $(ACE_ROOT)/ace/Mem_Map.h \ + $(ACE_ROOT)/ace/Mem_Map.i \ + $(ACE_ROOT)/ace/Memory_Pool.i \ + $(ACE_ROOT)/ace/Message_Block.i \ + $(ACE_ROOT)/ace/Message_Block_T.h \ + $(ACE_ROOT)/ace/Message_Block_T.i \ + $(ACE_ROOT)/ace/Message_Block_T.cpp \ + $(ACE_ROOT)/ace/SString.h \ + $(ACE_ROOT)/ace/SString.i \ + $(ACE_ROOT)/ace/CDR_Stream.i \ + $(TAO_ROOT)/tao/try_macros.h \ + $(TAO_ROOT)/tao/orbconf.h \ + $(ACE_ROOT)/ace/CORBA_macros.h \ + $(TAO_ROOT)/tao/corbafwd.i \ + $(TAO_ROOT)/tao/Environment.h \ + $(TAO_ROOT)/tao/Environment.i \ + $(TAO_ROOT)/tao/ORB.h \ + $(TAO_ROOT)/tao/Exception.h \ + $(TAO_ROOT)/tao/Exception.i \ + $(TAO_ROOT)/tao/IOR_LookupTable.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager.h \ + $(ACE_ROOT)/ace/Functor.h \ + $(ACE_ROOT)/ace/Functor.i \ + $(ACE_ROOT)/ace/Functor_T.h \ + $(ACE_ROOT)/ace/Functor_T.i \ + $(ACE_ROOT)/ace/Functor_T.cpp \ + $(ACE_ROOT)/ace/Hash_Map_Manager.i \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ + $(ACE_ROOT)/ace/Service_Config.h \ + $(ACE_ROOT)/ace/Service_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.i \ + $(ACE_ROOT)/ace/Service_Object.i \ + $(ACE_ROOT)/ace/Service_Config.i \ + $(ACE_ROOT)/ace/Reactor.h \ + $(ACE_ROOT)/ace/Handle_Set.h \ + $(ACE_ROOT)/ace/Handle_Set.i \ + $(ACE_ROOT)/ace/Timer_Queue.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.i \ + $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ + $(ACE_ROOT)/ace/Reactor.i \ + $(ACE_ROOT)/ace/Reactor_Impl.h \ + $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(TAO_ROOT)/tao/Services.h \ + $(TAO_ROOT)/tao/Sequence.h \ + $(TAO_ROOT)/tao/Managed_Types.h \ + $(TAO_ROOT)/tao/Managed_Types.i \ + $(TAO_ROOT)/tao/Sequence.i \ + $(TAO_ROOT)/tao/Sequence_T.h \ + $(TAO_ROOT)/tao/Sequence_T.i \ + $(TAO_ROOT)/tao/Sequence_T.cpp \ + $(TAO_ROOT)/tao/varout.h \ + $(TAO_ROOT)/tao/Object.h \ + $(TAO_ROOT)/tao/Object.i \ + $(TAO_ROOT)/tao/varout.i \ + $(TAO_ROOT)/tao/varout.cpp \ + $(TAO_ROOT)/tao/Services.i \ + $(TAO_ROOT)/tao/IORManipulation.h \ + $(TAO_ROOT)/tao/IORS.h \ + $(TAO_ROOT)/tao/IORC.h \ + $(TAO_ROOT)/tao/CDR.h \ + $(TAO_ROOT)/tao/Typecode.h \ + $(TAO_ROOT)/tao/Typecode.i \ + $(TAO_ROOT)/tao/CDR.i \ + $(TAO_ROOT)/tao/IORC.i \ + $(TAO_ROOT)/tao/Servant_Base.h \ + $(TAO_ROOT)/tao/POAC.h \ + $(TAO_ROOT)/tao/PolicyC.h \ + $(TAO_ROOT)/tao/CurrentC.h \ + $(TAO_ROOT)/tao/CurrentC.i \ + $(TAO_ROOT)/tao/PolicyC.i \ + $(TAO_ROOT)/tao/POAC.i \ + $(TAO_ROOT)/tao/Servant_Base.i \ + $(TAO_ROOT)/tao/IORS.i \ + $(TAO_ROOT)/tao/Interceptor.h \ + $(TAO_ROOT)/tao/InterceptorS.h \ + $(TAO_ROOT)/tao/InterceptorC.h \ + $(TAO_ROOT)/tao/IOPC.h \ + $(TAO_ROOT)/tao/IOPC.i \ + $(TAO_ROOT)/tao/Any.h \ + $(TAO_ROOT)/tao/Any.i \ + $(TAO_ROOT)/tao/InterceptorC.i \ + $(TAO_ROOT)/tao/Interceptor.i \ + $(TAO_ROOT)/tao/ORB.i \ + $(TAO_ROOT)/tao/NVList.h \ + $(TAO_ROOT)/tao/NVList.i \ + $(TAO_ROOT)/tao/Principal.h \ + $(TAO_ROOT)/tao/Principal.i \ + $(TAO_ROOT)/tao/Request.h \ + $(TAO_ROOT)/tao/Context.h \ + $(TAO_ROOT)/tao/Context.i \ + $(TAO_ROOT)/tao/Request.i \ + $(TAO_ROOT)/tao/Server_Request.h \ + $(TAO_ROOT)/tao/Object_KeyC.h \ + $(TAO_ROOT)/tao/Object_KeyC.i \ + $(TAO_ROOT)/tao/GIOP.h \ + $(TAO_ROOT)/tao/GIOP.i \ + $(TAO_ROOT)/tao/Server_Request.i \ + $(TAO_ROOT)/tao/Marshal.h \ + $(TAO_ROOT)/tao/Marshal.i \ + $(TAO_ROOT)/tao/singletons.h \ + $(ACE_ROOT)/ace/Singleton.h \ + $(ACE_ROOT)/ace/Singleton.i \ + $(ACE_ROOT)/ace/Singleton.cpp \ + $(ACE_ROOT)/ace/Object_Manager.h \ + $(ACE_ROOT)/ace/Object_Manager.i \ + $(ACE_ROOT)/ace/Managed_Object.h \ + $(ACE_ROOT)/ace/Managed_Object.i \ + $(ACE_ROOT)/ace/Managed_Object.cpp \ + $(TAO_ROOT)/tao/POA.h \ + $(TAO_ROOT)/tao/Object_Adapter.h \ + $(TAO_ROOT)/tao/Key_Adapters.h \ + $(ACE_ROOT)/ace/Map.h \ + $(ACE_ROOT)/ace/Map.i \ + $(ACE_ROOT)/ace/Map_T.h \ + $(ACE_ROOT)/ace/Pair.h \ + $(ACE_ROOT)/ace/Pair.i \ + $(ACE_ROOT)/ace/Pair_T.h \ + $(ACE_ROOT)/ace/Pair_T.i \ + $(ACE_ROOT)/ace/Pair_T.cpp \ + $(ACE_ROOT)/ace/Map_Manager.h \ + $(ACE_ROOT)/ace/Map_Manager.i \ + $(ACE_ROOT)/ace/Map_Manager.cpp \ + $(ACE_ROOT)/ace/Active_Map_Manager.h \ + $(ACE_ROOT)/ace/Active_Map_Manager.i \ + $(ACE_ROOT)/ace/Active_Map_Manager_T.h \ + $(ACE_ROOT)/ace/Active_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Active_Map_Manager_T.cpp \ + $(ACE_ROOT)/ace/Map_T.i \ + $(ACE_ROOT)/ace/Map_T.cpp \ + $(TAO_ROOT)/tao/Key_Adapters.i \ + $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ + $(TAO_ROOT)/tao/poa_macros.h \ + $(TAO_ROOT)/tao/POAS.h \ + $(TAO_ROOT)/tao/POA_CORBA.h \ + $(TAO_ROOT)/tao/DynAnyC.h \ + $(TAO_ROOT)/tao/DynAnyC.i \ + $(TAO_ROOT)/tao/DomainC.h \ + $(TAO_ROOT)/tao/DomainC.i \ + $(TAO_ROOT)/tao/POAS.i \ + $(TAO_ROOT)/tao/Active_Object_Map.h \ + $(TAO_ROOT)/tao/Active_Object_Map.i \ + $(TAO_ROOT)/tao/Object_Adapter.i \ + $(TAO_ROOT)/tao/POAManager.h \ + $(TAO_ROOT)/tao/POAManager.i \ + $(TAO_ROOT)/tao/POA.i \ + $(TAO_ROOT)/tao/Stub.h \ + $(TAO_ROOT)/tao/Pluggable.h \ + $(TAO_ROOT)/tao/Pluggable.i \ + $(TAO_ROOT)/tao/MProfile.h \ + $(TAO_ROOT)/tao/Profile.h \ + $(TAO_ROOT)/tao/Tagged_Components.h \ + $(TAO_ROOT)/tao/CONV_FRAMEC.h \ + $(TAO_ROOT)/tao/CONV_FRAMEC.i \ + $(TAO_ROOT)/tao/Tagged_Components.i \ + $(TAO_ROOT)/tao/Profile.i \ + $(TAO_ROOT)/tao/MProfile.i \ + $(TAO_ROOT)/tao/MessagingS.h \ + $(TAO_ROOT)/tao/TimeBaseS.h \ + $(TAO_ROOT)/tao/TimeBaseC.h \ + $(TAO_ROOT)/tao/TimeBaseC.i \ + $(TAO_ROOT)/tao/TimeBaseS_T.h \ + $(TAO_ROOT)/tao/TimeBaseS_T.i \ + $(TAO_ROOT)/tao/TimeBaseS_T.cpp \ + $(TAO_ROOT)/tao/TimeBaseS.i \ + $(TAO_ROOT)/tao/MessagingC.h \ + $(TAO_ROOT)/tao/PollableC.h \ + $(TAO_ROOT)/tao/MessagingC.i \ + $(TAO_ROOT)/tao/MessagingS.i \ + $(TAO_ROOT)/tao/TAOS.h \ + $(TAO_ROOT)/tao/TAOC.h \ + $(TAO_ROOT)/tao/TAOC.i \ + $(TAO_ROOT)/tao/TAOS_T.h \ + $(TAO_ROOT)/tao/TAOS_T.i \ + $(TAO_ROOT)/tao/TAOS_T.cpp \ + $(TAO_ROOT)/tao/TAOS.i \ + $(TAO_ROOT)/tao/Stub.i \ + $(TAO_ROOT)/tao/params.h \ + $(TAO_ROOT)/tao/params.i \ + $(TAO_ROOT)/tao/ORB_Core.h \ + $(TAO_ROOT)/tao/Policy_Manager.h \ + $(TAO_ROOT)/tao/Policy_Manager.i \ + $(TAO_ROOT)/tao/Resource_Factory.h \ + $(TAO_ROOT)/tao/Protocol_Factory.h \ + $(ACE_ROOT)/ace/Strategies_T.h \ + $(ACE_ROOT)/ace/Strategies.h \ + $(ACE_ROOT)/ace/Strategies.i \ + $(ACE_ROOT)/ace/Synch_Options.h \ + $(ACE_ROOT)/ace/Synch_Options.i \ + $(ACE_ROOT)/ace/Thread_Manager.h \ + $(ACE_ROOT)/ace/Thread_Manager.i \ + $(ACE_ROOT)/ace/Strategies_T.i \ + $(ACE_ROOT)/ace/Strategies_T.cpp \ + $(ACE_ROOT)/ace/Service_Repository.h \ + $(ACE_ROOT)/ace/Service_Types.h \ + $(ACE_ROOT)/ace/Service_Types.i \ + $(ACE_ROOT)/ace/Service_Repository.i \ + $(ACE_ROOT)/ace/WFMO_Reactor.h \ + $(ACE_ROOT)/ace/Message_Queue.h \ + $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ + $(ACE_ROOT)/ace/Message_Queue_T.h \ + $(ACE_ROOT)/ace/Message_Queue_T.i \ + $(ACE_ROOT)/ace/Message_Queue_T.cpp \ + $(ACE_ROOT)/ace/Message_Queue.i \ + $(ACE_ROOT)/ace/WFMO_Reactor.i \ + $(TAO_ROOT)/tao/ORB_Core.i \ + $(ACE_ROOT)/ace/Dynamic_Service.h \ + $(ACE_ROOT)/ace/Dynamic_Service.cpp \ + $(TAO_ROOT)/tao/Operation_Table.h \ + $(TAO_ROOT)/tao/debug.h \ + $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ + $(TAO_ROOT)/tao/Invocation.h \ + $(TAO_ROOT)/tao/Reply_Dispatcher.h \ + $(TAO_ROOT)/tao/Reply_Dispatcher.i \ + $(TAO_ROOT)/tao/Invocation.i \ + $(TAO_ROOT)/tao/InconsistentTypeCodeC.h \ + $(TAO_ROOT)/tao/DynAny_i.h \ + $(TAO_ROOT)/tao/Union.h \ + $(TAO_ROOT)/tao/ValueBase.h \ + $(TAO_ROOT)/tao/ValueBase.i \ + $(TAO_ROOT)/tao/ValueFactory.h \ + $(TAO_ROOT)/tao/ValueFactory.i \ + $(TAO_ROOT)/tao/ObjectIDList.h \ + $(TAO_ROOT)/tao/ObjectIDList.i \ + $(TAO_ROOT)/tao/WrongTransactionC.h \ + $(TAO_ROOT)/tao/BoundsC.h \ + $(TAO_ROOT)/tao/BoundsC.i \ + testC.i testS_T.h testS_T.i testS_T.cpp testS.i test_i.i + +# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/examples/Buffered_Oneways/README b/TAO/examples/Buffered_Oneways/README new file mode 100644 index 00000000000..986359e3bee --- /dev/null +++ b/TAO/examples/Buffered_Oneways/README @@ -0,0 +1,26 @@ +# $Id$ + +Description: + +This is a simple test for buffered oneways. It invokes multiple +oneway calls. Due to buffering in the ORB, the calls are +automatically bunched together instead of being delivered to the +server upon every invocation. + +Expected output: + +The client invokes a oneway after <interval> amount of time. Flushing +occurs every <flush count> invocations (explicitly), or after <message +count> invocations (implicitly), or after <message bytes> have been +queued up (implicitly). Any of these options can be turned off by +setting them to -1. + +The server prints out the time and the number of the oneway request. +The output should show a batch of invocations received on the server. + +How to run: + +You can use the run_test.pl script to run it or: + +$ server +$ client diff --git a/TAO/examples/Buffered_Oneways/client.cpp b/TAO/examples/Buffered_Oneways/client.cpp new file mode 100644 index 00000000000..e1b3b695682 --- /dev/null +++ b/TAO/examples/Buffered_Oneways/client.cpp @@ -0,0 +1,327 @@ +// $Id$ + +// ================================================================ +// +// = FILENAME +// client.cpp +// +// = DESCRIPTION +// This is a client that uses buffered oneways. +// +// = AUTHOR +// Irfan Pyarali +// +// ================================================================ + +#include "ace/Get_Opt.h" +#include "ace/Read_Buffer.h" +#include "testC.h" + +ACE_RCSID(Buffered_Oneways, client, "$Id$") + +// Name of file contains ior. +static char *IOR = "file://ior"; + +// Default iterations. +static CORBA::ULong iterations = 20; + +// Default number of bytes to buffer before flushing. +static CORBA::Long message_bytes = 1024; + +// Default number of invocations to buffer before flushing. +static CORBA::Long message_count = iterations / 2; + +// Default number of iterations before explicit flushing. +static CORBA::Long flush_count = message_count / 2; + +// Time interval between invocation (in milli seconds). +static long interval = 1000; + +// Flag indicates whether to shutdown remote server or not upon client +// shutdown. +static int shutdown_server = 0; + +static int +parse_args (int argc, char **argv) +{ + ACE_Get_Opt get_opts (argc, argv, "k:f:c:b:i:t:x"); + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'k': + IOR = get_opts.optarg; + break; + + case 'f': + flush_count = ::atoi (get_opts.optarg); + break; + + case 'c': + message_count = ::atoi (get_opts.optarg); + break; + + case 'b': + message_bytes = ::atoi (get_opts.optarg); + break; + + case 'i': + iterations = ::atoi (get_opts.optarg); + break; + + case 't': + interval = ::atoi (get_opts.optarg); + break; + + case 'x': + shutdown_server = 1; + break; + + case '?': + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s " + "-k IOR " + "-f flush count " + "-c message count " + "-b message bytes " + "-i iterations " + "-x shutdown server " + "-x interval between calls " + "\n", + argv [0]), + -1); + } + + if (IOR == 0) + ACE_ERROR_RETURN ((LM_ERROR, + "Please specify the IOR for the servant\n"), -1); + + // Indicates successful parsing of command line. + return 0; +} + +int +main (int argc, char **argv) +{ + ACE_DECLARE_NEW_CORBA_ENV; + + ACE_TRY + { + // Initialize the ORB. + CORBA::ORB_var orb = + CORBA::ORB_init (argc, + argv, + 0, + ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Initialize options based on command-line arguments. + int parse_args_result = parse_args (argc, argv); + if (parse_args_result != 0) + return parse_args_result; + + // Get an object reference from the argument string. + CORBA::Object_var base = + orb->string_to_object (IOR, + ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Try to narrow the object reference to a <test> reference. + test_var test_object = test::_narrow (base.in (), + ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Look for the ORB Policy Manager. + base = orb->resolve_initial_references ("ORBPolicyManager", + ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Narrow down to correct type. + CORBA::PolicyManager_var policy_manager = + CORBA::PolicyManager::_narrow (base.in (), + ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Start off with no constraints. + TAO::BufferingConstraint buffering_constraint; + buffering_constraint.mode = TAO::BUFFER_NONE; + + // If valid <message_count>, set the implicit flushing to + // account for queued messages. + if (message_count != -1) + { + buffering_constraint.mode |= TAO::BUFFER_MESSAGE_COUNT; + buffering_constraint.message_count = message_count; + } + + // If valid <message_bytes>, set the implicit flushing to + // account for queued bytes. + if (message_bytes != -1) + { + buffering_constraint.mode |= TAO::BUFFER_MESSAGE_BYTES; + buffering_constraint.message_bytes = message_bytes; + } + + // Setup the buffering constraint any. + CORBA::Any buffering_constraint_any; + buffering_constraint_any <<= buffering_constraint; + + // Setup the buffering constraint policy list. + CORBA::PolicyList buffering_constraint_policy_list (1); + buffering_constraint_policy_list.length (1); + + // Setup the buffering constraint policy. + buffering_constraint_policy_list[0] = + orb->create_policy (TAO::BUFFERING_CONSTRAINT_POLICY_TYPE, + buffering_constraint_any, + ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Setup the constraints (at the ORB level). + policy_manager->set_policy_overrides (buffering_constraint_policy_list, + CORBA::ADD_OVERRIDE, + ACE_TRY_ENV); + ACE_TRY_CHECK; + + // We are done with the policy. + buffering_constraint_policy_list[0]->destroy (ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Setup the none sync scope policy, i.e., the ORB will buffer + // oneways. + Messaging::SyncScope sync_none = Messaging::SYNC_NONE; + + // Setup the none sync scope any. + CORBA::Any sync_none_any; + sync_none_any <<= sync_none; + + // Setup the none sync scope policy list. + CORBA::PolicyList sync_none_policy_list (1); + sync_none_policy_list.length (1); + + // Setup the none sync scope policy. + sync_none_policy_list[0] = + orb->create_policy (Messaging::SYNC_SCOPE_POLICY_TYPE, + sync_none_any, + ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Setup the none sync scope (at the ORB level). + policy_manager->set_policy_overrides (sync_none_policy_list, + CORBA::ADD_OVERRIDE, + ACE_TRY_ENV); + ACE_TRY_CHECK; + + // + // Since we will use the none sync scope policy later, don't + // destroy it yet. + // + + // Setup the flush sync scope policy, i.e., the ORB will flush + // any buffer oneways (explicit flushing). + Messaging::SyncScope sync_flush = Messaging::SYNC_FLUSH; + + // Setup the flush sync scope any. + CORBA::Any sync_flush_any; + sync_flush_any <<= sync_flush; + + // Setup the flush sync scope policy list. + CORBA::PolicyList sync_flush_policy_list (1); + sync_flush_policy_list.length (1); + + // Setup the flush sync scope policy. + sync_flush_policy_list[0] = + orb->create_policy (Messaging::SYNC_SCOPE_POLICY_TYPE, + sync_flush_any, + ACE_TRY_ENV); + ACE_TRY_CHECK; + + // + // The default for now is none sync. We will use the flush policy later. + // + + // Interval between successive calls. + ACE_Time_Value sleep_interval (0, + interval * 1000); + + for (CORBA::ULong i = 1; i <= iterations; ++i) + { + // Explicit flushing (is specified). + if (flush_count != -1 && + i % flush_count == 0) + { + // Setup explicit flushing. + policy_manager->set_policy_overrides (sync_flush_policy_list, + CORBA::ADD_OVERRIDE, + ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Invoke the oneway method. + ACE_DEBUG ((LM_DEBUG, + "Iteration %d @ %T\n", + i)); + test_object->method (i, + ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Reset buffering policy. + policy_manager->set_policy_overrides (sync_none_policy_list, + CORBA::ADD_OVERRIDE, + ACE_TRY_ENV); + ACE_TRY_CHECK; + } + else + { + ACE_DEBUG ((LM_DEBUG, + "Iteration %d @ %T\n", + i)); + + // Invoke the oneway method. + test_object->method (i, + ACE_TRY_ENV); + ACE_TRY_CHECK; + } + + ACE_OS::sleep (sleep_interval); + } + + // Shutdown server. + if (shutdown_server) + { + test_object->shutdown (ACE_TRY_ENV); + ACE_TRY_CHECK; + } + + // We are now done with these policies. + sync_none_policy_list[0]->destroy (ACE_TRY_ENV); + ACE_TRY_CHECK; + + sync_flush_policy_list[0]->destroy (ACE_TRY_ENV); + ACE_TRY_CHECK; + + // Destroy the ORB. On some platforms, e.g., Win32, the socket + // library is closed at the end of main(). This means that any + // socket calls made after main() fail. Hence if we wait for + // static destructors to flush the queues, it will be too late. + // Therefore, we use explicit destruction here and flush the + // queues before main() ends. + + // @@ Ossama, reenable this after you get it to work. + + // orb->destroy (ACE_TRY_ENV); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Exception caught:"); + return -1; + } + ACE_ENDTRY; + + ACE_CHECK_RETURN (-1); + + return 0; +} diff --git a/TAO/examples/Buffered_Oneways/client.dsp b/TAO/examples/Buffered_Oneways/client.dsp new file mode 100644 index 00000000000..00d788a8733 --- /dev/null +++ b/TAO/examples/Buffered_Oneways/client.dsp @@ -0,0 +1,193 @@ +# Microsoft Developer Studio Project File - Name="Buffered_Oneways Client" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=Buffered_Oneways Client - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "client.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "client.mak" CFG="Buffered_Oneways Client - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "Buffered_Oneways Client - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "Buffered_Oneways Client - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "Buffered_Oneways Client - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /I "..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 ace.lib tao.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\tao" /libpath:"..\..\..\ace"
+
+!ELSEIF "$(CFG)" == "Buffered_Oneways Client - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir ""
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\.." /I "..\.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 aced.lib taod.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\tao" /libpath:"..\..\..\ace"
+
+!ENDIF
+
+# Begin Target
+
+# Name "Buffered_Oneways Client - Win32 Release"
+# Name "Buffered_Oneways Client - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\client.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\testC.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\testC.h
+# End Source File
+# End Group
+# Begin Group "IDL Files"
+
+# PROP Default_Filter "idl"
+# Begin Source File
+
+SOURCE=.\test.idl
+
+!IF "$(CFG)" == "Buffered_Oneways Client - Win32 Release"
+
+USERDEP__TEST_="..\..\..\bin\Release\tao_idl.exe"
+# Begin Custom Build - Invoking TAO's IDL Compiler on $(InputPath)
+InputPath=.\test.idl
+InputName=test
+
+BuildCmds= \
+ ..\..\..\bin\Release\tao_idl -Ge 1 $(InputName).idl
+
+"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ELSEIF "$(CFG)" == "Buffered_Oneways Client - Win32 Debug"
+
+USERDEP__TEST_="..\..\..\bin\tao_idl.exe"
+# Begin Custom Build - Invoking TAO's IDL Compiler on $(InputPath)
+InputPath=.\test.idl
+InputName=test
+
+BuildCmds= \
+ ..\..\..\bin\tao_idl -Ge 1 $(InputName).idl
+
+"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ENDIF
+
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/TAO/examples/Buffered_Oneways/run_test.pl b/TAO/examples/Buffered_Oneways/run_test.pl new file mode 100755 index 00000000000..af281223840 --- /dev/null +++ b/TAO/examples/Buffered_Oneways/run_test.pl @@ -0,0 +1,43 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +unshift @INC, '../../../bin'; +require ACEutils; + +$iorfile = "ior"; + +unlink $iorfile; + +$SV = Process::Create ($EXEPREFIX."server$EXE_EXT"); + +if (ACE::waitforfile_timed ($iorfile, 5) == -1) { + print STDERR "ERROR: cannot find file <$iorfile>\n"; + $SV->Kill (); $SV->TimedWait (1); + exit 1; +} + +$CL = Process::Create ($EXEPREFIX."client$EXE_EXT "); + +$client = $CL->TimedWait (60); +if ($client == -1) { + print STDERR "ERROR: client timedout\n"; + $CL->Kill (); $CL->TimedWait (1); +} + +$server = $SV->TimedWait (5); +if ($server == -1) { + print STDERR "ERROR: server timedout\n"; + $SV->Kill (); $SV->TimedWait (1); +} + +unlink $iorfile; + +if ($server != 0 || $client != 0) { + exit 1; +} + +exit 0; diff --git a/TAO/examples/Buffered_Oneways/server.cpp b/TAO/examples/Buffered_Oneways/server.cpp new file mode 100644 index 00000000000..e16614365a1 --- /dev/null +++ b/TAO/examples/Buffered_Oneways/server.cpp @@ -0,0 +1,112 @@ +// $Id$ + +#include "ace/Get_Opt.h" +#include "test_i.h" + +ACE_RCSID(Buffered_Oneways, server, "$Id$") + +const char *ior_output_file = "ior"; + +int +parse_args (int argc, char *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, "o:"); + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'o': + ior_output_file = get_opts.optarg; + break; + case '?': + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s " + "-o <iorfile>" + "\n", + argv [0]), + -1); + } + + // Indicates sucessful parsing of the command line + return 0; +} + +int +main (int argc, char *argv[]) +{ + ACE_TRY_NEW_ENV + { + CORBA::ORB_var orb = + CORBA::ORB_init (argc, + argv, + "", + ACE_TRY_ENV); + ACE_TRY_CHECK; + + CORBA::Object_var poa_object = + orb->resolve_initial_references ("RootPOA", + ACE_TRY_ENV); + ACE_TRY_CHECK; + + PortableServer::POA_var root_poa = + PortableServer::POA::_narrow (poa_object.in (), + ACE_TRY_ENV); + ACE_TRY_CHECK; + + PortableServer::POAManager_var poa_manager = + root_poa->the_POAManager (ACE_TRY_ENV); + ACE_TRY_CHECK; + + if (parse_args (argc, argv) != 0) + return -1; + + test_i servant (orb.in ()); + + test_var server = + servant._this (ACE_TRY_ENV); + ACE_TRY_CHECK; + + CORBA::String_var ior = + orb->object_to_string (server.in (), + ACE_TRY_ENV); + ACE_TRY_CHECK; + + ACE_DEBUG ((LM_DEBUG, "Activated as <%s>\n", ior.in ())); + + FILE *output_file = ACE_OS::fopen (ior_output_file, "w"); + if (output_file == 0) + ACE_ERROR_RETURN ((LM_ERROR, + "Cannot open output file for writing IOR: %s", + ior_output_file), + -1); + ACE_OS::fprintf (output_file, "%s", ior.in ()); + ACE_OS::fclose (output_file); + + poa_manager->activate (ACE_TRY_ENV); + ACE_TRY_CHECK; + + if (orb->run (ACE_TRY_ENV) == -1) + ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "orb->run"), -1); + ACE_TRY_CHECK; + + ACE_DEBUG ((LM_DEBUG, "event loop finished\n")); + + root_poa->destroy (1, + 1, + ACE_TRY_ENV); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Exception caught:"); + return -1; + } + ACE_ENDTRY; + + ACE_CHECK_RETURN (-1); + + return 0; +} diff --git a/TAO/examples/Buffered_Oneways/server.dsp b/TAO/examples/Buffered_Oneways/server.dsp new file mode 100644 index 00000000000..ac5a381b705 --- /dev/null +++ b/TAO/examples/Buffered_Oneways/server.dsp @@ -0,0 +1,205 @@ +# Microsoft Developer Studio Project File - Name="Buffered_Oneways Server" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=Buffered_Oneways Server - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "server.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "server.mak" CFG="Buffered_Oneways Server - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "Buffered_Oneways Server - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "Buffered_Oneways Server - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "Buffered_Oneways Server - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /I "..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 ace.lib tao.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\lib" /libpath:"..\..\..\ace" /libpath:"..\..\tao"
+
+!ELSEIF "$(CFG)" == "Buffered_Oneways Server - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "server___Win32_Debug"
+# PROP BASE Intermediate_Dir "server___Win32_Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir ""
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\.." /I "..\.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 aced.lib taod.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\lib" /libpath:"..\..\..\ace" /libpath:"..\..\tao"
+
+!ENDIF
+
+# Begin Target
+
+# Name "Buffered_Oneways Server - Win32 Release"
+# Name "Buffered_Oneways Server - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\server.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\test_i.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\testC.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\testS.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\test_i.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\testS.h
+# End Source File
+# End Group
+# Begin Group "IDL Files"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\test.idl
+
+!IF "$(CFG)" == "Buffered_Oneways Server - Win32 Release"
+
+USERDEP__TEST_="..\..\..\bin\Release\tao_idl.exe"
+# Begin Custom Build - Invoking TAO's IDL Compiler on $(InputPath)
+InputPath=.\test.idl
+InputName=test
+
+BuildCmds= \
+ ..\..\..\bin\Release\tao_idl -Ge 1 $(InputName).idl
+
+"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ELSEIF "$(CFG)" == "Buffered_Oneways Server - Win32 Debug"
+
+USERDEP__TEST_="..\..\..\bin\tao_idl.exe"
+# Begin Custom Build - Invoking TAO's IDL Compiler on $(InputPath)
+InputPath=.\test.idl
+InputName=test
+
+BuildCmds= \
+ ..\..\..\bin\tao_idl -Ge 1 $(InputName).idl
+
+"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ENDIF
+
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/TAO/examples/Buffered_Oneways/test.idl b/TAO/examples/Buffered_Oneways/test.idl new file mode 100644 index 00000000000..a324dca820f --- /dev/null +++ b/TAO/examples/Buffered_Oneways/test.idl @@ -0,0 +1,10 @@ +// +// $Id$ +// + +interface test +{ + oneway void method (in unsigned long request_number); + + oneway void shutdown (); +}; diff --git a/TAO/examples/Buffered_Oneways/test_i.cpp b/TAO/examples/Buffered_Oneways/test_i.cpp new file mode 100644 index 00000000000..78d55a6b6ed --- /dev/null +++ b/TAO/examples/Buffered_Oneways/test_i.cpp @@ -0,0 +1,28 @@ +// $Id$ + +#include "test_i.h" + +ACE_RCSID(Buffered_Oneways, test_i, "$Id$") + +test_i::test_i (CORBA::ORB_ptr orb) + : orb_ (CORBA::ORB::_duplicate (orb)) +{ +} + +void +test_i::method (CORBA::ULong request_number, + CORBA::Environment &) + ACE_THROW_SPEC (()) +{ + ACE_DEBUG ((LM_DEBUG, + "Iteration %d @ %T\n", + request_number)); +} + +void +test_i::shutdown (CORBA::Environment &ACE_TRY_ENV) + ACE_THROW_SPEC (()) +{ + this->orb_->shutdown (0, + ACE_TRY_ENV); +} diff --git a/TAO/examples/Buffered_Oneways/test_i.h b/TAO/examples/Buffered_Oneways/test_i.h new file mode 100644 index 00000000000..6e961230a82 --- /dev/null +++ b/TAO/examples/Buffered_Oneways/test_i.h @@ -0,0 +1,43 @@ +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// TAO/examples/Buffered_Oneways/ +// +// = FILENAME +// test_i.h +// +// = AUTHOR +// Irfan Pyarali +// +// ============================================================================ + +#ifndef TAO_BUFFERED_ONEWAYS_TEST_I_H +#define TAO_BUFFERED_ONEWAYS_TEST_I_H + +#include "testS.h" + +class test_i : public POA_test +{ + // = TITLE + // Simple implementation. + // +public: + test_i (CORBA::ORB_ptr orb); + // ctor. + + // = The test interface methods. + void method (CORBA::ULong request_number, + CORBA::Environment &) + ACE_THROW_SPEC (()); + + void shutdown (CORBA::Environment &) + ACE_THROW_SPEC (()); + +private: + CORBA::ORB_var orb_; + // The ORB. +}; + +#endif /* TAO_BUFFERED_ONEWAYS_TEST_I_H */ diff --git a/TAO/examples/Makefile b/TAO/examples/Makefile index 7ed87ae2c07..6c7459db56c 100644 --- a/TAO/examples/Makefile +++ b/TAO/examples/Makefile @@ -35,6 +35,13 @@ ifndef minimum_corba endif # minimum_corba +ifdef corba_messaging + +# No Buffered Oneways without CORBA Messaging + DIRS += Buffered_Oneways + +endif # corba_messaging + include $(ACE_ROOT)/include/makeinclude/macros.GNU include $(TAO_ROOT)/rules.tao.GNU include $(ACE_ROOT)/include/makeinclude/rules.common.GNU diff --git a/TAO/examples/POA/Generic_Servant/client.cpp b/TAO/examples/POA/Generic_Servant/client.cpp index a464b503dea..b96bf45b1e8 100644 --- a/TAO/examples/POA/Generic_Servant/client.cpp +++ b/TAO/examples/POA/Generic_Servant/client.cpp @@ -64,8 +64,8 @@ parse_args (int argc, char **argv) break; case 'x': - shutdown_server = 1; - break; + shutdown_server = 1; + break; case '?': default: @@ -76,6 +76,8 @@ parse_args (int argc, char **argv) "-o oneway " "-t timed operations " "-T timeout for timed operations " + "-i iterations " + "-x shutdown server " "\n", argv [0]), -1); @@ -106,20 +108,20 @@ print_stats (ACE_Profile_Timer::ACE_Elapsed_Time &elapsed_time, double tmp = 1000 / elapsed_time.real_time; ACE_DEBUG ((LM_DEBUG, - "\titerations\t = %d, \n" - "\treal_time\t = %0.06f ms, \n" - "\tuser_time\t = %0.06f ms, \n" - "\tsystem_time\t = %0.06f ms, \n" - "\t%0.00f calls/second\n", + "\titerations\t = %d, \n" + "\treal_time\t = %0.06f ms, \n" + "\tuser_time\t = %0.06f ms, \n" + "\tsystem_time\t = %0.06f ms, \n" + "\t%0.00f calls/second\n", iterations, - elapsed_time.real_time < 0.0 ? 0.0 : elapsed_time.real_time, - elapsed_time.user_time < 0.0 ? 0.0 : elapsed_time.user_time, - elapsed_time.system_time < 0.0 ? 0.0 : elapsed_time.system_time, - tmp < 0.0 ? 0.0 : tmp)); + elapsed_time.real_time < 0.0 ? 0.0 : elapsed_time.real_time, + elapsed_time.user_time < 0.0 ? 0.0 : elapsed_time.user_time, + elapsed_time.system_time < 0.0 ? 0.0 : elapsed_time.system_time, + tmp < 0.0 ? 0.0 : tmp)); } else ACE_ERROR ((LM_ERROR, - "\tNo time stats printed. Zero iterations or error ocurred.\n")); + "\tNo time stats printed. Zero iterations or error ocurred.\n")); } int diff --git a/TAO/examples/TAO_Examples.dsw b/TAO/examples/TAO_Examples.dsw index f106bf58547..cf4a5b7996b 100644 --- a/TAO/examples/TAO_Examples.dsw +++ b/TAO/examples/TAO_Examples.dsw @@ -39,6 +39,30 @@ Package=<4> ###############################################################################
+Project: "Buffered_Oneways Client"=.\Buffered_Oneways\client.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "Buffered_Oneways Server"=.\Buffered_Oneways\server.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
Project: "Event_Comm Consumer"=.\Event_Comm\Consumer.dsp - Package Owner=<4>
Package=<5>
@@ -602,4 +626,3 @@ Package=<3> }}}
###############################################################################
-
diff --git a/TAO/tao/Buffering_Constraint_Policy.cpp b/TAO/tao/Buffering_Constraint_Policy.cpp new file mode 100644 index 00000000000..c88a2b302d6 --- /dev/null +++ b/TAO/tao/Buffering_Constraint_Policy.cpp @@ -0,0 +1,99 @@ +// $Id$ + +#include "tao/Buffering_Constraint_Policy.h" + +#if ! defined (__ACE_INLINE__) +#include "tao/Buffering_Constraint_Policy.i" +#endif /* __ACE_INLINE__ */ + +#if defined (TAO_HAS_CORBA_MESSAGING) + +ACE_RCSID(TAO, Buffering_Constraint_Policy, "$Id$") + +TAO_Buffering_Constraint_Policy::TAO_Buffering_Constraint_Policy (const TAO::BufferingConstraint &buffering_constraint, + PortableServer::POA_ptr poa) + : buffering_constraint_ (buffering_constraint), + poa_ (PortableServer::POA::_duplicate (poa)) +{ +} + +TAO::BufferingConstraint +TAO_Buffering_Constraint_Policy::buffering_constraint (CORBA::Environment &) +{ + return this->buffering_constraint_; +} + +CORBA::PolicyType +TAO_Buffering_Constraint_Policy::policy_type (CORBA_Environment &) +{ + return TAO::BUFFERING_CONSTRAINT_POLICY_TYPE; +} + +CORBA::Policy_ptr +TAO_Buffering_Constraint_Policy::create (PortableServer::POA_ptr poa, + const CORBA::Any& val, + CORBA::Environment &ACE_TRY_ENV) +{ + TAO::BufferingConstraint *buffering_constraint; + if ((val >>= buffering_constraint) == 0) + ACE_THROW_RETURN (CORBA::PolicyError (CORBA::BAD_POLICY_TYPE), + CORBA::Policy::_nil ()); + + TAO_Buffering_Constraint_Policy *servant = 0; + ACE_NEW_THROW_EX (servant, + TAO_Buffering_Constraint_Policy (*buffering_constraint, + poa), + CORBA::NO_MEMORY ()); + ACE_CHECK_RETURN (CORBA::Policy::_nil ()); + + PortableServer::ServantBase_var smart_servant (servant); + + CORBA::Policy_var result = servant->_this (ACE_TRY_ENV); + ACE_CHECK_RETURN (CORBA::Policy::_nil ()); + + return result._retn (); +} + +CORBA::Policy_ptr +TAO_Buffering_Constraint_Policy::copy (CORBA_Environment &ACE_TRY_ENV) +{ + TAO_Buffering_Constraint_Policy* servant = 0; + ACE_NEW_THROW_EX (servant, + TAO_Buffering_Constraint_Policy (*this), + CORBA::NO_MEMORY ()); + ACE_CHECK_RETURN (CORBA::Policy::_nil ()); + + PortableServer::ServantBase_var smart_servant (servant); + + CORBA::Policy_var result = servant->_this (ACE_TRY_ENV); + ACE_CHECK_RETURN (CORBA::Policy::_nil ()); + + return result._retn (); +} + +void +TAO_Buffering_Constraint_Policy::destroy (CORBA_Environment &ACE_TRY_ENV) +{ + PortableServer::ObjectId_var id = + this->poa_->servant_to_id (this, + ACE_TRY_ENV); + ACE_CHECK; + + this->poa_->deactivate_object (id.in (), + ACE_TRY_ENV); + ACE_CHECK; +} + +PortableServer::POA_ptr +TAO_Buffering_Constraint_Policy::_default_POA (CORBA_Environment &) +{ + return PortableServer::POA::_duplicate (this->poa_.in ()); +} + +#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) + +#elif defined(ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) + +#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ + +#endif /* TAO_HAS_CORBA_MESSAGING */ diff --git a/TAO/tao/Buffering_Constraint_Policy.h b/TAO/tao/Buffering_Constraint_Policy.h new file mode 100644 index 00000000000..5ae69bf9292 --- /dev/null +++ b/TAO/tao/Buffering_Constraint_Policy.h @@ -0,0 +1,88 @@ +/* -*- C++ -*- */ +// $Id$ +// +// ============================================================================ +// +// = LIBRARY +// TAO +// +// = DESCRIPTION +// Implementation class for TAO-specific Buffering Constraint Policy. +// +// = FILENAME +// Buffering_Constraint_Policy.h +// +// = AUTHOR +// Irfan Pyarali (irfan@cs.wustl.edu) +// +// ============================================================================ + +#ifndef TAO_BUFFERING_CONSTRAINT_POLICY_H +#define TAO_BUFFERING_CONSTRAINT_POLICY_H + +#include "tao/orbconf.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#if defined (TAO_HAS_CORBA_MESSAGING) + +#include "TAOS.h" + +#if defined(_MSC_VER) +#pragma warning(disable:4250) +#endif /* _MSC_VER */ + +class TAO_Export TAO_Buffering_Constraint_Policy : public virtual PortableServer::RefCountServantBase, + public virtual POA_TAO::BufferingConstraintPolicy +{ + // = TITLE + // Implementation class for TAO-specific Buffering Constraint + // Policy. + // + // = DESCRIPTION + // This policy is used to control the buffering of requests by + // the ORB. + // +public: + TAO_Buffering_Constraint_Policy (const TAO::BufferingConstraint &buffering_constraint, + PortableServer::POA_ptr poa); + // Constructor. + + static CORBA::Policy_ptr create (PortableServer::POA_ptr poa, + const CORBA::Any& val, + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()); + // Helper method for the implementation of CORBA::ORB::create_policy. + + // = The TAO::Buffering_Constraint_Policy methods + + virtual TAO::BufferingConstraint buffering_constraint (CORBA::Environment &ACE_TRY_ENV = CORBA::Environment::default_environment ()); + + virtual CORBA::PolicyType policy_type (CORBA_Environment &ACE_TRY_ENV = TAO_default_environment ()); + + virtual CORBA::Policy_ptr copy (CORBA_Environment &ACE_TRY_ENV = TAO_default_environment ()); + + virtual void destroy (CORBA_Environment &ACE_TRY_ENV = TAO_default_environment ()); + + virtual PortableServer::POA_ptr _default_POA (CORBA_Environment &ACE_TRY_ENV = TAO_default_environment ()); + +private: + PortableServer::POA_var poa_; + // The default poa + + TAO::BufferingConstraint buffering_constraint_; + // The attribute +}; + +#if defined(_MSC_VER) +#pragma warning(default:4250) +#endif /* _MSC_VER */ + +#endif /* TAO_HAS_CORBA_MESSAGING */ + +#if defined (__ACE_INLINE__) +#include "tao/Buffering_Constraint_Policy.i" +#endif /* __ACE_INLINE__ */ + +#endif /* TAO_BUFFERING_CONSTRAINT_POLICY_H */ diff --git a/TAO/tao/Buffering_Constraint_Policy.i b/TAO/tao/Buffering_Constraint_Policy.i new file mode 100644 index 00000000000..cfa1da318d3 --- /dev/null +++ b/TAO/tao/Buffering_Constraint_Policy.i @@ -0,0 +1 @@ +// $Id$ diff --git a/TAO/tao/Client_Priority_Policy.cpp b/TAO/tao/Client_Priority_Policy.cpp index 7fd6b813e1b..dfea0adf3d0 100644 --- a/TAO/tao/Client_Priority_Policy.cpp +++ b/TAO/tao/Client_Priority_Policy.cpp @@ -6,9 +6,11 @@ #include "tao/Client_Priority_Policy.i" #endif /* __ACE_INLINE__ */ +#if defined (TAO_HAS_CORBA_MESSAGING) + ACE_RCSID(TAO, Client_Priority_Policy, "$Id$") - TAO::PrioritySpecification +TAO::PrioritySpecification TAO_Client_Priority_Policy::priority_specification (CORBA::Environment &) { return this->priority_spec_; @@ -88,3 +90,5 @@ TAO_Client_Priority_Policy::_default_POA (CORBA_Environment &) #elif defined(ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) #endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ + +#endif /* TAO_HAS_CORBA_MESSAGING */ diff --git a/TAO/tao/Client_Priority_Policy.h b/TAO/tao/Client_Priority_Policy.h index f5531dd01e9..90d2bdcdfd5 100644 --- a/TAO/tao/Client_Priority_Policy.h +++ b/TAO/tao/Client_Priority_Policy.h @@ -22,6 +22,14 @@ #ifndef TAO_CLIENT_PRIORITY_POLICY_H #define TAO_CLIENT_PRIORITY_POLICY_H +#include "tao/orbconf.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#if defined (TAO_HAS_CORBA_MESSAGING) + #include "TAOS.h" #if defined(_MSC_VER) @@ -76,12 +84,14 @@ private: // The attribute }; -#if defined (__ACE_INLINE__) -#include "tao/Client_Priority_Policy.i" -#endif /* __ACE_INLINE__ */ - #if defined(_MSC_VER) #pragma warning(default:4250) #endif /* _MSC_VER */ +#endif /* TAO_HAS_CORBA_MESSAGING */ + +#if defined (__ACE_INLINE__) +#include "tao/Client_Priority_Policy.i" +#endif /* __ACE_INLINE__ */ + #endif /* TAO_CLIENT_PRIORITY_POLICY_H */ diff --git a/TAO/tao/Client_Priority_Policy.i b/TAO/tao/Client_Priority_Policy.i index 6016db3a674..6fa7127a82b 100644 --- a/TAO/tao/Client_Priority_Policy.i +++ b/TAO/tao/Client_Priority_Policy.i @@ -1,5 +1,7 @@ // $Id$ +#if defined (TAO_HAS_CORBA_MESSAGING) + ACE_INLINE TAO_Client_Priority_Policy::TAO_Client_Priority_Policy ( PortableServer::POA_ptr poa, @@ -8,3 +10,5 @@ TAO_Client_Priority_Policy::TAO_Client_Priority_Policy ( priority_spec_ (priority_spec) { } + +#endif /* TAO_HAS_CORBA_MESSAGING */ diff --git a/TAO/tao/GIOP.cpp b/TAO/tao/GIOP.cpp index cafb10f168f..063a7302fcf 100644 --- a/TAO/tao/GIOP.cpp +++ b/TAO/tao/GIOP.cpp @@ -383,7 +383,8 @@ int TAO_GIOP::send_message (TAO_Transport *transport, TAO_OutputCDR &stream, TAO_ORB_Core *orb_core, - ACE_Time_Value *max_wait_time) + ACE_Time_Value *max_wait_time, + TAO_Stub *stub) { TAO_FUNCTION_PP_TIMEPROBE (TAO_GIOP_SEND_MESSAGE_START); @@ -448,7 +449,9 @@ TAO_GIOP::send_message (TAO_Transport *transport, stream.length ()); // This guarantees to send all data (bytes) or return an error. - ssize_t n = transport->send (stream.begin (), max_wait_time); + ssize_t n = transport->send (stub, + stream.begin (), + max_wait_time); if (n == -1) { diff --git a/TAO/tao/GIOP.h b/TAO/tao/GIOP.h index 55f3e2e589f..cd6a1d46d84 100644 --- a/TAO/tao/GIOP.h +++ b/TAO/tao/GIOP.h @@ -444,7 +444,8 @@ public: static int send_message (TAO_Transport *transport, TAO_OutputCDR &stream, TAO_ORB_Core* orb_core, - ACE_Time_Value *max_wait_time = 0); + ACE_Time_Value *max_wait_time = 0, + TAO_Stub *stub = 0); // Send message, returns TRUE if success, else FALSE. static void dump_msg (const char *label, diff --git a/TAO/tao/IIOP_Transport.cpp b/TAO/tao/IIOP_Transport.cpp index bbcbfcbdf10..8f1d4b7f850 100644 --- a/TAO/tao/IIOP_Transport.cpp +++ b/TAO/tao/IIOP_Transport.cpp @@ -1,8 +1,6 @@ // This may look like C, but it's really -*- C++ -*- // $Id$ - - #include "tao/IIOP_Transport.h" #include "tao/IIOP_Connect.h" #include "tao/IIOP_Profile.h" @@ -10,6 +8,8 @@ #include "tao/CDR.h" #include "tao/Transport_Mux_Strategy.h" #include "tao/Wait_Strategy.h" +#include "tao/Sync_Strategies.h" +#include "tao/Stub.h" #include "tao/ORB_Core.h" #include "tao/debug.h" @@ -56,6 +56,7 @@ TAO_IIOP_Transport::TAO_IIOP_Transport (TAO_IIOP_Handler_Base *handler, TAO_IIOP_Transport::~TAO_IIOP_Transport (void) { + this->flush_buffered_messages (); } TAO_IIOP_Handler_Base *& @@ -169,7 +170,8 @@ TAO_IIOP_Client_Transport::start_locate (TAO_ORB_Core *orb_core, } int -TAO_IIOP_Client_Transport::send_request (TAO_ORB_Core *orb_core, +TAO_IIOP_Client_Transport::send_request (TAO_Stub *stub, + TAO_ORB_Core *orb_core, TAO_OutputCDR &stream, int two_way, ACE_Time_Value *max_wait_time) @@ -181,7 +183,8 @@ TAO_IIOP_Client_Transport::send_request (TAO_ORB_Core *orb_core, if (TAO_GIOP::send_message (this, stream, orb_core, - max_wait_time) == -1) + max_wait_time, + stub) == -1) return -1; return this->idle_after_send (); @@ -296,7 +299,28 @@ TAO_IIOP_Client_Transport::register_handler (void) // ********************************************************************* ssize_t -TAO_IIOP_Transport::send (const ACE_Message_Block *mblk, +TAO_IIOP_Transport::send (TAO_Stub *stub, + const ACE_Message_Block *message_block, + ACE_Time_Value *max_wait_time) +{ + if (stub == 0) + { + return this->send (message_block, + max_wait_time); + } + else + { + TAO_Sync_Strategy &sync_strategy = stub->sync_strategy (); + + return sync_strategy.send (*this, + *stub, + message_block, + max_wait_time); + } +} + +ssize_t +TAO_IIOP_Transport::send (const ACE_Message_Block *message_block, ACE_Time_Value *max_wait_time) { TAO_FUNCTION_PP_TIMEPROBE (TAO_IIOP_TRANSPORT_SEND_START); @@ -312,7 +336,7 @@ TAO_IIOP_Transport::send (const ACE_Message_Block *mblk, ssize_t n = 0; ssize_t nbytes = 0; - for (const ACE_Message_Block *i = mblk; + for (const ACE_Message_Block *i = message_block; i != 0; i = i->cont ()) { @@ -336,7 +360,7 @@ TAO_IIOP_Transport::send (const ACE_Message_Block *mblk, iovcnt); else n = ACE::writev (this->handler_->peer ().get_handle (), - (const iovec*)iov, + (const iovec*) iov, iovcnt, max_wait_time); @@ -368,7 +392,7 @@ TAO_IIOP_Transport::send (const u_char *buf, size_t len, ACE_Time_Value *) { - TAO_FUNCTION_PP_TIMEPROBE (TAO_BIOP_TRANSPORT_SEND_START); + TAO_FUNCTION_PP_TIMEPROBE (TAO_IIOP_TRANSPORT_SEND_START); return this->handler_->peer ().send_n (buf, len); } @@ -388,7 +412,8 @@ TAO_IIOP_Transport::recv (char *buf, // Default action to be taken for send request. int -TAO_IIOP_Transport::send_request (TAO_ORB_Core * /* orb_core */, +TAO_IIOP_Transport::send_request (TAO_Stub *, + TAO_ORB_Core * /* orb_core */, TAO_OutputCDR & /* stream */, int /* twoway */, ACE_Time_Value * /* max_wait_time */) diff --git a/TAO/tao/IIOP_Transport.h b/TAO/tao/IIOP_Transport.h index 45ac5758459..cf42b87ddac 100644 --- a/TAO/tao/IIOP_Transport.h +++ b/TAO/tao/IIOP_Transport.h @@ -60,6 +60,9 @@ public: virtual void close_connection (void); virtual int idle (void); virtual ACE_HANDLE handle (void); + virtual ssize_t send (TAO_Stub *stub, + const ACE_Message_Block *mblk, + ACE_Time_Value *s = 0); virtual ssize_t send (const ACE_Message_Block *mblk, ACE_Time_Value *s = 0); virtual ssize_t send (const u_char *buf, @@ -68,7 +71,8 @@ public: virtual ssize_t recv (char *buf, size_t len, ACE_Time_Value *s = 0); - virtual int send_request (TAO_ORB_Core *orb_core , + virtual int send_request (TAO_Stub *stub, + TAO_ORB_Core *orb_core , TAO_OutputCDR &stream, int twoway, ACE_Time_Value *max_wait_time); @@ -115,7 +119,8 @@ public: TAO_OutputCDR &output, CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException)); - virtual int send_request (TAO_ORB_Core *orb_core, + virtual int send_request (TAO_Stub *stub, + TAO_ORB_Core *orb_core, TAO_OutputCDR &stream, int twoway, ACE_Time_Value *max_wait_time); diff --git a/TAO/tao/Invocation.cpp b/TAO/tao/Invocation.cpp index e5cd550f5c4..239188227d3 100644 --- a/TAO/tao/Invocation.cpp +++ b/TAO/tao/Invocation.cpp @@ -93,6 +93,13 @@ TAO_GIOP_Invocation::select_profile_based_on_policy (CORBA::Environment &ACE_TRY_ENV) ACE_THROW_SPEC ((CORBA::SystemException)) { +#if !defined (TAO_HAS_CORBA_MESSAGING) + + this->profile_ = this->stub_->profile_in_use (); + return this->profile_; + +#else + POA_TAO::ClientPriorityPolicy *policy = this->stub_->client_priority (); @@ -168,6 +175,9 @@ TAO_GIOP_Invocation::select_profile_based_on_policy else return this->profile_; } + +#endif /* TAO_HAS_CORBA_MESSAGING */ + } // The public API involves creating an invocation, starting it, filling @@ -346,7 +356,8 @@ TAO_GIOP_Invocation::invoke (CORBA::Boolean is_roundtrip, // arrive, there are policies to control that. countdown.update (); int result = - this->transport_->send_request (this->orb_core_, + this->transport_->send_request (this->stub_, + this->orb_core_, this->out_stream_, is_roundtrip, this->max_wait_time_); @@ -948,7 +959,8 @@ TAO_GIOP_Locate_Request_Invocation::invoke (CORBA::Environment &ACE_TRY_ENV) } int result = - this->transport_->send_request (this->orb_core_, + this->transport_->send_request (this->stub_, + this->orb_core_, this->out_stream_, 1, this->max_wait_time_); diff --git a/TAO/tao/Makefile b/TAO/tao/Makefile index dc75c8751fa..a060952f4fe 100644 --- a/TAO/tao/Makefile +++ b/TAO/tao/Makefile @@ -143,6 +143,7 @@ ORB_CORE_FILES = \ params \ Resource_Factory \ Server_Strategy_Factory \ + Sync_Strategies \ TAO_Internal \ Typecode_Constants \ IOR_LookupTable \ @@ -174,9 +175,12 @@ ORB_CORE_FILES += \ MessagingS \ Policy_Manager \ Messaging_Policy_i \ +# TAOC and TAOS should be moved outside the corba_messaging scope once +# more classes have been added to the TAO module. TAOC \ TAOS \ - Client_Priority_Policy + Client_Priority_Policy \ + Buffering_Constraint_Policy endif # corba_messaging diff --git a/TAO/tao/Messaging.pidl b/TAO/tao/Messaging.pidl index 94e991c0c42..6c5d1a0dea1 100644 --- a/TAO/tao/Messaging.pidl +++ b/TAO/tao/Messaging.pidl @@ -41,6 +41,9 @@ module Messaging const SyncScope SYNC_WITH_SERVER = 2; const SyncScope SYNC_WITH_TARGET = 3; + // = TAO specific extension. + const SyncScope SYNC_FLUSH = 4; + typedef short RoutingType; const RoutingType ROUTE_NONE = 0; const RoutingType ROUTE_FORWARD = 1; diff --git a/TAO/tao/MessagingC.cpp b/TAO/tao/MessagingC.cpp index 40b2bb2bbfa..52ca94ec0cb 100644 --- a/TAO/tao/MessagingC.cpp +++ b/TAO/tao/MessagingC.cpp @@ -77,6 +77,11 @@ TAO_NAMESPACE_TYPE (const CORBA::Short) TAO_NAMESPACE_BEGIN (Messaging) TAO_NAMESPACE_DEFINE (const CORBA::Short, SYNC_WITH_TARGET, 3) TAO_NAMESPACE_END +// = TAO specific extension. +TAO_NAMESPACE_TYPE (const CORBA::Short) +TAO_NAMESPACE_BEGIN (Messaging) +TAO_NAMESPACE_DEFINE (const CORBA::Short, SYNC_FLUSH, 4) +TAO_NAMESPACE_END static const CORBA::Long _oc_Messaging_RoutingType[] = { TAO_ENCAP_BYTE_ORDER, // byte order @@ -1452,7 +1457,7 @@ Messaging::ExceptionHolder_init::~ExceptionHolder_init () { } -const char* +const char* Messaging::ExceptionHolder_init::tao_repository_id () { return Messaging::ExceptionHolder::_tao_obv_static_repository_id (); @@ -1529,14 +1534,14 @@ TAO_NAMESPACE_BEGIN (Messaging) TAO_NAMESPACE_DEFINE (CORBA::TypeCode_ptr, _tc_ReplyHandler, &_tc_TAO_tc_Messaging_ReplyHandler) TAO_NAMESPACE_END -CORBA::Boolean +CORBA::Boolean OBV_Messaging::ExceptionHolder::_tao_marshal__Messaging_ExceptionHolder (TAO_OutputCDR &strm){ return _tao_marshal_state (strm); - + } CORBA::Boolean OBV_Messaging::ExceptionHolder::_tao_unmarshal__Messaging_ExceptionHolder (TAO_InputCDR &strm){ return _tao_unmarshal_state (strm); - + } // accessor to set the member void @@ -1575,13 +1580,13 @@ OBV_Messaging::ExceptionHolder::marshaled_exception (const Messaging::ExceptionH /*Messaging::ExceptionHolder::*/_tao_seq_Octet (val) ); } -// readonly get method +// readonly get method const Messaging::ExceptionHolder::_tao_seq_Octet & OBV_Messaging::ExceptionHolder::marshaled_exception (void) const { return *this->_pd_marshaled_exception; } -// read/write get method +// read/write get method Messaging::ExceptionHolder::_tao_seq_Octet & OBV_Messaging::ExceptionHolder::marshaled_exception (void) { diff --git a/TAO/tao/MessagingC.h b/TAO/tao/MessagingC.h index e2b7f3cb701..557ff629b31 100644 --- a/TAO/tao/MessagingC.h +++ b/TAO/tao/MessagingC.h @@ -81,6 +81,9 @@ TAO_NAMESPACE Messaging TAO_NAMESPACE_STORAGE_CLASS const CORBA::Short SYNC_WITH_TARGET; + // = TAO specific extension. + TAO_NAMESPACE_STORAGE_CLASS const CORBA::Short SYNC_FLUSH; + typedef CORBA::Short RoutingType; typedef CORBA::Short_out RoutingType_out; TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_RoutingType; @@ -1561,7 +1564,7 @@ TAO_NAMESPACE Messaging // valuetype class class ExceptionHolder; typedef ExceptionHolder *ExceptionHolder_ptr; - + #if !defined (_MESSAGING_EXCEPTIONHOLDER___VAR_CH_) #define _MESSAGING_EXCEPTIONHOLDER___VAR_CH_ @@ -1573,14 +1576,14 @@ TAO_NAMESPACE Messaging ExceptionHolder_var (const ExceptionHolder*); // (TAO extension) ExceptionHolder_var (const ExceptionHolder_var &); // copy constructor ~ExceptionHolder_var (void); // destructor - + ExceptionHolder_var &operator= (ExceptionHolder*); ExceptionHolder_var &operator= (const ExceptionHolder_var &); ExceptionHolder* operator-> (void) const; - + operator const ExceptionHolder* () const; operator ExceptionHolder* (); - // in, inout, out, _retn + // in, inout, out, _retn ExceptionHolder* in (void) const; ExceptionHolder* &inout (void); ExceptionHolder* &out (void); @@ -1610,7 +1613,7 @@ TAO_NAMESPACE Messaging operator ExceptionHolder* &(); ExceptionHolder* &ptr (void); ExceptionHolder* operator-> (void); - + private: ExceptionHolder* &ptr_; }; @@ -1629,7 +1632,7 @@ TAO_NAMESPACE Messaging virtual const char* tao_repository_id (); // create () goes here - + }; #endif /* end #if !defined */ @@ -1668,34 +1671,25 @@ TAO_NAMESPACE Messaging // _tao_seq_Octet // ************************************************************* - class _tao_seq_Octet; - class _tao_seq_Octet_var; - typedef _tao_seq_Octet* _tao_seq_Octet_ptr; - - class TAO_Export _tao_seq_Octet : public + class TAO_Export _tao_seq_Octet : public #if !defined (TAO_USE_SEQUENCE_TEMPLATES) TAO_Unbounded_Sequence<CORBA::Octet> #else /* TAO_USE_SEQUENCE_TEMPLATES */ TAO_Unbounded_Sequence<CORBA::Octet> -#endif /* !TAO_USE_SEQUENCE_TEMPLATES */ +#endif /* !TAO_USE_SEQUENCE_TEMPLATES */ { public: _tao_seq_Octet (void); // default ctor _tao_seq_Octet (CORBA::ULong max); // uses max size _tao_seq_Octet ( - CORBA::ULong max, - CORBA::ULong length, - CORBA::Octet *buffer, + CORBA::ULong max, + CORBA::ULong length, + CORBA::Octet *buffer, CORBA::Boolean release=0 ); _tao_seq_Octet (const _tao_seq_Octet &); // copy ctor ~_tao_seq_Octet (void); // dtor -#if !defined(__GNUC__) || !defined (ACE_HAS_GNUG_PRE_2_8) - typedef _tao_seq_Octet_ptr _ptr_type; - typedef _tao_seq_Octet_var _var_type; -#endif /* ! __GNUC__ || g++ >= 2.8 */ - #if defined(TAO_NO_COPY_OCTET_SEQUENCES) _tao_seq_Octet ( CORBA::ULong length, @@ -1705,6 +1699,7 @@ TAO_NAMESPACE Messaging #endif /* TAO_NO_COPY_OCTET_SEQUENCE */ }; + typedef _tao_seq_Octet *_tao_seq_Octet_ptr; #endif /* end #if !defined */ @@ -1723,17 +1718,17 @@ TAO_NAMESPACE Messaging _tao_seq_Octet_var (_tao_seq_Octet *); _tao_seq_Octet_var (const _tao_seq_Octet_var &); // copy constructor ~_tao_seq_Octet_var (void); // destructor - + _tao_seq_Octet_var &operator= (_tao_seq_Octet *); _tao_seq_Octet_var &operator= (const _tao_seq_Octet_var &); _tao_seq_Octet *operator-> (void); const _tao_seq_Octet *operator-> (void) const; - + operator const _tao_seq_Octet &() const; operator _tao_seq_Octet &(); operator _tao_seq_Octet &() const; CORBA::Octet &operator[] (CORBA::ULong index); - // in, inout, out, _retn + // in, inout, out, _retn const _tao_seq_Octet &in (void) const; _tao_seq_Octet &inout (void); _tao_seq_Octet *&out (void); @@ -1763,7 +1758,7 @@ TAO_NAMESPACE Messaging _tao_seq_Octet *&ptr (void); _tao_seq_Octet *operator-> (void); CORBA::Octet &operator[] (CORBA::ULong index); - + private: _tao_seq_Octet *&ptr_; // assignment from T_var not allowed @@ -1773,32 +1768,28 @@ TAO_NAMESPACE Messaging #endif /* end #if !defined */ -#if !defined (__GNUC__) || !defined (ACE_HAS_GNUG_PRE_2_8) - typedef _tao_seq_Octet _marshaled_exception_seq; -#endif /* ! __GNUC__ || ACE_HAS_GNUG_PRE_2_8 */ - virtual void marshaled_exception (const _tao_seq_Octet &) = 0; // set virtual const _tao_seq_Octet &marshaled_exception (void) const = 0; // get method (read only) virtual _tao_seq_Octet &marshaled_exception (void) = 0; // get method (read/write only) protected: - ExceptionHolder (void); // default constructor - virtual ~ExceptionHolder (void); + ExceptionHolder (void) { }; // default constructor + virtual ~ExceptionHolder (void) { }; // TAO internals virtual void *_tao_obv_narrow (ptr_arith_t); virtual CORBA::Boolean _tao_marshal_v (TAO_OutputCDR &); virtual CORBA::Boolean _tao_unmarshal_v (TAO_InputCDR &); - + private: ExceptionHolder (const ExceptionHolder &); void operator= (const ExceptionHolder &); - + protected: virtual CORBA::Boolean _tao_marshal__Messaging_ExceptionHolder (TAO_OutputCDR &) = 0; virtual CORBA::Boolean _tao_unmarshal__Messaging_ExceptionHolder (TAO_InputCDR &) = 0; - + }; #endif /* end #if !defined */ @@ -2023,7 +2014,7 @@ TAO_NAMESPACE OBV_Messaging #define _MESSAGING_EXCEPTIONHOLDER___OBV_CH_ // OBV_ class - class TAO_Export ExceptionHolder : public virtual Messaging::ExceptionHolder + class ExceptionHolder : public virtual Messaging::ExceptionHolder { public: virtual void is_system_exception (CORBA::Boolean); // set @@ -2045,7 +2036,7 @@ TAO_NAMESPACE OBV_Messaging private: - CORBA::Boolean _pd_is_system_exception; + CORBA::Boolean _pd_is_system_exception; CORBA::Boolean _pd_byte_order; #if !defined (__GNUC__) || !defined (ACE_HAS_GNUG_PRE_2_8) typedef _tao_seq_Octet _marshaled_exception_seq; @@ -2069,6 +2060,7 @@ class TAO_InputCDR; #if defined (TAO_HAS_AMI_CALLBACK) +// @@ Michael: Addition enum TAO_AMI_Reply_Status { @@ -2109,13 +2101,10 @@ void TAO_Export operator<<= (CORBA::Any &, Messaging::PolicyValueSeq*); // nonco CORBA::Boolean TAO_Export operator>>= (const CORBA::Any &, Messaging::PolicyValueSeq *&); #if defined (TAO_HAS_AMI_CALLBACK) -extern Messaging::ReplyHandler_ptr (*_TAO_collocation_Messaging_ReplyHandler_Stub_Factory_function_pointer) ( - CORBA::Object_ptr obj - ); // Any operators for interface Messaging::ReplyHandler void TAO_Export operator<<= (CORBA::Any &, Messaging::ReplyHandler_ptr); CORBA::Boolean TAO_Export operator>>= (const CORBA::Any &, Messaging::ReplyHandler *&); -CORBA::Boolean operator<< (TAO_OutputCDR &, const Messaging::ExceptionHolder *); // +CORBA::Boolean operator<< (TAO_OutputCDR &, const Messaging::ExceptionHolder *); // CORBA::Boolean operator>> (TAO_InputCDR &, Messaging::ExceptionHolder *&); #endif /* TAO_HAS_AMI_CALLBACK */ diff --git a/TAO/tao/Messaging_Policy_i.cpp b/TAO/tao/Messaging_Policy_i.cpp index 695600502ad..74a2b99ef75 100644 --- a/TAO/tao/Messaging_Policy_i.cpp +++ b/TAO/tao/Messaging_Policy_i.cpp @@ -10,6 +10,14 @@ ACE_RCSID(TAO, Messaging_Policy_i, "$Id$") +TAO_RelativeRoundtripTimeoutPolicy_i::TAO_RelativeRoundtripTimeoutPolicy_i ( + PortableServer::POA_ptr poa, + const TimeBase::TimeT& relative_expiry) + : poa_ (PortableServer::POA::_duplicate (poa)), + relative_expiry_ (relative_expiry) +{ +} + TimeBase::TimeT TAO_RelativeRoundtripTimeoutPolicy_i::relative_expiry ( CORBA::Environment & @@ -101,6 +109,90 @@ TAO_RelativeRoundtripTimeoutPolicy_i::_default_POA ( return PortableServer::POA::_duplicate (this->poa_.in ()); } +//////////////////////////////////////////////////////////////////////////////// + +TAO_Sync_Scope_Policy::TAO_Sync_Scope_Policy (Messaging::SyncScope synchronization, + PortableServer::POA_ptr poa) + : synchronization_ (synchronization), + poa_ (PortableServer::POA::_duplicate (poa)) +{ +} + +Messaging::SyncScope +TAO_Sync_Scope_Policy::synchronization (CORBA::Environment &) +{ + return this->synchronization_; +} + +CORBA::PolicyType +TAO_Sync_Scope_Policy::policy_type (CORBA_Environment &) +{ + return Messaging::SYNC_SCOPE_POLICY_TYPE; +} + +CORBA::Policy_ptr +TAO_Sync_Scope_Policy::create (PortableServer::POA_ptr poa, + const CORBA::Any& val, + CORBA::Environment &ACE_TRY_ENV) +{ + Messaging::SyncScope synchronization; + if ((val >>= synchronization) == 0) + ACE_THROW_RETURN (CORBA::PolicyError (CORBA::BAD_POLICY_TYPE), + CORBA::Policy::_nil ()); + + TAO_Sync_Scope_Policy *servant = 0; + ACE_NEW_THROW_EX (servant, + TAO_Sync_Scope_Policy (synchronization, + poa), + CORBA::NO_MEMORY ()); + ACE_CHECK_RETURN (CORBA::Policy::_nil ()); + + PortableServer::ServantBase_var smart_servant (servant); + + CORBA::Policy_var result = servant->_this (ACE_TRY_ENV); + ACE_CHECK_RETURN (CORBA::Policy::_nil ()); + + return result._retn (); +} + +CORBA::Policy_ptr +TAO_Sync_Scope_Policy::copy (CORBA_Environment &ACE_TRY_ENV) +{ + TAO_Sync_Scope_Policy *servant = 0; + ACE_NEW_THROW_EX (servant, + TAO_Sync_Scope_Policy (*this), + CORBA::NO_MEMORY ()); + ACE_CHECK_RETURN (CORBA::Policy::_nil ()); + + PortableServer::ServantBase_var smart_servant (servant); + + CORBA::Policy_var result = servant->_this (ACE_TRY_ENV); + ACE_CHECK_RETURN (CORBA::Policy::_nil ()); + + return result._retn (); +} + +void +TAO_Sync_Scope_Policy::destroy (CORBA_Environment &ACE_TRY_ENV) +{ + PortableServer::ObjectId_var id = + this->poa_->servant_to_id (this, + ACE_TRY_ENV); + ACE_CHECK; + + this->poa_->deactivate_object (id.in (), + ACE_TRY_ENV); + ACE_CHECK; +} + +PortableServer::POA_ptr +TAO_Sync_Scope_Policy::_default_POA (CORBA_Environment &) +{ + return PortableServer::POA::_duplicate (this->poa_.in ()); +} + +//////////////////////////////////////////////////////////////////////////////// + #if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) #elif defined(ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) diff --git a/TAO/tao/Messaging_Policy_i.h b/TAO/tao/Messaging_Policy_i.h index 3548dbd3a12..d85a121eb93 100644 --- a/TAO/tao/Messaging_Policy_i.h +++ b/TAO/tao/Messaging_Policy_i.h @@ -20,10 +20,12 @@ #ifndef TAO_MESSAGING_POLICY_I_H #define TAO_MESSAGING_POLICY_I_H -#include "MessagingS.h" +#include "tao/orbconf.h" #if defined (TAO_HAS_CORBA_MESSAGING) +#include "MessagingS.h" + #if defined(_MSC_VER) #pragma warning(disable:4250) #endif /* _MSC_VER */ @@ -78,6 +80,50 @@ private: // The attribute }; +//////////////////////////////////////////////////////////////////////////////// + +class TAO_Export TAO_Sync_Scope_Policy : public virtual PortableServer::RefCountServantBase, + public virtual POA_Messaging::SyncScopePolicy + +{ + // = TITLE + // Messaging::SyncScopePolicy implementation. + // + // = DESCRIPTION + // This policy controls the sync strategy used by the ORB to + // transport requests. + // +public: + TAO_Sync_Scope_Policy (Messaging::SyncScope synchronization, + PortableServer::POA_ptr poa); + // Constructor. + + static CORBA::Policy_ptr create (PortableServer::POA_ptr poa, + const CORBA::Any& val, + CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()); + // Helper method for the implementation of + // CORBA::ORB::create_policy. + + // = The Messaging::SyncScopePolicy methods. + + virtual Messaging::SyncScope synchronization (CORBA::Environment &ACE_TRY_ENV = CORBA::Environment::default_environment ()); + + virtual CORBA::PolicyType policy_type (CORBA_Environment &ACE_TRY_ENV = TAO_default_environment ()); + + virtual CORBA::Policy_ptr copy (CORBA_Environment &ACE_TRY_ENV = TAO_default_environment ()); + + virtual void destroy (CORBA_Environment &ACE_TRY_ENV = TAO_default_environment ()); + + virtual PortableServer::POA_ptr _default_POA (CORBA_Environment &ACE_TRY_ENV = TAO_default_environment ()); + +private: + Messaging::SyncScope synchronization_; + // The attribute + + PortableServer::POA_var poa_; + // The default poa. +}; + #if defined (__ACE_INLINE__) #include "tao/Messaging_Policy_i.i" #endif /* __ACE_INLINE__ */ diff --git a/TAO/tao/Messaging_Policy_i.i b/TAO/tao/Messaging_Policy_i.i index 9b622cfe47d..cfa1da318d3 100644 --- a/TAO/tao/Messaging_Policy_i.i +++ b/TAO/tao/Messaging_Policy_i.i @@ -1,10 +1 @@ // $Id$ - -ACE_INLINE -TAO_RelativeRoundtripTimeoutPolicy_i::TAO_RelativeRoundtripTimeoutPolicy_i ( - PortableServer::POA_ptr poa, - const TimeBase::TimeT& relative_expiry) - : poa_ (PortableServer::POA::_duplicate (poa)), - relative_expiry_ (relative_expiry) -{ -} diff --git a/TAO/tao/ORB.cpp b/TAO/tao/ORB.cpp index bc16fa8385a..add7a4901af 100644 --- a/TAO/tao/ORB.cpp +++ b/TAO/tao/ORB.cpp @@ -44,6 +44,7 @@ #if defined (TAO_HAS_CORBA_MESSAGING) #include "tao/Messaging_Policy_i.h" #include "tao/Client_Priority_Policy.h" +#include "tao/Buffering_Constraint_Policy.h" #endif /* TAO_HAS_CORBA_MESSAGING */ #if defined (ACE_HAS_EXCEPTIONS) @@ -454,7 +455,7 @@ CORBA_ORB::resolve_name_service (ACE_Time_Value *timeout, CORBA_Object_var return_value = CORBA_Object::_nil (); // By now, the table filled in with -ORBInitRef arguments has been - // checked. We only get here if the table didn't contain an initial + // checked. We only get here if the table didn't contain an initial // reference for the Name Service. // Check to see if the user has an environment variable. @@ -504,7 +505,7 @@ CORBA_ORB::resolve_trading_service (ACE_Time_Value *timeout, CORBA_Object_var return_value = CORBA_Object::_nil (); // By now, the table filled in with -ORBInitRef arguments has been - // checked. We only get here if the table didn't contain an initial + // checked. We only get here if the table didn't contain an initial // reference for the Trading Service. // Check to see if the user has an environment variable. @@ -551,7 +552,7 @@ CORBA_ORB::resolve_implrepo_service (ACE_Time_Value *timeout, CORBA_Object_var return_value = CORBA_Object::_nil (); // By now, the table filled in with -ORBInitRef arguments has been - // checked. We only get here if the table didn't contain an initial + // checked. We only get here if the table didn't contain an initial // reference for the Implementation Repository. // Check to see if the user has an environment variable. @@ -976,7 +977,7 @@ CORBA_ORB::check_shutdown (CORBA_Environment &ACE_TRY_ENV) } else { - // If the ORB_Core pointer is zero, assume that the ORB_Core has + // If the ORB_Core pointer is zero, assume that the ORB_Core has // been destroyed. // As defined by the CORBA 2.3 specification, throw a @@ -1043,18 +1044,18 @@ CORBA_ORB::create_dyn_enum (CORBA_TypeCode_ptr tc, #if defined (TAO_HAS_INTERFACE_REPOSITORY) -CORBA_TypeCode_ptr +CORBA_TypeCode_ptr CORBA_ORB::create_interface_tc (const char * id, const char * name, CORBA::Environment &ACE_TRY_ENV) { TAO_OutputCDR cdr; - + // The piece of code that follows has been based on the code in the - // IDL compiler + // IDL compiler cdr << TAO_ENCAP_BYTE_ORDER; // Byte Order - - // Use the overloaded operator from the TAO_Output CDR class + + // Use the overloaded operator from the TAO_Output CDR class cdr << id; // Send the name @@ -1073,22 +1074,22 @@ CORBA_ORB::create_interface_tc (const char * id, return interface_typecode; } -CORBA_TypeCode_ptr +CORBA_TypeCode_ptr CORBA_ORB::create_enum_tc (const char *id, const char *name, CORBA_EnumMemberSeq &members, CORBA::Environment &ACE_TRY_ENV) { TAO_OutputCDR cdr; - + // The piece of code that follows has been based on the code in the - // IDL compiler + // IDL compiler cdr << TAO_ENCAP_BYTE_ORDER; // Byte Order cdr << id; cdr << name; - + CORBA::ULong len = members.length (); cdr << len; @@ -1096,7 +1097,7 @@ CORBA_ORB::create_enum_tc (const char *id, for (CORBA::ULong index = 0; index < len; index++) { cdr << members[index].in (); - } + } CORBA_TypeCode_ptr interface_typecode = CORBA::TypeCode::_nil (); ACE_NEW_THROW_EX (interface_typecode, @@ -1111,29 +1112,29 @@ CORBA_ORB::create_enum_tc (const char *id, return interface_typecode; } -CORBA_TypeCode_ptr +CORBA_TypeCode_ptr CORBA_ORB::create_exception_tc (const char *id, const char *name, CORBA_StructMemberSeq &members, CORBA::Environment &ACE_TRY_ENV) { TAO_OutputCDR cdr; - + // The piece of code that follows has been based on the code in the - // IDL compiler + // IDL compiler cdr << TAO_ENCAP_BYTE_ORDER; // Byte Order cdr << id; cdr << name; - + // Number of members.. CORBA::ULong len = members.length (); cdr << len; for (CORBA::ULong index = 0; index < len; index++) { - // Get the first member which is a string.. + // Get the first member which is a string.. CORBA_StructMember struct_member = members[index]; cdr << struct_member.name.in (); @@ -1153,9 +1154,9 @@ CORBA_ORB::create_exception_tc (const char *id, return interface_typecode; } - -CORBA_TypeCode_ptr + +CORBA_TypeCode_ptr CORBA_ORB::create_alias_tc (const char *id, const char *name, const CORBA::TypeCode_ptr original_type, @@ -1170,9 +1171,9 @@ CORBA_ORB::create_alias_tc (const char *id, cdr << name; cdr << original_type; - + CORBA_TypeCode_ptr interface_typecode = CORBA::TypeCode::_nil (); - + ACE_NEW_THROW_EX (interface_typecode, CORBA_TypeCode (CORBA::tk_alias, cdr.total_length (), @@ -1181,11 +1182,11 @@ CORBA_ORB::create_alias_tc (const char *id, 0), CORBA::NO_MEMORY ()); ACE_CHECK_RETURN (CORBA::TypeCode::_nil ()); - + return interface_typecode; -} +} -CORBA_TypeCode_ptr +CORBA_TypeCode_ptr CORBA_ORB::create_struct_tc (const char *id, const char *name, CORBA_StructMemberSeq &members, @@ -1202,14 +1203,14 @@ CORBA_ORB::create_struct_tc (const char *id, // Number of members.. CORBA::ULong len = members.length (); cdr << len; - + for (CORBA::ULong index = 0; index < len; index++) { - // Get the first member which is a string.. + // Get the first member which is a string.. CORBA_StructMember struct_member = members[index]; - + cdr << struct_member.name.in (); - + cdr << struct_member.type.in (); } @@ -1222,10 +1223,10 @@ CORBA_ORB::create_struct_tc (const char *id, 0), CORBA::NO_MEMORY ()); ACE_CHECK_RETURN (CORBA::TypeCode::_nil ()); - + return interface_typecode; } - + #endif /*TAO_HAS_INTERFACE_REPOSITORY */ #endif /* TAO_HAS_MINIMUM_CORBA */ @@ -1506,7 +1507,7 @@ CORBA::ORB_init (int &argc, } return CORBA::ORB::_duplicate (oc->orb ()); - + } // @@ As part of the ORB re-architecture this will the point where @@ -1721,18 +1722,27 @@ CORBA_ORB::create_policy (CORBA::PolicyType type, switch (type) { + case TAO_MESSAGING_RELATIVE_RT_TIMEOUT_POLICY_TYPE: + return TAO_RelativeRoundtripTimeoutPolicy_i::create (root_poa.in (), + val, + ACE_TRY_ENV); + case TAO_CLIENT_PRIORITY_POLICY_TYPE: return TAO_Client_Priority_Policy::create (root_poa.in (), val, ACE_TRY_ENV); - case TAO_MESSAGING_RELATIVE_RT_TIMEOUT_POLICY_TYPE: - return TAO_RelativeRoundtripTimeoutPolicy_i::create (root_poa.in (), - val, - ACE_TRY_ENV); + case TAO_MESSAGING_SYNC_SCOPE_POLICY_TYPE: + return TAO_Sync_Scope_Policy::create (root_poa.in (), + val, + ACE_TRY_ENV); + + case TAO_BUFFERING_CONSTRAINT_POLICY_TYPE: + return TAO_Buffering_Constraint_Policy::create (root_poa.in (), + val, + ACE_TRY_ENV); case TAO_MESSAGING_REBIND_POLICY_TYPE: - case TAO_MESSAGING_SYNC_SCOPE_POLICY_TYPE: case TAO_MESSAGING_REQUEST_PRIORITY_POLICY_TYPE: case TAO_MESSAGING_REPLY_PRIORITY_POLICY_TYPE: case TAO_MESSAGING_REQUEST_START_TIME_POLICY_TYPE: diff --git a/TAO/tao/ORB_Core.cpp b/TAO/tao/ORB_Core.cpp index 00462f7b7fc..9683ed55d09 100644 --- a/TAO/tao/ORB_Core.cpp +++ b/TAO/tao/ORB_Core.cpp @@ -29,6 +29,8 @@ #include "ace/Arg_Shifter.h" #include "ace/INET_Addr.h" +#include "tao/Sync_Strategies.h" + #if defined(ACE_MVS) #include "ace/Codeset_IBM1047.h" #endif /* ACE_MVS */ @@ -75,9 +77,9 @@ TAO_ORB_Core::TAO_ORB_Core (const char *orbid) use_global_collocation_ (1), collocation_strategy_ (THRU_POA), #if defined (TAO_HAS_CORBA_MESSAGING) - policy_manager_ (), - default_policies_ (), - policy_current_ (), + policy_manager_ (0), + default_policies_ (0), + policy_current_ (0), #endif /* TAO_HAS_CORBA_MESSAGING */ poa_current_ (0), object_adapter_ (0), @@ -100,6 +102,11 @@ TAO_ORB_Core::TAO_ORB_Core (const char *orbid) open_lock_ (), open_called_ (0), priority_mapping_ (0), +#if defined (TAO_HAS_CORBA_MESSAGING) + none_sync_strategy_ (0), + flush_sync_strategy_ (0), +#endif /* TAO_HAS_CORBA_MESSAGING */ + transport_sync_strategy_ (0), svc_config_argc_ (0), svc_config_argv_ (0) { @@ -110,6 +117,29 @@ TAO_ORB_Core::TAO_ORB_Core (const char *orbid) ACE_NEW (this->from_iso8859_, ACE_IBM1047_ISO8859); ACE_NEW (this->to_iso8859_, ACE_IBM1047_ISO8859); #endif /* ACE_MVS */ + +#if defined (TAO_HAS_CORBA_MESSAGING) + + ACE_NEW (this->none_sync_strategy_, + TAO_None_Sync_Strategy); + + ACE_NEW (this->flush_sync_strategy_, + TAO_Flush_Sync_Strategy); + + ACE_NEW (this->policy_manager_, + TAO_Policy_Manager); + + ACE_NEW (this->default_policies_, + TAO_Policy_Manager_Impl); + + ACE_NEW (this->policy_current_, + TAO_Policy_Current); + +#endif /* TAO_HAS_CORBA_MESSAGING */ + + ACE_NEW (this->transport_sync_strategy_, + TAO_Transport_Sync_Strategy); + } TAO_ORB_Core::~TAO_ORB_Core (void) @@ -123,6 +153,19 @@ TAO_ORB_Core::~TAO_ORB_Core (void) delete this->from_iso8859_; delete this->to_iso8859_; +#if defined (TAO_HAS_CORBA_MESSAGING) + + delete this->none_sync_strategy_; + delete this->flush_sync_strategy_; + + delete this->policy_manager_; + delete this->default_policies_; + delete this->policy_current_; + +#endif /* TAO_HAS_CORBA_MESSAGING */ + + delete this->transport_sync_strategy_; + // This is deleted in init() so we should only get here if the // ORB_Core is destroyed prematurely. if (this->svc_config_argv_ != 0) @@ -1658,6 +1701,30 @@ TAO_ORB_Core::open (CORBA::Environment &ACE_TRY_ENV) // **************************************************************** +#if defined (TAO_HAS_CORBA_MESSAGING) + +TAO_None_Sync_Strategy & +TAO_ORB_Core::none_sync_strategy (void) +{ + return *this->none_sync_strategy_; +} + +TAO_Flush_Sync_Strategy & +TAO_ORB_Core::flush_sync_strategy (void) +{ + return *this->flush_sync_strategy_; +} + +#endif /* TAO_HAS_CORBA_MESSAGING */ + +TAO_Transport_Sync_Strategy & +TAO_ORB_Core::transport_sync_strategy (void) +{ + return *this->transport_sync_strategy_; +} + +// **************************************************************** + ACE_Allocator* TAO_ORB_Core::input_cdr_dblock_allocator_i (TAO_ORB_Core_TSS_Resources *tss) { @@ -1916,7 +1983,7 @@ TAO_ORB_Core::default_environment (CORBA_Environment *env) TAO_Policy_Current & TAO_ORB_Core::policy_current (void) { - return this->policy_current_; + return *this->policy_current_; } #endif /* TAO_HAS_CORBA_MESSAGING */ diff --git a/TAO/tao/ORB_Core.h b/TAO/tao/ORB_Core.h index cedf1085336..436ccf40f0b 100644 --- a/TAO/tao/ORB_Core.h +++ b/TAO/tao/ORB_Core.h @@ -53,6 +53,15 @@ class TAO_Reactor_Registry; class TAO_Leader_Follower; class TAO_Priority_Mapping; +#if defined (TAO_HAS_CORBA_MESSAGING) + +class TAO_None_Sync_Strategy; +class TAO_Flush_Sync_Strategy; + +#endif /* TAO_HAS_CORBA_MESSAGING */ + +class TAO_Transport_Sync_Strategy; + // **************************************************************** class TAO_Export TAO_ORB_Core_TSS_Resources @@ -177,7 +186,7 @@ public: const TAO_POA_Policies *policies = 0); // = Collocation strategies. - enum + enum { ORB_CONTROL, // Indicate object should refer to ORB for either // one of the following strategies. @@ -314,15 +323,31 @@ public: // type. // If there is no default policy it returns CORBA::Policy::_nil () - POA_Messaging::RelativeRoundtripTimeoutPolicy* - default_relative_roundtrip_timeout (void) const; + POA_Messaging::RelativeRoundtripTimeoutPolicy *default_relative_roundtrip_timeout (void) const; - POA_TAO::ClientPriorityPolicy* - default_client_priority (void) const; + POA_TAO::ClientPriorityPolicy *default_client_priority (void) const; + + POA_Messaging::SyncScopePolicy *default_sync_scope (void) const; + + POA_TAO::BufferingConstraintPolicy *default_buffering_constraint (void) const; #endif /* TAO_HAS_CORBA_MESSAGING */ +#if defined (TAO_HAS_CORBA_MESSAGING) + + TAO_None_Sync_Strategy &none_sync_strategy (void); + // This strategy will buffer messages. + + TAO_Flush_Sync_Strategy &flush_sync_strategy (void); + // This strategy will flush any buffered messages. + +#endif /* TAO_HAS_CORBA_MESSAGING */ + + TAO_Transport_Sync_Strategy &transport_sync_strategy (void); + // This strategy will sync with the transport. + #if defined (TAO_HAS_RT_CORBA) + TAO_Priority_Mapping *priority_mapping (void); // Access the priority mapping class, this is a TAO extension but // there is no standard way to get to it either. @@ -495,13 +520,13 @@ protected: // Default collocation policy. This should never be ORB_CONTROL. #if defined (TAO_HAS_CORBA_MESSAGING) - TAO_Policy_Manager policy_manager_; + TAO_Policy_Manager *policy_manager_; // The Policy_Manager for this ORB. - TAO_Policy_Manager_Impl default_policies_; + TAO_Policy_Manager_Impl *default_policies_; // The default policies. - TAO_Policy_Current policy_current_; + TAO_Policy_Current *policy_current_; // Policy current. #endif /* TAO_HAS_CORBA_MESSAGING */ @@ -560,6 +585,19 @@ protected: TAO_Priority_Mapping *priority_mapping_; // The priority mapping. +#if defined (TAO_HAS_CORBA_MESSAGING) + + TAO_None_Sync_Strategy *none_sync_strategy_; + // This strategy will buffer messages. + + TAO_Flush_Sync_Strategy *flush_sync_strategy_; + // This strategy will flush any buffered messages. + +#endif /* TAO_HAS_CORBA_MESSAGING */ + + TAO_Transport_Sync_Strategy *transport_sync_strategy_; + // This strategy will sync with the transport. + int svc_config_argc_; // The number of arguments in the service configurator argument vector. diff --git a/TAO/tao/ORB_Core.i b/TAO/tao/ORB_Core.i index 78497b4a18b..09896f4eab3 100644 --- a/TAO/tao/ORB_Core.i +++ b/TAO/tao/ORB_Core.i @@ -115,10 +115,10 @@ TAO_ORB_Core::to_unicode (void) const } #if defined (TAO_HAS_CORBA_MESSAGING) -ACE_INLINE TAO_Policy_Manager* +ACE_INLINE TAO_Policy_Manager * TAO_ORB_Core::policy_manager (void) { - return &this->policy_manager_; + return this->policy_manager_; } ACE_INLINE CORBA::Policy_ptr @@ -126,19 +126,31 @@ TAO_ORB_Core::get_default_policy ( CORBA::PolicyType policy, CORBA::Environment &ACE_TRY_ENV) { - return this->default_policies_.get_policy (policy, ACE_TRY_ENV); + return this->default_policies_->get_policy (policy, ACE_TRY_ENV); } -ACE_INLINE POA_TAO::ClientPriorityPolicy* +ACE_INLINE POA_Messaging::RelativeRoundtripTimeoutPolicy * +TAO_ORB_Core::default_relative_roundtrip_timeout (void) const +{ + return this->default_policies_->relative_roundtrip_timeout (); +} + +ACE_INLINE POA_TAO::ClientPriorityPolicy * TAO_ORB_Core::default_client_priority (void) const { - return this->default_policies_.client_priority (); + return this->default_policies_->client_priority (); } -ACE_INLINE POA_Messaging::RelativeRoundtripTimeoutPolicy* -TAO_ORB_Core::default_relative_roundtrip_timeout (void) const +ACE_INLINE POA_Messaging::SyncScopePolicy * +TAO_ORB_Core::default_sync_scope (void) const +{ + return this->default_policies_->sync_scope (); +} + +ACE_INLINE POA_TAO::BufferingConstraintPolicy * +TAO_ORB_Core::default_buffering_constraint (void) const { - return this->default_policies_.relative_roundtrip_timeout (); + return this->default_policies_->buffering_constraint (); } #endif /* TAO_HAS_CORBA_MESSAGING */ diff --git a/TAO/tao/Pluggable.cpp b/TAO/tao/Pluggable.cpp index 442f46efcac..f6b969558ac 100644 --- a/TAO/tao/Pluggable.cpp +++ b/TAO/tao/Pluggable.cpp @@ -26,7 +26,8 @@ ACE_RCSID(tao, Pluggable, "$Id$") TAO_Transport::TAO_Transport (CORBA::ULong tag, TAO_ORB_Core *orb_core) : tag_ (tag), - orb_core_ (orb_core) + orb_core_ (orb_core), + buffering_queue_ (0) { TAO_Client_Strategy_Factory *cf = this->orb_core_->client_factory (); @@ -42,8 +43,34 @@ TAO_Transport::~TAO_Transport (void) { delete this->ws_; this->ws_ = 0; + delete this->tms_; this->tms_ = 0; + + delete this->buffering_queue_; +} + +void +TAO_Transport::flush_buffered_messages (void) +{ + // If we have a buffering queue. + if (this->buffering_queue_) + { + // Flush all queued messages. + while (!this->buffering_queue_->is_empty ()) + { + // Get the first message from the queue. + ACE_Message_Block *queued_message = 0; + this->buffering_queue_->dequeue_head (queued_message); + + // Actual network send. Cannot deal with errors, and + // therefore they are ignored. + this->send (queued_message); + + // Release the memory. + queued_message->release (); + } + } } // Read and handle the reply. Returns 0 when there is Short Read on @@ -109,6 +136,19 @@ TAO_Transport::start_locate (TAO_ORB_Core *, ACE_THROW (CORBA::INTERNAL ()); } +TAO_Transport_Buffering_Queue & +TAO_Transport::buffering_queue (void) +{ + if (this->buffering_queue_ == 0) + { + // Infinite high water mark: ACE_UINT32_MAX. + this->buffering_queue_ = + new TAO_Transport_Buffering_Queue (ACE_UINT32_MAX); + } + + return *this->buffering_queue_; +} + // ********************************************************************* // Connector diff --git a/TAO/tao/Pluggable.h b/TAO/tao/Pluggable.h index e16007501b5..d4aab95e8f0 100644 --- a/TAO/tao/Pluggable.h +++ b/TAO/tao/Pluggable.h @@ -26,6 +26,7 @@ # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ +#include "ace/Message_Queue.h" #include "tao/Sequence.h" #include "tao/Typecode.h" #include "tao/IOPC.h" @@ -44,6 +45,8 @@ class TAO_Reply_Dispatcher; class TAO_Transport_Mux_Strategy; class TAO_Wait_Strategy; +typedef ACE_Message_Queue<ACE_NULL_SYNCH> TAO_Transport_Buffering_Queue; + class TAO_Export TAO_Transport { // = TITLE @@ -75,6 +78,9 @@ public: // This method provides a way to gain access to the underlying // file handle used by the reactor. + virtual ssize_t send (TAO_Stub *stub, + const ACE_Message_Block *mblk, + ACE_Time_Value *s = 0) = 0; virtual ssize_t send (const ACE_Message_Block *mblk, ACE_Time_Value *s = 0) = 0; // Write the complete Message_Block chain to the connection. @@ -112,7 +118,8 @@ public: ACE_THROW_SPEC ((CORBA::SystemException)); // Fill into <output> the right headers to make a locate request. - virtual int send_request (TAO_ORB_Core *orb_core, + virtual int send_request (TAO_Stub *stub, + TAO_ORB_Core *orb_core, TAO_OutputCDR &stream, int twoway, ACE_Time_Value *max_time_wait) = 0; @@ -156,6 +163,12 @@ public: // Wait Strategy. Muxed Leader Follower implementation returns a // valid condition variable, others return 0. + virtual TAO_Transport_Buffering_Queue &buffering_queue (void); + // Queue for buffering transport messages. + + void flush_buffered_messages (void); + // Flush any messages that have been buffered. + protected: CORBA::ULong tag_; // IOP protocol tag. @@ -169,6 +182,9 @@ protected: TAO_Wait_Strategy *ws_; // Strategy for waiting for the reply after sending the request. + + TAO_Transport_Buffering_Queue *buffering_queue_; + // Queue for buffering transport messages. }; // **************************************************************** diff --git a/TAO/tao/Policy_Manager.cpp b/TAO/tao/Policy_Manager.cpp index 33e7f6b6dae..5c8c417c6df 100644 --- a/TAO/tao/Policy_Manager.cpp +++ b/TAO/tao/Policy_Manager.cpp @@ -1,10 +1,9 @@ // $Id$ -#include "tao/orbconf.h" +#include "tao/Policy_Manager.h" #if defined (TAO_HAS_CORBA_MESSAGING) -#include "tao/Policy_Manager.h" #include "tao/Environment.h" #include "tao/ORB_Core.h" @@ -30,7 +29,7 @@ TAO_Policy_Manager_Impl::~TAO_Policy_Manager_Impl (void) } void -TAO_Policy_Manager_Impl::copy_from (TAO_Policy_Manager_Impl* source, +TAO_Policy_Manager_Impl::copy_from (TAO_Policy_Manager_Impl *source, CORBA::Environment &ACE_TRY_ENV) { if (source == 0) @@ -45,13 +44,13 @@ TAO_Policy_Manager_Impl::copy_from (TAO_Policy_Manager_Impl* source, source->relative_roundtrip_timeout_->copy (ACE_TRY_ENV); ACE_CHECK; - TAO_ServantBase* servant = copy->_servant (); + TAO_ServantBase *servant = copy->_servant (); if (servant == 0) ACE_THROW (CORBA::INTERNAL ()); POA_Messaging::RelativeRoundtripTimeoutPolicy *tmp = - ACE_static_cast(POA_Messaging::RelativeRoundtripTimeoutPolicy*, - servant->_downcast ("IDL:Messaging/RelativeRoundtripTimeoutPolicy:1.0")); + ACE_static_cast (POA_Messaging::RelativeRoundtripTimeoutPolicy *, + servant->_downcast ("IDL:Messaging/RelativeRoundtripTimeoutPolicy:1.0")); if (tmp == 0) ACE_THROW (CORBA::INTERNAL ()); @@ -61,6 +60,72 @@ TAO_Policy_Manager_Impl::copy_from (TAO_Policy_Manager_Impl* source, this->count_++; } + if (source->client_priority_ != 0) + { + CORBA::Policy_var copy = + source->client_priority_->copy (ACE_TRY_ENV); + ACE_CHECK; + + TAO_ServantBase *servant = copy->_servant (); + if (servant == 0) + ACE_THROW (CORBA::INTERNAL ()); + + POA_TAO::ClientPriorityPolicy *tmp = + ACE_static_cast (POA_TAO::ClientPriorityPolicy *, + servant->_downcast ("IDL:TAO/ClientPriorityPolicy:1.0")); + if (tmp == 0) + ACE_THROW (CORBA::INTERNAL ()); + + this->client_priority_ = tmp; + this->client_priority_->_add_ref (ACE_TRY_ENV); + ACE_CHECK; + this->count_++; + } + + if (source->sync_scope_ != 0) + { + CORBA::Policy_var copy = + source->sync_scope_->copy (ACE_TRY_ENV); + ACE_CHECK; + + TAO_ServantBase *servant = copy->_servant (); + if (servant == 0) + ACE_THROW (CORBA::INTERNAL ()); + + POA_Messaging::SyncScopePolicy *tmp = + ACE_static_cast (POA_Messaging::SyncScopePolicy *, + servant->_downcast ("IDL:Messaging/SyncScopePolicy:1.0")); + if (tmp == 0) + ACE_THROW (CORBA::INTERNAL ()); + + this->sync_scope_ = tmp; + this->sync_scope_->_add_ref (ACE_TRY_ENV); + ACE_CHECK; + this->count_++; + } + + if (source->buffering_constraint_ != 0) + { + CORBA::Policy_var copy = + source->buffering_constraint_->copy (ACE_TRY_ENV); + ACE_CHECK; + + TAO_ServantBase *servant = copy->_servant (); + if (servant == 0) + ACE_THROW (CORBA::INTERNAL ()); + + POA_TAO::BufferingConstraintPolicy *tmp = + ACE_static_cast (POA_TAO::BufferingConstraintPolicy *, + servant->_downcast ("IDL:TAO/BufferingConstraintPolicy:1.0")); + if (tmp == 0) + ACE_THROW (CORBA::INTERNAL ()); + + this->buffering_constraint_ = tmp; + this->buffering_constraint_->_add_ref (ACE_TRY_ENV); + ACE_CHECK; + this->count_++; + } + for (CORBA::ULong i = 0; i < source->other_policies_.length (); ++i) { CORBA::Policy_ptr policy = source->other_policies_[i]; @@ -87,6 +152,7 @@ TAO_Policy_Manager_Impl::cleanup_i (CORBA::Environment &ACE_TRY_ENV) this->other_policies_[i] = CORBA::Policy::_nil (); } this->other_policies_.length (0); + if (this->relative_roundtrip_timeout_ != 0) { this->relative_roundtrip_timeout_->destroy (ACE_TRY_ENV); @@ -95,6 +161,7 @@ TAO_Policy_Manager_Impl::cleanup_i (CORBA::Environment &ACE_TRY_ENV) ACE_CHECK; this->relative_roundtrip_timeout_ = 0; } + if (this->client_priority_ != 0) { this->client_priority_->destroy (ACE_TRY_ENV); @@ -104,6 +171,26 @@ TAO_Policy_Manager_Impl::cleanup_i (CORBA::Environment &ACE_TRY_ENV) this->client_priority_ = 0; } + + if (this->sync_scope_ != 0) + { + this->sync_scope_->destroy (ACE_TRY_ENV); + ACE_CHECK; + this->sync_scope_->_remove_ref (ACE_TRY_ENV); + ACE_CHECK; + this->sync_scope_ = 0; + } + + if (this->buffering_constraint_ != 0) + { + this->buffering_constraint_->destroy (ACE_TRY_ENV); + ACE_CHECK; + this->buffering_constraint_->_remove_ref (ACE_TRY_ENV); + ACE_CHECK; + + this->buffering_constraint_ = 0; + } + this->count_ = 0; } @@ -136,6 +223,38 @@ TAO_Policy_Manager_Impl::set_policy_overrides ( switch (slot) { + case TAO_MESSAGING_RELATIVE_RT_TIMEOUT_POLICY_TYPE: + { + CORBA::Policy_var copy = policy->copy (ACE_TRY_ENV); + ACE_CHECK; + + TAO_ServantBase* servant = copy->_servant (); + if (servant == 0) + ACE_THROW (CORBA::INTERNAL ()); + + POA_Messaging::RelativeRoundtripTimeoutPolicy *tmp = + ACE_static_cast(POA_Messaging::RelativeRoundtripTimeoutPolicy*, + servant->_downcast ("IDL:Messaging/RelativeRoundtripTimeoutPolicy:1.0")); + if (tmp == 0) + ACE_THROW (CORBA::INTERNAL ()); + + if (this->relative_roundtrip_timeout_ != 0) + { + this->relative_roundtrip_timeout_->destroy (ACE_TRY_ENV); + ACE_CHECK; + + this->relative_roundtrip_timeout_->_remove_ref + (ACE_TRY_ENV); + ACE_CHECK; + } + this->relative_roundtrip_timeout_ = tmp; + tmp->_add_ref (ACE_TRY_ENV); + ACE_CHECK; + + this->count_++; + } + break; + case TAO_CLIENT_PRIORITY_POLICY_TYPE: { CORBA::Policy_var copy = policy->copy (ACE_TRY_ENV); @@ -168,7 +287,7 @@ TAO_Policy_Manager_Impl::set_policy_overrides ( } break; - case TAO_MESSAGING_RELATIVE_RT_TIMEOUT_POLICY_TYPE: + case TAO_MESSAGING_SYNC_SCOPE_POLICY_TYPE: { CORBA::Policy_var copy = policy->copy (ACE_TRY_ENV); ACE_CHECK; @@ -177,22 +296,54 @@ TAO_Policy_Manager_Impl::set_policy_overrides ( if (servant == 0) ACE_THROW (CORBA::INTERNAL ()); - POA_Messaging::RelativeRoundtripTimeoutPolicy *tmp = - ACE_static_cast(POA_Messaging::RelativeRoundtripTimeoutPolicy*, - servant->_downcast ("IDL:Messaging/RelativeRoundtripTimeoutPolicy:1.0")); + POA_Messaging::SyncScopePolicy *tmp = + ACE_static_cast(POA_Messaging::SyncScopePolicy*, + servant->_downcast ("IDL:Messaging/SyncScopePolicy:1.0")); if (tmp == 0) ACE_THROW (CORBA::INTERNAL ()); - if (this->relative_roundtrip_timeout_ != 0) + if (this->sync_scope_ != 0) { - this->relative_roundtrip_timeout_->destroy (ACE_TRY_ENV); + this->sync_scope_->destroy (ACE_TRY_ENV); ACE_CHECK; - this->relative_roundtrip_timeout_->_remove_ref + this->sync_scope_->_remove_ref (ACE_TRY_ENV); ACE_CHECK; } - this->relative_roundtrip_timeout_ = tmp; + this->sync_scope_ = tmp; + tmp->_add_ref (ACE_TRY_ENV); + ACE_CHECK; + + this->count_++; + } + break; + + case TAO_BUFFERING_CONSTRAINT_POLICY_TYPE: + { + CORBA::Policy_var copy = policy->copy (ACE_TRY_ENV); + ACE_CHECK; + + TAO_ServantBase* servant = copy->_servant (); + if (servant == 0) + ACE_THROW (CORBA::INTERNAL ()); + + POA_TAO::BufferingConstraintPolicy *tmp = + ACE_static_cast(POA_TAO::BufferingConstraintPolicy*, + servant->_downcast ("IDL:TAO/BufferingConstraintPolicy:1.0")); + if (tmp == 0) + ACE_THROW (CORBA::INTERNAL ()); + + if (this->buffering_constraint_ != 0) + { + this->buffering_constraint_->destroy (ACE_TRY_ENV); + ACE_CHECK; + + this->buffering_constraint_->_remove_ref + (ACE_TRY_ENV); + ACE_CHECK; + } + this->buffering_constraint_ = tmp; tmp->_add_ref (ACE_TRY_ENV); ACE_CHECK; @@ -201,7 +352,6 @@ TAO_Policy_Manager_Impl::set_policy_overrides ( break; case TAO_MESSAGING_REBIND_POLICY_TYPE: - case TAO_MESSAGING_SYNC_SCOPE_POLICY_TYPE: case TAO_MESSAGING_REQUEST_PRIORITY_POLICY_TYPE: case TAO_MESSAGING_REPLY_PRIORITY_POLICY_TYPE: case TAO_MESSAGING_REQUEST_START_TIME_POLICY_TYPE: @@ -264,6 +414,13 @@ TAO_Policy_Manager_Impl::get_policy_overrides ( CORBA::ULong n = 0; if (types_length == 0) { + if (this->relative_roundtrip_timeout_ != 0) + { + policy_list[n++] = + relative_roundtrip_timeout_->_this (ACE_TRY_ENV); + ACE_CHECK_RETURN (0); + } + if (this->client_priority_ != 0) { policy_list[n++] = @@ -271,12 +428,20 @@ TAO_Policy_Manager_Impl::get_policy_overrides ( ACE_CHECK_RETURN (0); } - if (this->relative_roundtrip_timeout_ != 0) + if (this->sync_scope_ != 0) { policy_list[n++] = - relative_roundtrip_timeout_->_this (ACE_TRY_ENV); + sync_scope_->_this (ACE_TRY_ENV); + ACE_CHECK_RETURN (0); + } + + if (this->buffering_constraint_ != 0) + { + policy_list[n++] = + buffering_constraint_->_this (ACE_TRY_ENV); ACE_CHECK_RETURN (0); } + CORBA::ULong length = this->other_policies_.length (); for (CORBA::ULong i = 0; i != length; ++i) { @@ -294,6 +459,15 @@ TAO_Policy_Manager_Impl::get_policy_overrides ( switch (slot) { + case TAO_MESSAGING_RELATIVE_RT_TIMEOUT_POLICY_TYPE: + if (this->relative_roundtrip_timeout_ != 0) + { + policy_list[n++] = + relative_roundtrip_timeout_->_this (ACE_TRY_ENV); + ACE_CHECK_RETURN (0); + } + break; + case TAO_CLIENT_PRIORITY_POLICY_TYPE: if (this->client_priority_ != 0) { @@ -303,17 +477,25 @@ TAO_Policy_Manager_Impl::get_policy_overrides ( } break; - case TAO_MESSAGING_RELATIVE_RT_TIMEOUT_POLICY_TYPE: - if (this->relative_roundtrip_timeout_ != 0) + case TAO_MESSAGING_SYNC_SCOPE_POLICY_TYPE: + if (this->sync_scope_ != 0) { policy_list[n++] = - relative_roundtrip_timeout_->_this (ACE_TRY_ENV); + sync_scope_->_this (ACE_TRY_ENV); + ACE_CHECK_RETURN (0); + } + break; + + case TAO_BUFFERING_CONSTRAINT_POLICY_TYPE: + if (this->buffering_constraint_ != 0) + { + policy_list[n++] = + buffering_constraint_->_this (ACE_TRY_ENV); ACE_CHECK_RETURN (0); } break; case TAO_MESSAGING_REBIND_POLICY_TYPE: - case TAO_MESSAGING_SYNC_SCOPE_POLICY_TYPE: case TAO_MESSAGING_REQUEST_PRIORITY_POLICY_TYPE: case TAO_MESSAGING_REPLY_PRIORITY_POLICY_TYPE: case TAO_MESSAGING_REQUEST_START_TIME_POLICY_TYPE: @@ -357,6 +539,13 @@ TAO_Policy_Manager_Impl::get_policy (CORBA::PolicyType type, { switch (type) { + case TAO_MESSAGING_RELATIVE_RT_TIMEOUT_POLICY_TYPE: + if (this->relative_roundtrip_timeout_ != 0) + { + return this->relative_roundtrip_timeout_->_this (ACE_TRY_ENV); + } + return CORBA::Policy::_nil (); + case TAO_CLIENT_PRIORITY_POLICY_TYPE: if (this->client_priority_ != 0) { @@ -364,15 +553,21 @@ TAO_Policy_Manager_Impl::get_policy (CORBA::PolicyType type, } return CORBA::Policy::_nil (); - case TAO_MESSAGING_RELATIVE_RT_TIMEOUT_POLICY_TYPE: - if (this->relative_roundtrip_timeout_ != 0) + case TAO_MESSAGING_SYNC_SCOPE_POLICY_TYPE: + if (this->sync_scope_ != 0) { - return this->relative_roundtrip_timeout_->_this (ACE_TRY_ENV); + return this->sync_scope_->_this (ACE_TRY_ENV); + } + return CORBA::Policy::_nil (); + + case TAO_BUFFERING_CONSTRAINT_POLICY_TYPE: + if (this->buffering_constraint_ != 0) + { + return this->buffering_constraint_->_this (ACE_TRY_ENV); } return CORBA::Policy::_nil (); case TAO_MESSAGING_REBIND_POLICY_TYPE: - case TAO_MESSAGING_SYNC_SCOPE_POLICY_TYPE: case TAO_MESSAGING_REQUEST_PRIORITY_POLICY_TYPE: case TAO_MESSAGING_REPLY_PRIORITY_POLICY_TYPE: case TAO_MESSAGING_REQUEST_START_TIME_POLICY_TYPE: diff --git a/TAO/tao/Policy_Manager.h b/TAO/tao/Policy_Manager.h index 5b447fd9c71..ce3813a0183 100644 --- a/TAO/tao/Policy_Manager.h +++ b/TAO/tao/Policy_Manager.h @@ -83,11 +83,13 @@ public: // = Direct accesors to the policy implementations, for speedy // lookups. - POA_Messaging::RelativeRoundtripTimeoutPolicy* - relative_roundtrip_timeout (void) const; + POA_Messaging::RelativeRoundtripTimeoutPolicy *relative_roundtrip_timeout (void) const; - POA_TAO::ClientPriorityPolicy* - client_priority (void) const; + POA_TAO::ClientPriorityPolicy *client_priority (void) const; + + POA_Messaging::SyncScopePolicy *sync_scope (void) const; + + POA_TAO::BufferingConstraintPolicy *buffering_constraint (void) const; private: ACE_UNIMPLEMENTED_FUNC (TAO_Policy_Manager_Impl operator=(const TAO_Policy_Manager_Impl&)) @@ -105,6 +107,10 @@ private: POA_TAO::ClientPriorityPolicy *client_priority_; + POA_Messaging::SyncScopePolicy *sync_scope_; + + POA_TAO::BufferingConstraintPolicy *buffering_constraint_; + CORBA::PolicyList other_policies_; // Other policies that are not optimized for fast querying @@ -140,11 +146,13 @@ public: CORBA::Environment &ACE_TRY_ENV = CORBA::Environment::default_environment () ); - POA_Messaging::RelativeRoundtripTimeoutPolicy* - relative_roundtrip_timeout (void) const; + POA_Messaging::RelativeRoundtripTimeoutPolicy *relative_roundtrip_timeout (void) const; + + POA_TAO::ClientPriorityPolicy *client_priority (void) const; - POA_TAO::ClientPriorityPolicy* - client_priority (void) const; + POA_Messaging::SyncScopePolicy *sync_scope (void) const; + + POA_TAO::BufferingConstraintPolicy *buffering_constraint (void) const; private: TAO_Policy_Manager_Impl impl_; @@ -176,11 +184,13 @@ public: CORBA::Environment &ACE_TRY_ENV = CORBA::Environment::default_environment () ); - POA_Messaging::RelativeRoundtripTimeoutPolicy* - relative_roundtrip_timeout (void) const; + POA_Messaging::RelativeRoundtripTimeoutPolicy *relative_roundtrip_timeout (void) const; + + POA_TAO::ClientPriorityPolicy *client_priority (void) const; + + POA_Messaging::SyncScopePolicy *sync_scope (void) const; - POA_TAO::ClientPriorityPolicy* - client_priority (void) const; + POA_TAO::BufferingConstraintPolicy *buffering_constraint (void) const; private: TAO_Policy_Manager_Impl manager_impl_; @@ -215,11 +225,13 @@ public: CORBA::Environment &ACE_TRY_ENV = CORBA::Environment::default_environment () ); - POA_Messaging::RelativeRoundtripTimeoutPolicy* - relative_roundtrip_timeout (void) const; + POA_Messaging::RelativeRoundtripTimeoutPolicy *relative_roundtrip_timeout (void) const; + + POA_TAO::ClientPriorityPolicy *client_priority (void) const; + + POA_Messaging::SyncScopePolicy *sync_scope (void) const; - POA_TAO::ClientPriorityPolicy* - client_priority (void) const; + POA_TAO::BufferingConstraintPolicy *buffering_constraint (void) const; // = Set and get the implementation. TAO_Policy_Current_Impl &implementation (void) const; diff --git a/TAO/tao/Policy_Manager.i b/TAO/tao/Policy_Manager.i index 7ec6a6bc9e5..47839c9d743 100644 --- a/TAO/tao/Policy_Manager.i +++ b/TAO/tao/Policy_Manager.i @@ -4,22 +4,36 @@ ACE_INLINE TAO_Policy_Manager_Impl::TAO_Policy_Manager_Impl (void) : relative_roundtrip_timeout_ (0), client_priority_ (0), + sync_scope_ (0), + buffering_constraint_ (0), count_ (0) { } -ACE_INLINE POA_Messaging::RelativeRoundtripTimeoutPolicy* +ACE_INLINE POA_Messaging::RelativeRoundtripTimeoutPolicy * TAO_Policy_Manager_Impl::relative_roundtrip_timeout (void) const { return this->relative_roundtrip_timeout_; } -ACE_INLINE POA_TAO::ClientPriorityPolicy* +ACE_INLINE POA_TAO::ClientPriorityPolicy * TAO_Policy_Manager_Impl::client_priority (void) const { return this->client_priority_; } +ACE_INLINE POA_Messaging::SyncScopePolicy * +TAO_Policy_Manager_Impl::sync_scope (void) const +{ + return this->sync_scope_; +} + +ACE_INLINE POA_TAO::BufferingConstraintPolicy * +TAO_Policy_Manager_Impl::buffering_constraint (void) const +{ + return this->buffering_constraint_; +} + // **************************************************************** ACE_INLINE @@ -52,18 +66,30 @@ TAO_Policy_Manager::set_policy_overrides ( this->impl_.set_policy_overrides (policies, set_add, ACE_TRY_ENV); } -ACE_INLINE POA_Messaging::RelativeRoundtripTimeoutPolicy* +ACE_INLINE POA_Messaging::RelativeRoundtripTimeoutPolicy * TAO_Policy_Manager::relative_roundtrip_timeout (void) const { return this->impl_.relative_roundtrip_timeout (); } -ACE_INLINE POA_TAO::ClientPriorityPolicy* +ACE_INLINE POA_TAO::ClientPriorityPolicy * TAO_Policy_Manager::client_priority (void) const { return this->impl_.client_priority (); } +ACE_INLINE POA_Messaging::SyncScopePolicy * +TAO_Policy_Manager::sync_scope (void) const +{ + return this->impl_.sync_scope (); +} + +ACE_INLINE POA_TAO::BufferingConstraintPolicy * +TAO_Policy_Manager::buffering_constraint (void) const +{ + return this->impl_.buffering_constraint (); +} + // **************************************************************** ACE_INLINE @@ -96,17 +122,30 @@ TAO_Policy_Current_Impl::set_policy_overrides ( this->manager_impl_.set_policy_overrides (policies, set_add, ACE_TRY_ENV); } -ACE_INLINE POA_Messaging::RelativeRoundtripTimeoutPolicy* +ACE_INLINE POA_Messaging::RelativeRoundtripTimeoutPolicy * TAO_Policy_Current_Impl::relative_roundtrip_timeout (void) const { return this->manager_impl_.relative_roundtrip_timeout (); } -ACE_INLINE POA_TAO::ClientPriorityPolicy* +ACE_INLINE POA_TAO::ClientPriorityPolicy * TAO_Policy_Current_Impl::client_priority (void) const { return this->manager_impl_.client_priority (); } + +ACE_INLINE POA_Messaging::SyncScopePolicy * +TAO_Policy_Current_Impl::sync_scope (void) const +{ + return this->manager_impl_.sync_scope (); +} + +ACE_INLINE POA_TAO::BufferingConstraintPolicy * +TAO_Policy_Current_Impl::buffering_constraint (void) const +{ + return this->manager_impl_.buffering_constraint (); +} + // **************************************************************** ACE_INLINE CORBA::Policy_ptr @@ -140,7 +179,7 @@ TAO_Policy_Current::set_policy_overrides ( impl.set_policy_overrides (policies, set_add, ACE_TRY_ENV); } -ACE_INLINE POA_Messaging::RelativeRoundtripTimeoutPolicy* +ACE_INLINE POA_Messaging::RelativeRoundtripTimeoutPolicy * TAO_Policy_Current::relative_roundtrip_timeout (void) const { TAO_Policy_Current_Impl &impl = this->implementation (); @@ -148,10 +187,26 @@ TAO_Policy_Current::relative_roundtrip_timeout (void) const return impl.relative_roundtrip_timeout (); } -ACE_INLINE POA_TAO::ClientPriorityPolicy* +ACE_INLINE POA_TAO::ClientPriorityPolicy * TAO_Policy_Current::client_priority (void) const { TAO_Policy_Current_Impl &impl = this->implementation (); return impl.client_priority (); } + +ACE_INLINE POA_Messaging::SyncScopePolicy * +TAO_Policy_Current::sync_scope (void) const +{ + TAO_Policy_Current_Impl &impl = this->implementation (); + + return impl.sync_scope (); +} + +ACE_INLINE POA_TAO::BufferingConstraintPolicy * +TAO_Policy_Current::buffering_constraint (void) const +{ + TAO_Policy_Current_Impl &impl = this->implementation (); + + return impl.buffering_constraint (); +} diff --git a/TAO/tao/Stub.cpp b/TAO/tao/Stub.cpp index 2a98b5bae79..aae425791e9 100644 --- a/TAO/tao/Stub.cpp +++ b/TAO/tao/Stub.cpp @@ -20,6 +20,7 @@ #include "tao/ORB_Core.h" #include "tao/Client_Strategy_Factory.h" #include "tao/debug.h" +#include "tao/Sync_Strategies.h" #include "ace/Auto_Ptr.h" #if !defined (__ACE_INLINE__) @@ -841,13 +842,48 @@ TAO_Stub::get_client_policy (CORBA::PolicyType type, return result._retn (); } -POA_TAO::ClientPriorityPolicy* -TAO_Stub::client_priority (void) +POA_Messaging::RelativeRoundtripTimeoutPolicy * +TAO_Stub::relative_roundtrip_timeout (void) { + POA_Messaging::RelativeRoundtripTimeoutPolicy *result = 0; + // No need to lock, the stub only changes its policies at // construction time... + if (this->policies_ != 0) + result = this->policies_->relative_roundtrip_timeout (); + + // No need to lock, the object is in TSS storage.... + if (result == 0) + { + TAO_Policy_Current &policy_current = + this->orb_core_->policy_current (); + result = policy_current.relative_roundtrip_timeout (); + } + + // @@ Must lock, but is is harder to implement than just modifying + // this call: the ORB does take a lock to modify the policy + // manager + if (result == 0) + { + TAO_Policy_Manager *policy_manager = + this->orb_core_->policy_manager (); + if (policy_manager != 0) + result = policy_manager->relative_roundtrip_timeout (); + } + + if (result == 0) + result = this->orb_core_->default_relative_roundtrip_timeout (); - POA_TAO::ClientPriorityPolicy* result = 0; + return result; +} + +POA_TAO::ClientPriorityPolicy * +TAO_Stub::client_priority (void) +{ + POA_TAO::ClientPriorityPolicy *result = 0; + + // No need to lock, the stub only changes its policies at + // construction time... if (this->policies_ != 0) result = this->policies_->client_priority (); @@ -876,22 +912,57 @@ TAO_Stub::client_priority (void) return result; } -POA_Messaging::RelativeRoundtripTimeoutPolicy* -TAO_Stub::relative_roundtrip_timeout (void) +POA_Messaging::SyncScopePolicy * +TAO_Stub::sync_scope (void) { + POA_Messaging::SyncScopePolicy *result = 0; + // No need to lock, the stub only changes its policies at // construction time... + if (this->policies_ != 0) + result = this->policies_->sync_scope (); - POA_Messaging::RelativeRoundtripTimeoutPolicy* result = 0; + // No need to lock, the object is in TSS storage.... + if (result == 0) + { + TAO_Policy_Current &policy_current = + this->orb_core_->policy_current (); + result = policy_current.sync_scope (); + } + + // @@ Must lock, but is is harder to implement than just modifying + // this call: the ORB does take a lock to modify the policy + // manager + if (result == 0) + { + TAO_Policy_Manager *policy_manager = + this->orb_core_->policy_manager (); + if (policy_manager != 0) + result = policy_manager->sync_scope (); + } + + if (result == 0) + result = this->orb_core_->default_sync_scope (); + + return result; +} + +POA_TAO::BufferingConstraintPolicy * +TAO_Stub::buffering_constraint (void) +{ + POA_TAO::BufferingConstraintPolicy *result = 0; + + // No need to lock, the stub only changes its policies at + // construction time... if (this->policies_ != 0) - result = this->policies_->relative_roundtrip_timeout (); + result = this->policies_->buffering_constraint (); // No need to lock, the object is in TSS storage.... if (result == 0) { TAO_Policy_Current &policy_current = this->orb_core_->policy_current (); - result = policy_current.relative_roundtrip_timeout (); + result = policy_current.buffering_constraint (); } // @@ Must lock, but is is harder to implement than just modifying @@ -902,16 +973,16 @@ TAO_Stub::relative_roundtrip_timeout (void) TAO_Policy_Manager *policy_manager = this->orb_core_->policy_manager (); if (policy_manager != 0) - result = policy_manager->relative_roundtrip_timeout (); + result = policy_manager->buffering_constraint (); } if (result == 0) - result = this->orb_core_->default_relative_roundtrip_timeout (); + result = this->orb_core_->default_buffering_constraint (); return result; } -TAO_Stub* +TAO_Stub * TAO_Stub::set_policy_overrides ( const CORBA::PolicyList & policies, CORBA::SetOverrideType set_add, @@ -1038,6 +1109,36 @@ TAO_Stub::validate_connection (CORBA::PolicyList_out inconsistent_policies, #endif /* TAO_HAS_CORBA_MESSAGING */ +TAO_Sync_Strategy & +TAO_Stub::sync_strategy (void) +{ + +#if defined (TAO_HAS_CORBA_MESSAGING) + + POA_Messaging::SyncScopePolicy *policy = + this->sync_scope (); + + if (policy != 0) + { + Messaging::SyncScope scope = policy->synchronization (); + + if (scope == Messaging::SYNC_WITH_TRANSPORT || + scope == Messaging::SYNC_WITH_SERVER || + scope == Messaging::SYNC_WITH_TARGET) + return this->orb_core_->transport_sync_strategy (); + + if (scope == Messaging::SYNC_NONE) + return this->orb_core_->none_sync_strategy (); + + if (scope == Messaging::SYNC_FLUSH) + return this->orb_core_->flush_sync_strategy (); + } + +#endif /* TAO_HAS_CORBA_MESSAGING */ + + return this->orb_core_->transport_sync_strategy (); +} + #if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) template class auto_ptr<TAO_Policy_Manager_Impl>; diff --git a/TAO/tao/Stub.h b/TAO/tao/Stub.h index eb0714595cd..f76f1e36643 100644 --- a/TAO/tao/Stub.h +++ b/TAO/tao/Stub.h @@ -45,7 +45,7 @@ #include "tao/TAOS.h" #endif /* TAO_HAS_CORBA_MESSAGING */ - +class TAO_Sync_Strategy; class TAO_GIOP_Invocation; class TAO_ORB_Core; class TAO_Policy_Manager_Impl; @@ -289,11 +289,13 @@ public: TAO_default_environment () ); - POA_Messaging::RelativeRoundtripTimeoutPolicy* - relative_roundtrip_timeout (void); + POA_Messaging::RelativeRoundtripTimeoutPolicy *relative_roundtrip_timeout (void); + + POA_TAO::ClientPriorityPolicy *client_priority (void); - POA_TAO::ClientPriorityPolicy* - client_priority (void); + POA_Messaging::SyncScopePolicy *sync_scope (void); + + POA_TAO::BufferingConstraintPolicy *buffering_constraint (void); CORBA::Policy_ptr get_client_policy ( CORBA::PolicyType type, @@ -318,6 +320,10 @@ public: ); #endif /* TAO_HAS_CORBA_MESSAGING */ + TAO_Sync_Strategy &sync_strategy (void); + // Return the sync strategy to be used in by the transport. + // Selection will be based on the SyncScope policies. + CORBA::String_var type_id; // All objref representations carry around a type ID. @@ -511,7 +517,7 @@ private: // the ORB's RootPOA. #if defined (TAO_HAS_CORBA_MESSAGING) - TAO_Policy_Manager_Impl* policies_; + TAO_Policy_Manager_Impl *policies_; // The policy overrides in this object, if nil then use the default // policies. #endif /* TAO_HAS_CORBA_MESSAGING */ diff --git a/TAO/tao/Sync_Strategies.cpp b/TAO/tao/Sync_Strategies.cpp new file mode 100644 index 00000000000..5b109bf7b36 --- /dev/null +++ b/TAO/tao/Sync_Strategies.cpp @@ -0,0 +1,221 @@ +// -*- C++ -*- +// $Id$ + +#include "tao/Sync_Strategies.h" + +#include "tao/TAOS.h" +#include "tao/Stub.h" + +#if !defined (__ACE_INLINE__) +# include "tao/Sync_Strategies.i" +#endif /* ! __ACE_INLINE__ */ + +TAO_Sync_Strategy::~TAO_Sync_Strategy (void) +{ +} + +ssize_t +TAO_Transport_Sync_Strategy::send (TAO_Transport &transport, + TAO_Stub &, + const ACE_Message_Block *message_block, + ACE_Time_Value *max_wait_time) +{ + // Immediate delegation to the transport. + return transport.send (message_block, + max_wait_time); +} + +#if defined (TAO_HAS_CORBA_MESSAGING) + +ssize_t +TAO_None_Sync_Strategy::send (TAO_Transport &transport, + TAO_Stub &stub, + const ACE_Message_Block *message_block, + ACE_Time_Value *max_wait_time) +{ + ssize_t result = 0; + + // Get the message queue from the transport. + TAO_Transport_Buffering_Queue &buffering_queue = + transport.buffering_queue (); + + // Copy the message. + ACE_Message_Block *copy = message_block->clone (); + + // Enqueue current message. + result = buffering_queue.enqueue_tail (copy); + + // Enqueuing error. + if (result == -1) + { + // Eliminate the copy. + copy->release (); + + // Return error. + return -1; + } + + // Check if upper bound has been reached. + if (this->buffering_constraints_reached (stub, + buffering_queue)) + { + // Copy the timeout value since we don't want to change it. The + // caller will change appropriately. + ACE_Time_Value timeout_value; + ACE_Time_Value *timeout = 0; + if (max_wait_time) + { + timeout_value = *max_wait_time; + timeout = &timeout_value; + } + + ACE_Countdown_Time countdown (timeout); + + // Flush all queued messages. + while (!buffering_queue.is_empty ()) + { + // Get the first message from the queue. + ACE_Message_Block *queued_message = 0; + result = buffering_queue.peek_dequeue_head (queued_message); + + // @@ What to do here on failures? + ACE_ASSERT (result != -1); + + // Actual network send. + result = transport.send (queued_message, + timeout); + + // Socket closed. + if (result == 0) + { + this->dequeue_all (buffering_queue); + return -1; + } + + // Cannot send. + if (result == -1) + { + // Timeout. + if (errno == ETIME) + { + // Since we queue up the message, this is not an + // error. We can try next time around. + return 0; + } + // Non-timeout error. + else + { + this->dequeue_all (buffering_queue); + return -1; + } + } + + size_t total_length = queued_message->total_length (); + + // If successful in sending the complete queued message. + if (result == total_length) + { + this->dequeue_head (buffering_queue); + countdown.update (); + } + + // Partial send (re-adjust pointers without dequeuing the + // message). This is not an error. We can try next time + // around. + else + { + this->reset_queued_message (buffering_queue, + queued_message, + result); + return 0; + } + } + } + + // I am hoping this return value is meaningful. + return message_block->total_length (); +} + +void +TAO_None_Sync_Strategy::dequeue_head (TAO_Transport_Buffering_Queue &buffering_queue) +{ + ACE_Message_Block *message_block = 0; + + // Remove from the head of the queue. + int result = buffering_queue.dequeue_head (message_block); + + // @@ What to do here on failures? + ACE_ASSERT (result != -1); + + // Release the memory. + message_block->release (); +} + +void +TAO_None_Sync_Strategy::dequeue_all (TAO_Transport_Buffering_Queue &buffering_queue) +{ + // Flush all queued messages. + while (!buffering_queue.is_empty ()) + this->dequeue_head (buffering_queue); +} + +void +TAO_None_Sync_Strategy::reset_queued_message (TAO_Transport_Buffering_Queue &buffering_queue, + ACE_Message_Block *message_block, + size_t bytes_delivered) +{ + for (ACE_Message_Block *i = message_block; + i != 0 && bytes_delivered != 0; + i = i->cont ()) + { + if (i->length () > bytes_delivered) + { + i->rd_ptr (bytes_delivered); + bytes_delivered = 0; + } + else + { + bytes_delivered -= i->length (); + i->rd_ptr (i->length ()); + } + } + + buffering_queue.message_length (buffering_queue.message_length () - bytes_delivered); +} + +int +TAO_None_Sync_Strategy::buffering_constraints_reached (TAO_Stub &stub, + TAO_Transport_Buffering_Queue &buffering_queue) +{ + POA_TAO::BufferingConstraintPolicy *buffering_constraint_policy = + stub.buffering_constraint (); + + if (buffering_constraint_policy == 0) + return 1; + + TAO::BufferingConstraint buffering_constraint = + buffering_constraint_policy->buffering_constraint (); + + if (buffering_constraint.mode == TAO::BUFFER_NONE) + return 1; + + if (ACE_BIT_ENABLED (buffering_constraint.mode, TAO::BUFFER_MESSAGE_COUNT) && + buffering_queue.message_count () >= buffering_constraint.message_count) + return 1; + + if (ACE_BIT_ENABLED (buffering_constraint.mode, TAO::BUFFER_MESSAGE_BYTES) && + buffering_queue.message_length () >= buffering_constraint.message_bytes) + return 1; + + return 0; +} + +int +TAO_Flush_Sync_Strategy::buffering_constraints_reached (TAO_Stub &, + TAO_Transport_Buffering_Queue &) +{ + // Always yes. + return 1; +} + +#endif /* TAO_HAS_CORBA_MESSAGING */ diff --git a/TAO/tao/Sync_Strategies.h b/TAO/tao/Sync_Strategies.h new file mode 100644 index 00000000000..f638f283e8c --- /dev/null +++ b/TAO/tao/Sync_Strategies.h @@ -0,0 +1,86 @@ +// -*- C++ -*- +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// TAO +// +// = FILENAME +// Sync_Strategies.h +// +// = DESCRIPTION +// Sync Strategies for the ORB Messaging layer. +// +// = AUTHOR +// Irfan Pyarali +// +// ============================================================================ + +#ifndef TAO_SYNC_STRATEGIES_H +#define TAO_SYNC_STRATEGIES_H + +#include "tao/corbafwd.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/Pluggable.h" + +class TAO_Export TAO_Sync_Strategy +{ +public: + virtual ~TAO_Sync_Strategy (void); + + virtual ssize_t send (TAO_Transport &transport, + TAO_Stub &stub, + const ACE_Message_Block *message_block, + ACE_Time_Value *max_wait_time) = 0; +}; + +class TAO_Export TAO_Transport_Sync_Strategy : public TAO_Sync_Strategy +{ +public: + ssize_t send (TAO_Transport &transport, + TAO_Stub &stub, + const ACE_Message_Block *message_block, + ACE_Time_Value *max_wait_time); +}; + +#if defined (TAO_HAS_CORBA_MESSAGING) + +class TAO_Export TAO_None_Sync_Strategy : public TAO_Sync_Strategy +{ +public: + ssize_t send (TAO_Transport &transport, + TAO_Stub &stub, + const ACE_Message_Block *message_block, + ACE_Time_Value *max_wait_time); + + virtual int buffering_constraints_reached (TAO_Stub &stub, + TAO_Transport_Buffering_Queue &buffering_queue); + + void dequeue_head (TAO_Transport_Buffering_Queue &buffering_queue); + + void dequeue_all (TAO_Transport_Buffering_Queue &buffering_queue); + + void reset_queued_message (TAO_Transport_Buffering_Queue &buffering_queue, + ACE_Message_Block *message_block, + size_t bytes_delivered); +}; + +class TAO_Export TAO_Flush_Sync_Strategy : public TAO_None_Sync_Strategy +{ +public: + int buffering_constraints_reached (TAO_Stub &stub, + TAO_Transport_Buffering_Queue &buffering_queue); +}; + +#endif /* TAO_HAS_CORBA_MESSAGING */ + +#if defined (__ACE_INLINE__) +# include "tao/Sync_Strategies.i" +#endif /* __ACE_INLINE__ */ + +#endif /* TAO_SYNC_STRATEGIES_H */ diff --git a/TAO/tao/Sync_Strategies.i b/TAO/tao/Sync_Strategies.i new file mode 100644 index 00000000000..c130d6682b1 --- /dev/null +++ b/TAO/tao/Sync_Strategies.i @@ -0,0 +1,2 @@ +// -*- C++ -*- +// $Id$ diff --git a/TAO/tao/TAO.dsp b/TAO/tao/TAO.dsp index 35e805997be..6ca057deda2 100644 --- a/TAO/tao/TAO.dsp +++ b/TAO/tao/TAO.dsp @@ -8,23 +8,23 @@ CFG=TAO DLL - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
-!MESSAGE
+!MESSAGE
!MESSAGE NMAKE /f "TAO.mak".
-!MESSAGE
+!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
+!MESSAGE
!MESSAGE NMAKE /f "TAO.mak" CFG="TAO DLL - Win32 Debug"
-!MESSAGE
+!MESSAGE
!MESSAGE Possible choices for configuration are:
-!MESSAGE
+!MESSAGE
!MESSAGE "TAO DLL - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "TAO DLL - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "TAO DLL - Win32 Alpha Release" (based on "Win32 (ALPHA) Dynamic-Link Library")
!MESSAGE "TAO DLL - Win32 Alpha Debug" (based on "Win32 (ALPHA) Dynamic-Link Library")
!MESSAGE "TAO DLL - Win32 MFC Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "TAO DLL - Win32 MFC Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
+!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
@@ -218,7 +218,7 @@ LINK32=link.exe # ADD LINK32 acemfc.lib /nologo /subsystem:windows /dll /machine:I386 /out:"..\..\bin\TAOmfc.dll" /libpath:"..\..\ace"
# SUBTRACT LINK32 /incremental:yes
-!ENDIF
+!ENDIF
# Begin Target
@@ -247,7 +247,7 @@ SOURCE=.\Acceptor_Registry.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -266,7 +266,7 @@ SOURCE=.\Active_Object_Map.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -285,7 +285,7 @@ SOURCE=.\Any.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -304,7 +304,7 @@ SOURCE=.\append.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -323,7 +323,7 @@ SOURCE=.\Asynch_Invocation.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -342,7 +342,7 @@ SOURCE=.\CDR.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -361,7 +361,7 @@ SOURCE=.\CDR_Interpreter.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -380,7 +380,26 @@ SOURCE=.\Client_Priority_Policy.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\Buffering_Constraint_Policy.cpp
+
+!IF "$(CFG)" == "TAO DLL - Win32 Release"
+
+!ELSEIF "$(CFG)" == "TAO DLL - Win32 Debug"
+
+!ELSEIF "$(CFG)" == "TAO DLL - Win32 Alpha Release"
+
+!ELSEIF "$(CFG)" == "TAO DLL - Win32 Alpha Debug"
+
+!ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Debug"
+
+!ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
+
+!ENDIF
# End Source File
# Begin Source File
@@ -399,7 +418,7 @@ SOURCE=.\Client_Strategy_Factory.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -418,7 +437,7 @@ SOURCE=.\Connector_Registry.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -437,7 +456,7 @@ SOURCE=.\Context.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -456,7 +475,7 @@ SOURCE=.\CONV_FRAMEC.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -475,7 +494,7 @@ SOURCE=.\CONV_FRAMES.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -494,7 +513,7 @@ SOURCE=.\corbafwd.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -513,7 +532,7 @@ SOURCE=.\CurrentC.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -532,7 +551,7 @@ SOURCE=.\CurrentS.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -551,7 +570,7 @@ SOURCE=.\debug.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -570,7 +589,7 @@ SOURCE=.\decode.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -589,7 +608,7 @@ SOURCE=.\deep_free.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -608,7 +627,7 @@ SOURCE=.\default_client.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -627,7 +646,7 @@ SOURCE=.\default_resource.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -646,7 +665,7 @@ SOURCE=.\default_server.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -665,7 +684,7 @@ SOURCE=.\Direct_Priority_Mapping.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -684,7 +703,7 @@ SOURCE=.\DomainC.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -703,7 +722,7 @@ SOURCE=.\DomainS.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -722,7 +741,7 @@ SOURCE=.\DynAny_i.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -741,7 +760,7 @@ SOURCE=.\DynAnyC.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -760,7 +779,7 @@ SOURCE=.\DynAnyS.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -779,7 +798,7 @@ SOURCE=.\DynArray_i.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -798,7 +817,7 @@ SOURCE=.\DynEnum_i.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -817,7 +836,7 @@ SOURCE=.\DynSequence_i.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -836,7 +855,7 @@ SOURCE=.\DynStruct_i.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -855,7 +874,7 @@ SOURCE=.\DynUnion_i.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -874,7 +893,7 @@ SOURCE=.\encode.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -893,7 +912,7 @@ SOURCE=.\Environment.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -912,7 +931,7 @@ SOURCE=.\Exception.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -931,7 +950,7 @@ SOURCE=.\Forwarding_Servant.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -950,7 +969,7 @@ SOURCE=.\GIOP.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -969,7 +988,7 @@ SOURCE=.\GIOP_Server_Request.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -988,7 +1007,7 @@ SOURCE=.\IIOP_Acceptor.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1007,7 +1026,7 @@ SOURCE=.\IIOP_Connect.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1026,7 +1045,7 @@ SOURCE=.\IIOP_Connector.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1045,7 +1064,7 @@ SOURCE=.\IIOP_Factory.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1064,7 +1083,7 @@ SOURCE=.\IIOP_Profile.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1083,7 +1102,7 @@ SOURCE=.\IIOP_Transport.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1102,7 +1121,7 @@ SOURCE=.\InconsistentTypeCodeC.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1121,7 +1140,7 @@ SOURCE=.\Interceptor.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1140,7 +1159,7 @@ SOURCE=.\InterceptorC.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1159,7 +1178,7 @@ SOURCE=.\InterceptorS.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1178,7 +1197,7 @@ SOURCE=.\InterfaceC.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1197,7 +1216,7 @@ SOURCE=.\Invocation.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1216,7 +1235,7 @@ SOURCE=.\IOPC.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1235,7 +1254,7 @@ SOURCE=.\IOPS.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1254,7 +1273,7 @@ SOURCE=.\IOR_LookupTable.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1273,7 +1292,7 @@ SOURCE=.\IORC.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1292,7 +1311,7 @@ SOURCE=.\IORManipulation.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1311,7 +1330,7 @@ SOURCE=.\IORS.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1330,7 +1349,7 @@ SOURCE=.\Key_Adapters.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1349,7 +1368,7 @@ SOURCE=.\Leader_Follower.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1368,7 +1387,7 @@ SOURCE=.\Linear_Priority_Mapping.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1387,7 +1406,7 @@ SOURCE=.\Managed_Types.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1406,7 +1425,7 @@ SOURCE=.\Marshal.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1425,7 +1444,7 @@ SOURCE=.\Messaging_Policy_i.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1444,7 +1463,7 @@ SOURCE=.\MessagingC.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1463,7 +1482,7 @@ SOURCE=.\MessagingS.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1482,7 +1501,7 @@ SOURCE=.\MProfile.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1501,7 +1520,7 @@ SOURCE=.\NVList.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1520,7 +1539,7 @@ SOURCE=.\Object.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1539,7 +1558,7 @@ SOURCE=.\Object_Adapter.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1558,7 +1577,7 @@ SOURCE=.\Object_KeyC.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1577,7 +1596,7 @@ SOURCE=.\ObjectIDList.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1596,7 +1615,7 @@ SOURCE=.\Operation_Table.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1615,7 +1634,7 @@ SOURCE=.\ORB.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1634,7 +1653,7 @@ SOURCE=.\ORB_Core.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1653,7 +1672,7 @@ SOURCE=.\params.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1672,7 +1691,7 @@ SOURCE=.\Pluggable.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1691,7 +1710,26 @@ SOURCE=.\POA.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\Sync_Strategies.cpp
+
+!IF "$(CFG)" == "TAO DLL - Win32 Release"
+
+!ELSEIF "$(CFG)" == "TAO DLL - Win32 Debug"
+
+!ELSEIF "$(CFG)" == "TAO DLL - Win32 Alpha Release"
+
+!ELSEIF "$(CFG)" == "TAO DLL - Win32 Alpha Debug"
+
+!ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Debug"
+
+!ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
+
+!ENDIF
# End Source File
# Begin Source File
@@ -1710,7 +1748,7 @@ SOURCE=.\POAC.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1729,7 +1767,7 @@ SOURCE=.\POAManager.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1748,7 +1786,7 @@ SOURCE=.\POAS.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1767,7 +1805,7 @@ SOURCE=.\Policy_Manager.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1786,7 +1824,7 @@ SOURCE=.\PolicyC.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1805,7 +1843,7 @@ SOURCE=.\PolicyS.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1824,7 +1862,7 @@ SOURCE=.\PollableC.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1843,7 +1881,7 @@ SOURCE=.\PollableS.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1862,7 +1900,7 @@ SOURCE=.\Pool_Per_Endpoint.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1881,7 +1919,7 @@ SOURCE=.\Principal.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1900,7 +1938,7 @@ SOURCE=.\Priority_Mapping.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1919,7 +1957,7 @@ SOURCE=.\Profile.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1938,7 +1976,7 @@ SOURCE=.\Protocol_Factory.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1957,7 +1995,7 @@ SOURCE=.\Reactor_Per_Priority.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1976,7 +2014,7 @@ SOURCE=.\Reactor_Registry.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -1995,7 +2033,7 @@ SOURCE=.\Reply_Dispatcher.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2014,7 +2052,7 @@ SOURCE=.\Request.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2033,7 +2071,7 @@ SOURCE=.\Resource_Factory.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2052,7 +2090,7 @@ SOURCE=.\RT_Current.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2071,7 +2109,7 @@ SOURCE=.\rtcorbafwd.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2090,7 +2128,7 @@ SOURCE=.\Sequence.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2109,7 +2147,7 @@ SOURCE=.\Servant_Base.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2128,7 +2166,7 @@ SOURCE=.\Server_Request.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2147,7 +2185,7 @@ SOURCE=.\Server_Strategy_Factory.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2166,7 +2204,7 @@ SOURCE=.\Services.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2185,7 +2223,7 @@ SOURCE=.\Single_Reactor.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2204,7 +2242,7 @@ SOURCE=.\skip.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2223,7 +2261,7 @@ SOURCE=.\Stub.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2242,7 +2280,7 @@ SOURCE=.\Tagged_Components.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2261,7 +2299,7 @@ SOURCE=.\TAO.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2280,7 +2318,7 @@ SOURCE=.\TAO_Internal.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2299,7 +2337,7 @@ SOURCE=.\TAOC.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2318,7 +2356,7 @@ SOURCE=.\TAOS.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2337,7 +2375,7 @@ SOURCE=.\TimeBaseC.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2356,7 +2394,7 @@ SOURCE=.\TimeBaseS.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2375,7 +2413,7 @@ SOURCE=.\Transport_Mux_Strategy.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2394,7 +2432,7 @@ SOURCE=.\Typecode.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2413,7 +2451,7 @@ SOURCE=.\Typecode_Constants.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2432,7 +2470,7 @@ SOURCE=.\UIOP_Acceptor.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2451,7 +2489,7 @@ SOURCE=.\UIOP_Connect.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2470,7 +2508,7 @@ SOURCE=.\UIOP_Connector.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2489,7 +2527,7 @@ SOURCE=.\UIOP_Factory.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2508,7 +2546,7 @@ SOURCE=.\UIOP_Profile.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2527,7 +2565,7 @@ SOURCE=.\UIOP_Transport.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2546,7 +2584,7 @@ SOURCE=.\Union.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2565,7 +2603,7 @@ SOURCE=.\ValueBase.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2584,7 +2622,7 @@ SOURCE=.\ValueFactory.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2603,7 +2641,7 @@ SOURCE=.\ValueFactory_Map.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2622,7 +2660,7 @@ SOURCE=.\Wait_Strategy.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# Begin Source File
@@ -2641,7 +2679,7 @@ SOURCE=.\WrongTransactionC.cpp !ELSEIF "$(CFG)" == "TAO DLL - Win32 MFC Release"
-!ENDIF
+!ENDIF
# End Source File
# End Group
@@ -2682,6 +2720,10 @@ SOURCE=.\Client_Priority_Policy.h # End Source File
# Begin Source File
+SOURCE=.\Buffering_Constraint_Policy.h
+# End Source File
+# Begin Source File
+
SOURCE=.\Client_Strategy_Factory.h
# End Source File
# Begin Source File
@@ -3178,6 +3220,10 @@ SOURCE=.\Client_Priority_Policy.i # End Source File
# Begin Source File
+SOURCE=.\Buffering_Constraint_Policy.i
+# End Source File
+# Begin Source File
+
SOURCE=.\Context.i
# End Source File
# Begin Source File
diff --git a/TAO/tao/TAO.pidl b/TAO/tao/TAO.pidl index 62f7d3a6925..e5a1fec85b4 100644 --- a/TAO/tao/TAO.pidl +++ b/TAO/tao/TAO.pidl @@ -10,8 +10,9 @@ // TAO.pidl // // = DESCRIPTION -// This file contains TAO-specific idl interfaces (not part -// of CORBA 2.3). +// This file contains TAO-specific idl interfaces (not part of CORBA +// 2.3). +// // This file was used to generate the code in TAO{C,S,S_T}.{h,i,cpp} // The code is then hand-crafted to compile it inside the ORB, avoid // cyclic dependencies and enforce the locality constraints on @@ -23,9 +24,13 @@ #define TAO_TAO_IDL #include "Policy.pidl" +#include "TimeBase.pidl" module TAO { + // + // Client priority. + // typedef short PrioritySelectionMode; const PrioritySelectionMode USE_NO_PRIORITY = 0; const PrioritySelectionMode USE_THREAD_PRIORITY = 1; @@ -39,10 +44,40 @@ module TAO }; const CORBA::PolicyType CLIENT_PRIORITY_POLICY_TYPE = 0x54410000; - interface ClientPriorityPolicy : CORBA::Policy { - readonly attribute PrioritySpecification priority_specification; + interface ClientPriorityPolicy : CORBA::Policy + { + readonly attribute PrioritySpecification priority_specification; + }; + + //////////////////////////////////////////////////////////////////////////////// + + // + // Buffering constraint. + // + typedef unsigned short BufferingConstraintMode; + const BufferingConstraintMode BUFFER_NONE = 0x00; + + // Note that timeout, message_count, and message_bytes can be or'd. + const BufferingConstraintMode BUFFER_TIMEOUT = 0x01; + const BufferingConstraintMode BUFFER_MESSAGE_COUNT = 0x02; + const BufferingConstraintMode BUFFER_MESSAGE_BYTES = 0x04; + + struct BufferingConstraint + { + BufferingConstraintMode mode; + TimeBase::TimeT timeout; + unsigned long message_count; + unsigned long message_bytes; }; + + const CORBA::PolicyType BUFFERING_CONSTRAINT_POLICY_TYPE = 0x54410001; + interface BufferingConstraintPolicy : CORBA::Policy + { + readonly attribute BufferingConstraint buffering_constraint; + }; + }; + #pragma prefix "" #endif /* TAO_TAO_IDL */ diff --git a/TAO/tao/TAOC.cpp b/TAO/tao/TAOC.cpp index 90eb3c22976..90bf06cd987 100644 --- a/TAO/tao/TAOC.cpp +++ b/TAO/tao/TAOC.cpp @@ -15,6 +15,8 @@ #include "TAOC.i" #endif /* !defined INLINE */ +#if defined (TAO_HAS_CORBA_MESSAGING) + static const CORBA::Long _oc_TAO_PrioritySelectionMode[] = { TAO_ENCAP_BYTE_ORDER, // byte order @@ -105,7 +107,7 @@ TAO::ClientPriorityPolicy_ptr TAO::ClientPriorityPolicy::_unchecked_narrow ( return retval; } -TAO::ClientPriorityPolicy_ptr +TAO::ClientPriorityPolicy_ptr TAO::ClientPriorityPolicy::_duplicate (TAO::ClientPriorityPolicy_ptr obj) { if (!CORBA::is_nil (obj)) @@ -200,7 +202,7 @@ CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, TAO::PrioritySpecificati ACE_CATCHANY { delete _tao_elem; - return 0; + return 0; } ACE_ENDTRY; return 0; @@ -264,4 +266,267 @@ CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, TAO::ClientPriorityPolic # pragma instantiate TAO_Object_Field_T<TAO::ClientPriorityPolicy,TAO::ClientPriorityPolicy_var> # pragma instantiate TAO_Object_Manager<TAO::ClientPriorityPolicy,TAO::ClientPriorityPolicy_var> #endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ +static const CORBA::Long _oc_TAO_BufferingConstraintMode[] = +{ + TAO_ENCAP_BYTE_ORDER, // byte order + 36, ACE_NTOHL (0x49444c3a), ACE_NTOHL (0x54414f2f), ACE_NTOHL (0x42756666), ACE_NTOHL (0x6572696e), ACE_NTOHL (0x67436f6e), ACE_NTOHL (0x73747261), ACE_NTOHL (0x696e744d), ACE_NTOHL (0x6f64653a), ACE_NTOHL (0x312e3000), // repository ID = IDL:TAO/BufferingConstraintMode:1.0 + 24, ACE_NTOHL (0x42756666), ACE_NTOHL (0x6572696e), ACE_NTOHL (0x67436f6e), ACE_NTOHL (0x73747261), ACE_NTOHL (0x696e744d), ACE_NTOHL (0x6f646500), // name = BufferingConstraintMode + CORBA::tk_ushort, + +}; +static CORBA::TypeCode _tc_TAO_tc_TAO_BufferingConstraintMode (CORBA::tk_alias, sizeof (_oc_TAO_BufferingConstraintMode), (char *) &_oc_TAO_BufferingConstraintMode, 0, sizeof (TAO::BufferingConstraintMode)); +TAO_NAMESPACE_TYPE (CORBA::TypeCode_ptr) +TAO_NAMESPACE_BEGIN (TAO) +TAO_NAMESPACE_DEFINE (CORBA::TypeCode_ptr, _tc_BufferingConstraintMode, &_tc_TAO_tc_TAO_BufferingConstraintMode) +TAO_NAMESPACE_END +TAO_NAMESPACE_TYPE (const CORBA::UShort) +TAO_NAMESPACE_BEGIN (TAO) +TAO_NAMESPACE_DEFINE (const CORBA::UShort, BUFFER_NONE, 0U) +TAO_NAMESPACE_END +TAO_NAMESPACE_TYPE (const CORBA::UShort) +TAO_NAMESPACE_BEGIN (TAO) +TAO_NAMESPACE_DEFINE (const CORBA::UShort, BUFFER_TIMEOUT, 1U) +TAO_NAMESPACE_END +TAO_NAMESPACE_TYPE (const CORBA::UShort) +TAO_NAMESPACE_BEGIN (TAO) +TAO_NAMESPACE_DEFINE (const CORBA::UShort, BUFFER_MESSAGE_COUNT, 2U) +TAO_NAMESPACE_END +TAO_NAMESPACE_TYPE (const CORBA::UShort) +TAO_NAMESPACE_BEGIN (TAO) +TAO_NAMESPACE_DEFINE (const CORBA::UShort, BUFFER_MESSAGE_BYTES, 4U) +TAO_NAMESPACE_END +static const CORBA::Long _oc_TAO_BufferingConstraint[] = +{ + TAO_ENCAP_BYTE_ORDER, // byte order + 32, ACE_NTOHL (0x49444c3a), ACE_NTOHL (0x54414f2f), ACE_NTOHL (0x42756666), ACE_NTOHL (0x6572696e), ACE_NTOHL (0x67436f6e), ACE_NTOHL (0x73747261), ACE_NTOHL (0x696e743a), ACE_NTOHL (0x312e3000), // repository ID = IDL:TAO/BufferingConstraint:1.0 + 20, ACE_NTOHL (0x42756666), ACE_NTOHL (0x6572696e), ACE_NTOHL (0x67436f6e), ACE_NTOHL (0x73747261), ACE_NTOHL (0x696e7400), // name = BufferingConstraint + 4, // member count + 5, ACE_NTOHL (0x6d6f6465), ACE_NTOHL (0x0), // name = mode + CORBA::tk_alias, // typecode kind for typedefs + 76, // encapsulation length + TAO_ENCAP_BYTE_ORDER, // byte order + 36, ACE_NTOHL (0x49444c3a), ACE_NTOHL (0x54414f2f), ACE_NTOHL (0x42756666), ACE_NTOHL (0x6572696e), ACE_NTOHL (0x67436f6e), ACE_NTOHL (0x73747261), ACE_NTOHL (0x696e744d), ACE_NTOHL (0x6f64653a), ACE_NTOHL (0x312e3000), // repository ID = IDL:TAO/BufferingConstraintMode:1.0 + 24, ACE_NTOHL (0x42756666), ACE_NTOHL (0x6572696e), ACE_NTOHL (0x67436f6e), ACE_NTOHL (0x73747261), ACE_NTOHL (0x696e744d), ACE_NTOHL (0x6f646500), // name = BufferingConstraintMode + CORBA::tk_ushort, + + + 8, ACE_NTOHL (0x74696d65), ACE_NTOHL (0x6f757400), // name = timeout + CORBA::tk_alias, // typecode kind for typedefs + 56, // encapsulation length + TAO_ENCAP_BYTE_ORDER, // byte order + 31, ACE_NTOHL (0x49444c3a), ACE_NTOHL (0x6f6d672e), ACE_NTOHL (0x6f72672f), ACE_NTOHL (0x54696d65), ACE_NTOHL (0x42617365), ACE_NTOHL (0x2f54696d), ACE_NTOHL (0x65543a31), ACE_NTOHL (0x2e300000), // repository ID = IDL:omg.org/TimeBase/TimeT:1.0 + 6, ACE_NTOHL (0x54696d65), ACE_NTOHL (0x54000000), // name = TimeT + CORBA::tk_ulonglong, + + + 14, ACE_NTOHL (0x6d657373), ACE_NTOHL (0x6167655f), ACE_NTOHL (0x636f756e), ACE_NTOHL (0x74000000), // name = message_count + CORBA::tk_ulong, + + 14, ACE_NTOHL (0x6d657373), ACE_NTOHL (0x6167655f), ACE_NTOHL (0x62797465), ACE_NTOHL (0x73000000), // name = message_bytes + CORBA::tk_ulong, + +}; +static CORBA::TypeCode _tc_TAO_tc_TAO_BufferingConstraint (CORBA::tk_struct, sizeof (_oc_TAO_BufferingConstraint), (char *) &_oc_TAO_BufferingConstraint, 0, sizeof (TAO::BufferingConstraint)); +TAO_NAMESPACE_TYPE (CORBA::TypeCode_ptr) +TAO_NAMESPACE_BEGIN (TAO) +TAO_NAMESPACE_DEFINE (CORBA::TypeCode_ptr, _tc_BufferingConstraint, &_tc_TAO_tc_TAO_BufferingConstraint) +TAO_NAMESPACE_END +TAO_NAMESPACE_TYPE (const CORBA::ULong) +TAO_NAMESPACE_BEGIN (TAO) +TAO_NAMESPACE_DEFINE (const CORBA::ULong, BUFFERING_CONSTRAINT_POLICY_TYPE, 1413545985U) +TAO_NAMESPACE_END +TAO::BufferingConstraintPolicy_ptr TAO::BufferingConstraintPolicy::_narrow ( + CORBA::Object_ptr obj, + CORBA::Environment &ACE_TRY_ENV + ) +{ + if (CORBA::is_nil (obj)) + return TAO::BufferingConstraintPolicy::_nil (); + CORBA::Boolean is_a = obj->_is_a ("IDL:TAO/BufferingConstraintPolicy:1.0", ACE_TRY_ENV); + ACE_CHECK_RETURN (TAO::BufferingConstraintPolicy::_nil ()); + if (is_a == 0) + return TAO::BufferingConstraintPolicy::_nil (); + return TAO::BufferingConstraintPolicy::_unchecked_narrow (obj, ACE_TRY_ENV); +} + +TAO::BufferingConstraintPolicy_ptr TAO::BufferingConstraintPolicy::_unchecked_narrow ( + CORBA::Object_ptr obj, + CORBA::Environment & ACE_TRY_ENV + ) +{ + void *servant = 0; + if (!obj->_is_collocated () + || !obj->_servant () + || (servant = obj->_servant()->_downcast ("IDL:TAO/BufferingConstraintPolicy:1.0")) == 0 + ) + ACE_THROW_RETURN (CORBA::MARSHAL (), TAO::BufferingConstraintPolicy::_nil ()); + TAO::BufferingConstraintPolicy_ptr retval = 0; + ACE_NEW_RETURN ( + retval, + POA_TAO::_tao_direct_collocated_BufferingConstraintPolicy (ACE_reinterpret_cast (POA_TAO::BufferingConstraintPolicy_ptr, servant), 0), + 0 + ); + return retval; +} + +TAO::BufferingConstraintPolicy_ptr +TAO::BufferingConstraintPolicy::_duplicate (TAO::BufferingConstraintPolicy_ptr obj) +{ + if (!CORBA::is_nil (obj)) + obj->_incr_refcnt (); + return obj; +} + +CORBA::Boolean TAO::BufferingConstraintPolicy::_is_a (const CORBA::Char *value, CORBA::Environment &ACE_TRY_ENV) +{ + if ( + (!ACE_OS::strcmp ((char *)value, "IDL:TAO/BufferingConstraintPolicy:1.0")) || + (!ACE_OS::strcmp ((char *)value, "IDL:omg.org/CORBA/Policy:1.0")) || + (!ACE_OS::strcmp ((char *)value, "IDL:omg.org/CORBA/Object:1.0"))) + return 1; // success using local knowledge + else + return this->CORBA_Object::_is_a (value, ACE_TRY_ENV); +} + +const char* TAO::BufferingConstraintPolicy::_interface_repository_id (void) const +{ + return "IDL:TAO/BufferingConstraintPolicy:1.0"; +} + +static const CORBA::Long _oc_TAO_BufferingConstraintPolicy[] = +{ + TAO_ENCAP_BYTE_ORDER, // byte order + 38, ACE_NTOHL (0x49444c3a), ACE_NTOHL (0x54414f2f), ACE_NTOHL (0x42756666), ACE_NTOHL (0x6572696e), ACE_NTOHL (0x67436f6e), ACE_NTOHL (0x73747261), ACE_NTOHL (0x696e7450), ACE_NTOHL (0x6f6c6963), ACE_NTOHL (0x793a312e), ACE_NTOHL (0x30000000), // repository ID = IDL:TAO/BufferingConstraintPolicy:1.0 + 26, ACE_NTOHL (0x42756666), ACE_NTOHL (0x6572696e), ACE_NTOHL (0x67436f6e), ACE_NTOHL (0x73747261), ACE_NTOHL (0x696e7450), ACE_NTOHL (0x6f6c6963), ACE_NTOHL (0x79000000), // name = BufferingConstraintPolicy +}; +static CORBA::TypeCode _tc_TAO_tc_TAO_BufferingConstraintPolicy (CORBA::tk_objref, sizeof (_oc_TAO_BufferingConstraintPolicy), (char *) &_oc_TAO_BufferingConstraintPolicy, 0, sizeof (TAO::BufferingConstraintPolicy)); +TAO_NAMESPACE_TYPE (CORBA::TypeCode_ptr) +TAO_NAMESPACE_BEGIN (TAO) +TAO_NAMESPACE_DEFINE (CORBA::TypeCode_ptr, _tc_BufferingConstraintPolicy, &_tc_TAO_tc_TAO_BufferingConstraintPolicy) +TAO_NAMESPACE_END +void operator<<= (CORBA::Any &_tao_any, const TAO::BufferingConstraint &_tao_elem) // copying +{ + TAO::BufferingConstraint *_any_val; + ACE_NEW (_any_val, TAO::BufferingConstraint (_tao_elem)); + if (!_any_val) return; + ACE_TRY_NEW_ENV + { + _tao_any.replace (TAO::_tc_BufferingConstraint, _any_val, 1, ACE_TRY_ENV); // copy the value + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + delete _any_val; + } + ACE_ENDTRY; +} + +void operator<<= (CORBA::Any &_tao_any, TAO::BufferingConstraint *_tao_elem) // non copying +{ + ACE_TRY_NEW_ENV + { + _tao_any.replace (TAO::_tc_BufferingConstraint, _tao_elem, 1, ACE_TRY_ENV); // consume it + ACE_TRY_CHECK; + } + ACE_CATCHANY {} + ACE_ENDTRY; +} + +CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, TAO::BufferingConstraint *&_tao_elem) +{ + ACE_TRY_NEW_ENV + { + CORBA::TypeCode_var type = _tao_any.type (); + if (!type->equal (TAO::_tc_BufferingConstraint, ACE_TRY_ENV)) return 0; // not equal + ACE_TRY_CHECK; + if (_tao_any.any_owns_data ()) + { + _tao_elem = (TAO::BufferingConstraint *)_tao_any.value (); + return 1; + } + else + { + ACE_NEW_RETURN (_tao_elem, TAO::BufferingConstraint, 0); + TAO_InputCDR stream (_tao_any._tao_get_cdr ()); + if (stream.decode (TAO::_tc_BufferingConstraint, _tao_elem, 0, ACE_TRY_ENV) + == CORBA::TypeCode::TRAVERSE_CONTINUE) + { + ((CORBA::Any *)&_tao_any)->replace (TAO::_tc_BufferingConstraint, _tao_elem, 1, ACE_TRY_ENV); + ACE_TRY_CHECK; + return 1; + } + else + { + delete _tao_elem; + } + } + } + ACE_CATCHANY + { + delete _tao_elem; + return 0; + } + ACE_ENDTRY; + return 0; +} + +void operator<<= (CORBA::Any &_tao_any, TAO::BufferingConstraintPolicy_ptr _tao_elem) +{ + CORBA::Object_ptr *_tao_obj_ptr = 0; + ACE_TRY_NEW_ENV + { + ACE_NEW (_tao_obj_ptr, CORBA::Object_ptr); + *_tao_obj_ptr = TAO::BufferingConstraintPolicy::_duplicate (_tao_elem); + _tao_any.replace (TAO::_tc_BufferingConstraintPolicy, _tao_obj_ptr, 1, ACE_TRY_ENV); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + delete _tao_obj_ptr; + } + ACE_ENDTRY; +} + +CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, TAO::BufferingConstraintPolicy_ptr &_tao_elem) +{ + CORBA::Object_ptr *tmp = 0; + ACE_TRY_NEW_ENV + { + _tao_elem = TAO::BufferingConstraintPolicy::_nil (); + CORBA::TypeCode_var type = _tao_any.type (); + if (!type->equal (TAO::_tc_BufferingConstraintPolicy, ACE_TRY_ENV)) return 0; // not equal + ACE_TRY_CHECK; + TAO_InputCDR stream (_tao_any._tao_get_cdr ()); + CORBA::Object_var _tao_obj_var; + ACE_NEW_RETURN (tmp, CORBA::Object_ptr, 0); + if (stream.decode (TAO::_tc_BufferingConstraintPolicy, &_tao_obj_var.out (), 0, ACE_TRY_ENV) + == CORBA::TypeCode::TRAVERSE_CONTINUE) + { + _tao_elem = TAO::BufferingConstraintPolicy::_narrow (_tao_obj_var.in (), ACE_TRY_ENV); + ACE_TRY_CHECK; + *tmp = (CORBA::Object_ptr) _tao_elem; // any owns the object + ((CORBA::Any *)&_tao_any)->replace (TAO::_tc_BufferingConstraintPolicy, tmp, 1, ACE_TRY_ENV); + ACE_TRY_CHECK; + return 1; + } + // failure + } + ACE_CATCHANY + { + delete tmp; + return 0; + } + ACE_ENDTRY; + return 0; +} + +#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) || \ + defined (ACE_HAS_GNU_REPO) + template class TAO_Object_Field_T<TAO::BufferingConstraintPolicy,TAO::BufferingConstraintPolicy_var>; + template class TAO_Object_Manager<TAO::BufferingConstraintPolicy,TAO::BufferingConstraintPolicy_var>; +#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) +# pragma instantiate TAO_Object_Field_T<TAO::BufferingConstraintPolicy,TAO::BufferingConstraintPolicy_var> +# pragma instantiate TAO_Object_Manager<TAO::BufferingConstraintPolicy,TAO::BufferingConstraintPolicy_var> +#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ +#endif /* TAO_HAS_CORBA_MESSAGING */ diff --git a/TAO/tao/TAOC.h b/TAO/tao/TAOC.h index a1370db46ea..882ebf89834 100644 --- a/TAO/tao/TAOC.h +++ b/TAO/tao/TAOC.h @@ -7,18 +7,27 @@ // Information about TAO is available at: // http://www.cs.wustl.edu/~schmidt/TAO.html -#ifndef _TAO_IDL__PROJECT_DOC_MARINA_ACE_WRAPPERS_TAO_TAO_TAOC_H_ -#define _TAO_IDL__PROJECT_DOC_MARINA_ACE_WRAPPERS_TAO_TAO_TAOC_H_ +#ifndef _TAO_IDL_TAOC_H_ +#define _TAO_IDL_TAOC_H_ -#include "tao/corbafwd.h" +#include "tao/orbconf.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#include "PolicyC.h" +#if defined (TAO_HAS_CORBA_MESSAGING) + +#include "tao/PolicyC.h" +#include "tao/TimeBaseC.h" + +// This file inclusion should be moved outside the +// TAO_HAS_CORBA_MESSAGING scope once more classes have been added to +// the TAO module. #include "tao/varout.h" +#endif /* TAO_HAS_CORBA_MESSAGING */ + #if defined (TAO_EXPORT_MACRO) #undef TAO_EXPORT_MACRO #endif @@ -35,6 +44,9 @@ TAO_NAMESPACE TAO { + +#if defined (TAO_HAS_CORBA_MESSAGING) + typedef CORBA::Short PrioritySelectionMode; typedef CORBA::Short_out PrioritySelectionMode_out; TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_PrioritySelectionMode; @@ -208,21 +220,215 @@ class TAO_Export ClientPriorityPolicy: public virtual CORBA::Policy TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_ClientPriorityPolicy; + typedef CORBA::UShort BufferingConstraintMode; + typedef CORBA::UShort_out BufferingConstraintMode_out; + TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_BufferingConstraintMode; + + TAO_NAMESPACE_STORAGE_CLASS const CORBA::UShort BUFFER_NONE; + + TAO_NAMESPACE_STORAGE_CLASS const CORBA::UShort BUFFER_TIMEOUT; + + TAO_NAMESPACE_STORAGE_CLASS const CORBA::UShort BUFFER_MESSAGE_COUNT; + + TAO_NAMESPACE_STORAGE_CLASS const CORBA::UShort BUFFER_MESSAGE_BYTES; + + struct TAO_Export BufferingConstraint + { + ACE_NESTED_CLASS (TAO, BufferingConstraintMode) mode; + TimeBase::TimeT timeout; + CORBA::ULong message_count; + CORBA::ULong message_bytes; + }; + + class TAO_Export BufferingConstraint_var + { + public: + BufferingConstraint_var (void); // default constructor + BufferingConstraint_var (BufferingConstraint *); + BufferingConstraint_var (const BufferingConstraint_var &); // copy constructor + ~BufferingConstraint_var (void); // destructor + + BufferingConstraint_var &operator= (BufferingConstraint *); + BufferingConstraint_var &operator= (const BufferingConstraint_var &); + BufferingConstraint *operator-> (void); + const BufferingConstraint *operator-> (void) const; + + operator const BufferingConstraint &() const; + operator BufferingConstraint &(); + operator BufferingConstraint &() const; + // in, inout, out, _retn + const BufferingConstraint &in (void) const; + BufferingConstraint &inout (void); + BufferingConstraint &out (void); + BufferingConstraint _retn (void); + BufferingConstraint *ptr (void) const; + + private: + BufferingConstraint *ptr_; + }; + + typedef BufferingConstraint &BufferingConstraint_out; + + TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_BufferingConstraint; + + TAO_NAMESPACE_STORAGE_CLASS const CORBA::ULong BUFFERING_CONSTRAINT_POLICY_TYPE; + + +#if !defined (_TAO_BUFFERINGCONSTRAINTPOLICY___PTR_CH_) +#define _TAO_BUFFERINGCONSTRAINTPOLICY___PTR_CH_ + + class BufferingConstraintPolicy; + typedef BufferingConstraintPolicy *BufferingConstraintPolicy_ptr; + +#endif /* end #if !defined */ + + +#if !defined (_TAO_BUFFERINGCONSTRAINTPOLICY___VAR_CH_) +#define _TAO_BUFFERINGCONSTRAINTPOLICY___VAR_CH_ + + class TAO_Export BufferingConstraintPolicy_var + { + public: + BufferingConstraintPolicy_var (void); // default constructor + BufferingConstraintPolicy_var (BufferingConstraintPolicy_ptr); + BufferingConstraintPolicy_var (const BufferingConstraintPolicy_var &); // copy constructor + ~BufferingConstraintPolicy_var (void); // destructor + + BufferingConstraintPolicy_var &operator= (BufferingConstraintPolicy_ptr); + BufferingConstraintPolicy_var &operator= (const BufferingConstraintPolicy_var &); + BufferingConstraintPolicy_ptr operator-> (void) const; + + operator const BufferingConstraintPolicy_ptr &() const; + operator BufferingConstraintPolicy_ptr &(); + // in, inout, out, _retn + BufferingConstraintPolicy_ptr in (void) const; + BufferingConstraintPolicy_ptr &inout (void); + BufferingConstraintPolicy_ptr &out (void); + BufferingConstraintPolicy_ptr _retn (void); + BufferingConstraintPolicy_ptr ptr (void) const; + + private: + BufferingConstraintPolicy_ptr ptr_; + }; + + +#endif /* end #if !defined */ + + +#if !defined (_TAO_BUFFERINGCONSTRAINTPOLICY___OUT_CH_) +#define _TAO_BUFFERINGCONSTRAINTPOLICY___OUT_CH_ + + class TAO_Export BufferingConstraintPolicy_out + { + public: + BufferingConstraintPolicy_out (BufferingConstraintPolicy_ptr &); + BufferingConstraintPolicy_out (BufferingConstraintPolicy_var &); + BufferingConstraintPolicy_out (const BufferingConstraintPolicy_out &); + BufferingConstraintPolicy_out &operator= (const BufferingConstraintPolicy_out &); + BufferingConstraintPolicy_out &operator= (const BufferingConstraintPolicy_var &); + BufferingConstraintPolicy_out &operator= (BufferingConstraintPolicy_ptr); + operator BufferingConstraintPolicy_ptr &(); + BufferingConstraintPolicy_ptr &ptr (void); + BufferingConstraintPolicy_ptr operator-> (void); + + private: + BufferingConstraintPolicy_ptr &ptr_; + }; + + +#endif /* end #if !defined */ + + +#if !defined (_TAO_BUFFERINGCONSTRAINTPOLICY_CH_) +#define _TAO_BUFFERINGCONSTRAINTPOLICY_CH_ + +class TAO_Export BufferingConstraintPolicy: public virtual CORBA::Policy + { + public: + #if !defined(__GNUC__) || !defined (ACE_HAS_GNUG_PRE_2_8) + typedef BufferingConstraintPolicy_ptr _ptr_type; + typedef BufferingConstraintPolicy_var _var_type; + #endif /* ! __GNUC__ || g++ >= 2.8 */ + + // the static operations + static BufferingConstraintPolicy_ptr _duplicate (BufferingConstraintPolicy_ptr obj); + static BufferingConstraintPolicy_ptr _narrow ( + CORBA::Object_ptr obj, + CORBA::Environment &env = + TAO_default_environment () + ); + static BufferingConstraintPolicy_ptr _unchecked_narrow ( + CORBA::Object_ptr obj, + CORBA::Environment &env = + TAO_default_environment () + ); + static BufferingConstraintPolicy_ptr _nil (void) + { + return (TAO::BufferingConstraintPolicy_ptr)0; + } + + virtual ACE_NESTED_CLASS (TAO, BufferingConstraint) buffering_constraint ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) = 0; + + virtual CORBA::Boolean _is_a ( + const CORBA::Char *type_id, + CORBA::Environment &env = + TAO_default_environment () + ); + virtual const char* _interface_repository_id (void) const; + + protected: + BufferingConstraintPolicy (void); + BufferingConstraintPolicy (TAO_Stub *objref, + TAO_ServantBase *_tao_servant = 0, + CORBA::Boolean _tao_collocated = 0 + ); + virtual ~BufferingConstraintPolicy (void); + private: + BufferingConstraintPolicy (const BufferingConstraintPolicy &); + void operator= (const BufferingConstraintPolicy &); + }; + + +#endif /* end #if !defined */ + + TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_BufferingConstraintPolicy; + + +#endif /* TAO_HAS_CORBA_MESSAGING */ } TAO_NAMESPACE_CLOSE // module TAO +#if defined (TAO_HAS_CORBA_MESSAGING) + void TAO_Export operator<<= (CORBA::Any &, const TAO::PrioritySpecification &); // copying version void TAO_Export operator<<= (CORBA::Any &, TAO::PrioritySpecification*); // noncopying version CORBA::Boolean TAO_Export operator>>= (const CORBA::Any &, TAO::PrioritySpecification *&); // Any operators for interface TAO::ClientPriorityPolicy void TAO_Export operator<<= (CORBA::Any &, TAO::ClientPriorityPolicy_ptr); CORBA::Boolean TAO_Export operator>>= (const CORBA::Any &, TAO::ClientPriorityPolicy *&); +void TAO_Export operator<<= (CORBA::Any &, const TAO::BufferingConstraint &); // copying version +void TAO_Export operator<<= (CORBA::Any &, TAO::BufferingConstraint*); // noncopying version +CORBA::Boolean TAO_Export operator>>= (const CORBA::Any &, TAO::BufferingConstraint *&); +// Any operators for interface TAO::BufferingConstraintPolicy +void operator<<= (CORBA::Any &, TAO::BufferingConstraintPolicy_ptr); +CORBA::Boolean operator>>= (const CORBA::Any &, TAO::BufferingConstraintPolicy *&); + +#endif /* TAO_HAS_CORBA_MESSAGING */ #ifndef __ACE_INLINE__ +#if defined (TAO_HAS_CORBA_MESSAGING) + CORBA::Boolean TAO_Export operator<< (TAO_OutputCDR &, const TAO::PrioritySpecification &); CORBA::Boolean TAO_Export operator>> (TAO_InputCDR &, TAO::PrioritySpecification &); +CORBA::Boolean TAO_Export operator<< (TAO_OutputCDR &, const TAO::BufferingConstraint &); +CORBA::Boolean TAO_Export operator>> (TAO_InputCDR &, TAO::BufferingConstraint &); + +#endif /* TAO_HAS_CORBA_MESSAGING */ #endif /* __ACE_INLINE__ */ diff --git a/TAO/tao/TAOC.i b/TAO/tao/TAOC.i index 81788430060..7ae034a1c5a 100644 --- a/TAO/tao/TAOC.i +++ b/TAO/tao/TAOC.i @@ -11,6 +11,8 @@ // Inline operations for class TAO::PrioritySpecification_var // ************************************************************* +#if defined (TAO_HAS_CORBA_MESSAGING) + ACE_INLINE TAO::PrioritySpecification_var::PrioritySpecification_var (void) // default constructor : ptr_ (0) @@ -67,20 +69,20 @@ TAO::PrioritySpecification_var::operator-> (void) return this->ptr_; } -ACE_INLINE +ACE_INLINE TAO::PrioritySpecification_var::operator const TAO::PrioritySpecification &() const // cast { return *this->ptr_; } -ACE_INLINE -TAO::PrioritySpecification_var::operator TAO::PrioritySpecification &() // cast +ACE_INLINE +TAO::PrioritySpecification_var::operator TAO::PrioritySpecification &() // cast { return *this->ptr_; } -ACE_INLINE -TAO::PrioritySpecification_var::operator TAO::PrioritySpecification &() const// cast +ACE_INLINE +TAO::PrioritySpecification_var::operator TAO::PrioritySpecification &() const// cast { return *this->ptr_; } @@ -97,7 +99,7 @@ TAO::PrioritySpecification_var::inout (void) return *this->ptr_; } -// mapping for fixed size +// mapping for fixed size ACE_INLINE TAO::PrioritySpecification & TAO::PrioritySpecification_var::out (void) { @@ -147,7 +149,7 @@ TAO::ClientPriorityPolicy_var::ClientPriorityPolicy_var (TAO::ClientPriorityPoli : ptr_ (p) {} -ACE_INLINE TAO::ClientPriorityPolicy_ptr +ACE_INLINE TAO::ClientPriorityPolicy_ptr TAO::ClientPriorityPolicy_var::ptr (void) const { return this->ptr_; @@ -183,19 +185,19 @@ TAO::ClientPriorityPolicy_var::operator= (const TAO::ClientPriorityPolicy_var &p return *this; } -ACE_INLINE +ACE_INLINE TAO::ClientPriorityPolicy_var::operator const TAO::ClientPriorityPolicy_ptr &() const // cast { return this->ptr_; } -ACE_INLINE -TAO::ClientPriorityPolicy_var::operator TAO::ClientPriorityPolicy_ptr &() // cast +ACE_INLINE +TAO::ClientPriorityPolicy_var::operator TAO::ClientPriorityPolicy_ptr &() // cast { return this->ptr_; } -ACE_INLINE TAO::ClientPriorityPolicy_ptr +ACE_INLINE TAO::ClientPriorityPolicy_ptr TAO::ClientPriorityPolicy_var::operator-> (void) const { return this->ptr_; @@ -221,7 +223,7 @@ TAO::ClientPriorityPolicy_var::out (void) return this->ptr_; } -ACE_INLINE TAO::ClientPriorityPolicy_ptr +ACE_INLINE TAO::ClientPriorityPolicy_ptr TAO::ClientPriorityPolicy_var::_retn (void) { // yield ownership of managed obj reference @@ -282,7 +284,7 @@ TAO::ClientPriorityPolicy_out::operator= (TAO::ClientPriorityPolicy_ptr p) return *this; } -ACE_INLINE +ACE_INLINE TAO::ClientPriorityPolicy_out::operator TAO::ClientPriorityPolicy_ptr &() // cast { return this->ptr_; @@ -294,7 +296,7 @@ TAO::ClientPriorityPolicy_out::ptr (void) // ptr return this->ptr_; } -ACE_INLINE TAO::ClientPriorityPolicy_ptr +ACE_INLINE TAO::ClientPriorityPolicy_ptr TAO::ClientPriorityPolicy_out::operator-> (void) { return this->ptr_; @@ -313,7 +315,7 @@ ACE_INLINE CORBA::Boolean operator<< (TAO_OutputCDR &strm, const TAO::PrioritySp return 1; else return 0; - + } ACE_INLINE CORBA::Boolean operator>> (TAO_InputCDR &strm, TAO::PrioritySpecification &_tao_aggregate) @@ -326,6 +328,331 @@ ACE_INLINE CORBA::Boolean operator>> (TAO_InputCDR &strm, TAO::PrioritySpecifica return 1; else return 0; - + +} + +// ************************************************************* +// Inline operations for class TAO::BufferingConstraint_var +// ************************************************************* + +ACE_INLINE +TAO::BufferingConstraint_var::BufferingConstraint_var (void) // default constructor + : ptr_ (0) +{} + +ACE_INLINE +TAO::BufferingConstraint_var::BufferingConstraint_var (TAO::BufferingConstraint *p) + : ptr_ (p) +{} + +ACE_INLINE +TAO::BufferingConstraint_var::BufferingConstraint_var (const TAO::BufferingConstraint_var &p) // copy constructor +{ + if (p.ptr_) + ACE_NEW (this->ptr_, TAO::BufferingConstraint (*p.ptr_)); + else + this->ptr_ = 0; +} + +ACE_INLINE +TAO::BufferingConstraint_var::~BufferingConstraint_var (void) // destructor +{ + delete this->ptr_; +} + +ACE_INLINE TAO::BufferingConstraint_var & +TAO::BufferingConstraint_var::operator= (TAO::BufferingConstraint *p) +{ + delete this->ptr_; + this->ptr_ = p; + return *this; +} + +ACE_INLINE TAO::BufferingConstraint_var & +TAO::BufferingConstraint_var::operator= (const TAO::BufferingConstraint_var &p) +{ + if (this != &p) + { + delete this->ptr_; + ACE_NEW_RETURN (this->ptr_, TAO::BufferingConstraint (*p.ptr_), *this); + } + return *this; +} + +ACE_INLINE const TAO::BufferingConstraint * +TAO::BufferingConstraint_var::operator-> (void) const +{ + return this->ptr_; +} + +ACE_INLINE TAO::BufferingConstraint * +TAO::BufferingConstraint_var::operator-> (void) +{ + return this->ptr_; +} + +ACE_INLINE +TAO::BufferingConstraint_var::operator const TAO::BufferingConstraint &() const // cast +{ + return *this->ptr_; +} + +ACE_INLINE +TAO::BufferingConstraint_var::operator TAO::BufferingConstraint &() // cast +{ + return *this->ptr_; +} + +ACE_INLINE +TAO::BufferingConstraint_var::operator TAO::BufferingConstraint &() const// cast +{ + return *this->ptr_; +} + +ACE_INLINE const TAO::BufferingConstraint & +TAO::BufferingConstraint_var::in (void) const +{ + return *this->ptr_; +} + +ACE_INLINE TAO::BufferingConstraint & +TAO::BufferingConstraint_var::inout (void) +{ + return *this->ptr_; +} + +// mapping for fixed size +ACE_INLINE TAO::BufferingConstraint & +TAO::BufferingConstraint_var::out (void) +{ + return *this->ptr_; +} + +ACE_INLINE TAO::BufferingConstraint +TAO::BufferingConstraint_var::_retn (void) +{ + return *this->ptr_; +} + +ACE_INLINE TAO::BufferingConstraint * +TAO::BufferingConstraint_var::ptr (void) const +{ + return this->ptr_; +} + +ACE_INLINE +TAO::BufferingConstraintPolicy::BufferingConstraintPolicy (void) // default constructor +{} + +ACE_INLINE +TAO::BufferingConstraintPolicy::BufferingConstraintPolicy (TAO_Stub *objref, TAO_ServantBase *_tao_servant, CORBA::Boolean _tao_collocated) // constructor + : CORBA_Object (objref, _tao_servant, _tao_collocated) +{} + +ACE_INLINE +TAO::BufferingConstraintPolicy::~BufferingConstraintPolicy (void) // destructor +{} + + +#if !defined (_TAO_BUFFERINGCONSTRAINTPOLICY___VAR_CI_) +#define _TAO_BUFFERINGCONSTRAINTPOLICY___VAR_CI_ + +// ************************************************************* +// Inline operations for class TAO::BufferingConstraintPolicy_var +// ************************************************************* + +ACE_INLINE +TAO::BufferingConstraintPolicy_var::BufferingConstraintPolicy_var (void) // default constructor + : ptr_ (TAO::BufferingConstraintPolicy::_nil ()) +{} + +ACE_INLINE +TAO::BufferingConstraintPolicy_var::BufferingConstraintPolicy_var (TAO::BufferingConstraintPolicy_ptr p) + : ptr_ (p) +{} + +ACE_INLINE TAO::BufferingConstraintPolicy_ptr +TAO::BufferingConstraintPolicy_var::ptr (void) const +{ + return this->ptr_; +} + +ACE_INLINE +TAO::BufferingConstraintPolicy_var::BufferingConstraintPolicy_var (const TAO::BufferingConstraintPolicy_var &p) // copy constructor + : ptr_ (TAO::BufferingConstraintPolicy::_duplicate (p.ptr ())) +{} + +ACE_INLINE +TAO::BufferingConstraintPolicy_var::~BufferingConstraintPolicy_var (void) // destructor +{ + CORBA::release (this->ptr_); +} + +ACE_INLINE TAO::BufferingConstraintPolicy_var & +TAO::BufferingConstraintPolicy_var::operator= (TAO::BufferingConstraintPolicy_ptr p) +{ + CORBA::release (this->ptr_); + this->ptr_ = p; + return *this; +} + +ACE_INLINE TAO::BufferingConstraintPolicy_var & +TAO::BufferingConstraintPolicy_var::operator= (const TAO::BufferingConstraintPolicy_var &p) +{ + if (this != &p) + { + CORBA::release (this->ptr_); + this->ptr_ = TAO::BufferingConstraintPolicy::_duplicate (p.ptr ()); + } + return *this; +} + +ACE_INLINE +TAO::BufferingConstraintPolicy_var::operator const TAO::BufferingConstraintPolicy_ptr &() const // cast +{ + return this->ptr_; +} + +ACE_INLINE +TAO::BufferingConstraintPolicy_var::operator TAO::BufferingConstraintPolicy_ptr &() // cast +{ + return this->ptr_; +} + +ACE_INLINE TAO::BufferingConstraintPolicy_ptr +TAO::BufferingConstraintPolicy_var::operator-> (void) const +{ + return this->ptr_; +} + +ACE_INLINE TAO::BufferingConstraintPolicy_ptr +TAO::BufferingConstraintPolicy_var::in (void) const +{ + return this->ptr_; +} + +ACE_INLINE TAO::BufferingConstraintPolicy_ptr & +TAO::BufferingConstraintPolicy_var::inout (void) +{ + return this->ptr_; +} + +ACE_INLINE TAO::BufferingConstraintPolicy_ptr & +TAO::BufferingConstraintPolicy_var::out (void) +{ + CORBA::release (this->ptr_); + this->ptr_ = TAO::BufferingConstraintPolicy::_nil (); + return this->ptr_; +} + +ACE_INLINE TAO::BufferingConstraintPolicy_ptr +TAO::BufferingConstraintPolicy_var::_retn (void) +{ + // yield ownership of managed obj reference + TAO::BufferingConstraintPolicy_ptr val = this->ptr_; + this->ptr_ = TAO::BufferingConstraintPolicy::_nil (); + return val; +} + + +#endif /* end #if !defined */ + + +#if !defined (_TAO_BUFFERINGCONSTRAINTPOLICY___OUT_CI_) +#define _TAO_BUFFERINGCONSTRAINTPOLICY___OUT_CI_ + +// ************************************************************* +// Inline operations for class TAO::BufferingConstraintPolicy_out +// ************************************************************* + +ACE_INLINE +TAO::BufferingConstraintPolicy_out::BufferingConstraintPolicy_out (TAO::BufferingConstraintPolicy_ptr &p) + : ptr_ (p) +{ + this->ptr_ = TAO::BufferingConstraintPolicy::_nil (); +} + +ACE_INLINE +TAO::BufferingConstraintPolicy_out::BufferingConstraintPolicy_out (TAO::BufferingConstraintPolicy_var &p) // constructor from _var + : ptr_ (p.out ()) +{ + CORBA::release (this->ptr_); + this->ptr_ = TAO::BufferingConstraintPolicy::_nil (); +} + +ACE_INLINE +TAO::BufferingConstraintPolicy_out::BufferingConstraintPolicy_out (const TAO::BufferingConstraintPolicy_out &p) // copy constructor + : ptr_ (ACE_const_cast (TAO::BufferingConstraintPolicy_out&,p).ptr_) +{} + +ACE_INLINE TAO::BufferingConstraintPolicy_out & +TAO::BufferingConstraintPolicy_out::operator= (const TAO::BufferingConstraintPolicy_out &p) +{ + this->ptr_ = ACE_const_cast (TAO::BufferingConstraintPolicy_out&,p).ptr_; + return *this; +} + +ACE_INLINE TAO::BufferingConstraintPolicy_out & +TAO::BufferingConstraintPolicy_out::operator= (const TAO::BufferingConstraintPolicy_var &p) +{ + this->ptr_ = TAO::BufferingConstraintPolicy::_duplicate (p.ptr ()); + return *this; +} + +ACE_INLINE TAO::BufferingConstraintPolicy_out & +TAO::BufferingConstraintPolicy_out::operator= (TAO::BufferingConstraintPolicy_ptr p) +{ + this->ptr_ = p; + return *this; +} + +ACE_INLINE +TAO::BufferingConstraintPolicy_out::operator TAO::BufferingConstraintPolicy_ptr &() // cast +{ + return this->ptr_; +} + +ACE_INLINE TAO::BufferingConstraintPolicy_ptr & +TAO::BufferingConstraintPolicy_out::ptr (void) // ptr +{ + return this->ptr_; +} + +ACE_INLINE TAO::BufferingConstraintPolicy_ptr +TAO::BufferingConstraintPolicy_out::operator-> (void) +{ + return this->ptr_; +} + + +#endif /* end #if !defined */ + +ACE_INLINE CORBA::Boolean operator<< (TAO_OutputCDR &strm, const TAO::BufferingConstraint &_tao_aggregate) +{ + if ( + (strm << _tao_aggregate.mode) && + (strm << _tao_aggregate.timeout) && + (strm << _tao_aggregate.message_count) && + (strm << _tao_aggregate.message_bytes) + ) + return 1; + else + return 0; + +} + +ACE_INLINE CORBA::Boolean operator>> (TAO_InputCDR &strm, TAO::BufferingConstraint &_tao_aggregate) +{ + if ( + (strm >> _tao_aggregate.mode) && + (strm >> _tao_aggregate.timeout) && + (strm >> _tao_aggregate.message_count) && + (strm >> _tao_aggregate.message_bytes) + ) + return 1; + else + return 0; + } +#endif /* TAO_HAS_CORBA_MESSAGING */ diff --git a/TAO/tao/TAOS.cpp b/TAO/tao/TAOS.cpp index b2d011d710f..91c042b3cc4 100644 --- a/TAO/tao/TAOS.cpp +++ b/TAO/tao/TAOS.cpp @@ -13,6 +13,8 @@ #include "TAOS.i" #endif /* !defined INLINE */ +#if defined (TAO_HAS_CORBA_MESSAGING) + // skeleton constructor POA_TAO::ClientPriorityPolicy::ClientPriorityPolicy (void) { @@ -114,3 +116,107 @@ TAO::PrioritySpecification POA_TAO::_tao_direct_collocated_ClientPriorityPolicy: ); } + +// skeleton constructor +POA_TAO::BufferingConstraintPolicy::BufferingConstraintPolicy (void) +{ + +} + +// skeleton destructor +POA_TAO::BufferingConstraintPolicy::~BufferingConstraintPolicy (void) +{ +} + +CORBA::Boolean POA_TAO::BufferingConstraintPolicy::_is_a ( + const char* value, + CORBA::Environment &ACE_TRY_ENV + ) +{ + if ( + (!ACE_OS::strcmp ((char *)value, "IDL:TAO/BufferingConstraintPolicy:1.0")) || + (!ACE_OS::strcmp ((char *)value, "IDL:omg.org/CORBA/Policy:1.0")) || + (!ACE_OS::strcmp ((char *)value, CORBA::_tc_Object->id (ACE_TRY_ENV)))) + return 1; + else + return 0; +} + +void* POA_TAO::BufferingConstraintPolicy::_downcast ( + const char* logical_type_id + ) +{ +if (ACE_OS::strcmp (logical_type_id, "IDL:TAO/BufferingConstraintPolicy:1.0") == 0) + return ACE_static_cast (POA_TAO::BufferingConstraintPolicy_ptr, this); + if (ACE_OS::strcmp (logical_type_id, "IDL:omg.org/CORBA/Policy:1.0") == 0) + return ACE_static_cast (POA_CORBA::Policy_ptr, this); + if (ACE_OS::strcmp (logical_type_id, "IDL:omg.org/CORBA/Object:1.0") == 0) + return ACE_static_cast(PortableServer::Servant, this); + return 0; +} + +const char* POA_TAO::BufferingConstraintPolicy::_interface_repository_id (void) const +{ + return "IDL:TAO/BufferingConstraintPolicy:1.0"; +} + +TAO::BufferingConstraintPolicy* +POA_TAO::BufferingConstraintPolicy::_this (CORBA_Environment &ACE_TRY_ENV) +{ + TAO_Stub *stub = this->_create_stub (ACE_TRY_ENV); + ACE_CHECK_RETURN (0); + TAO::BufferingConstraintPolicy *retval = 0; + ACE_NEW_RETURN ( + retval, + POA_TAO::_tao_direct_collocated_BufferingConstraintPolicy (this, stub), + 0 + ); + return retval; +} + +POA_TAO::_tao_direct_collocated_BufferingConstraintPolicy::_tao_direct_collocated_BufferingConstraintPolicy ( + POA_TAO::BufferingConstraintPolicy_ptr servant, + TAO_Stub *stub + ) + : ACE_NESTED_CLASS (TAO,BufferingConstraintPolicy) (), + ACE_NESTED_CLASS (POA_CORBA,_tao_collocated_Policy) (servant, stub), + CORBA_Object (stub, servant, 1), + servant_ (servant) +{ +} + +CORBA::Boolean POA_TAO::_tao_direct_collocated_BufferingConstraintPolicy::_is_a( + const CORBA::Char *logical_type_id, + CORBA_Environment &ACE_TRY_ENV + ) + +{ + return this->servant_->_is_a (logical_type_id, ACE_TRY_ENV); +} + + +POA_TAO::BufferingConstraintPolicy_ptr POA_TAO::_tao_direct_collocated_BufferingConstraintPolicy::_get_servant (void) const +{ + return this->servant_; +} + +CORBA::Boolean POA_TAO::_tao_direct_collocated_BufferingConstraintPolicy::_non_existent( + CORBA_Environment &ACE_TRY_ENV + ) + +{ + return this->servant_->_non_existent (ACE_TRY_ENV); +} + + +TAO::BufferingConstraint POA_TAO::_tao_direct_collocated_BufferingConstraintPolicy::buffering_constraint ( + CORBA::Environment &ACE_TRY_ENV + ) +{ + return this->servant_->buffering_constraint ( + ACE_TRY_ENV + ); + +} + +#endif /* TAO_HAS_CORBA_MESSAGING */ diff --git a/TAO/tao/TAOS.h b/TAO/tao/TAOS.h index 552922f2e6d..fb168168ab0 100644 --- a/TAO/tao/TAOS.h +++ b/TAO/tao/TAOS.h @@ -7,12 +7,16 @@ // Information about TAO is available at: // http://www.cs.wustl.edu/~schmidt/TAO.html -#ifndef _TAO_IDL__PROJECT_DOC_MARINA_ACE_WRAPPERS_TAO_TAO_TAOS_H_ -#define _TAO_IDL__PROJECT_DOC_MARINA_ACE_WRAPPERS_TAO_TAO_TAOS_H_ +#ifndef _TAO_IDL_TAOS_H_ +#define _TAO_IDL_TAOS_H_ -#include "tao/POA_CORBA.h" #include "TAOC.h" +#if defined (TAO_HAS_CORBA_MESSAGING) + +#include "tao/POA_CORBA.h" + +#endif /* TAO_HAS_CORBA_MESSAGING */ #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once @@ -24,6 +28,9 @@ TAO_NAMESPACE POA_TAO { + +#if defined (TAO_HAS_CORBA_MESSAGING) + class ClientPriorityPolicy; typedef ClientPriorityPolicy *ClientPriorityPolicy_ptr; class TAO_Export ClientPriorityPolicy : public virtual POA_CORBA::Policy @@ -97,6 +104,81 @@ TAO_NAMESPACE POA_TAO #endif /* end #if !defined */ + class BufferingConstraintPolicy; + typedef BufferingConstraintPolicy *BufferingConstraintPolicy_ptr; + class TAO_Export BufferingConstraintPolicy : public virtual POA_CORBA::Policy + { + protected: + BufferingConstraintPolicy (void); + + public: + virtual ~BufferingConstraintPolicy (void); + + + virtual CORBA::Boolean _is_a ( + const char* logical_type_id, + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual void* _downcast ( + const char* logical_type_id + ); + + TAO::BufferingConstraintPolicy *_this ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + virtual const char* _interface_repository_id (void) const; + + virtual TAO::BufferingConstraint buffering_constraint ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ) = 0; + + + }; + + +#if !defined (_TAO_BUFFERINGCONSTRAINTPOLICY___DIRECT_COLLOCATED_SH_) +#define _TAO_BUFFERINGCONSTRAINTPOLICY___DIRECT_COLLOCATED_SH_ + + class TAO_Export _tao_direct_collocated_BufferingConstraintPolicy : public virtual TAO::BufferingConstraintPolicy, + public virtual POA_CORBA::_tao_collocated_Policy + { + public: + _tao_direct_collocated_BufferingConstraintPolicy ( + BufferingConstraintPolicy_ptr servant, + TAO_Stub *stub + ); + virtual CORBA::Boolean _is_a( + const CORBA::Char *logical_type_id, + CORBA_Environment &ACE_TRY_ENV = TAO_default_environment () + ); + + BufferingConstraintPolicy_ptr _get_servant (void) const; + + virtual CORBA::Boolean _non_existent( + CORBA_Environment &ACE_TRY_ENV = TAO_default_environment () + ); + + virtual TAO::BufferingConstraint buffering_constraint ( + CORBA::Environment &ACE_TRY_ENV = + TAO_default_environment () + ); + + + private: + BufferingConstraintPolicy_ptr servant_; + }; + + +#endif /* end #if !defined */ + + +#endif /* TAO_HAS_CORBA_MESSAGING */ + } TAO_NAMESPACE_CLOSE diff --git a/TAO/tao/TimeBase.pidl b/TAO/tao/TimeBase.pidl index d3fd6a84b42..953bf56ef81 100644 --- a/TAO/tao/TimeBase.pidl +++ b/TAO/tao/TimeBase.pidl @@ -64,4 +64,6 @@ module TimeBase }; +#pragma prefix "" + #endif /* TIME_BASE_PIDL */ diff --git a/TAO/tao/Typecode.i b/TAO/tao/Typecode.i index 2fe67862a6b..d71f2a797c0 100644 --- a/TAO/tao/Typecode.i +++ b/TAO/tao/Typecode.i @@ -46,6 +46,10 @@ ACE_INLINE CORBA::Boolean CORBA_TypeCode::equal (const CORBA::TypeCode_ptr tc, CORBA::Environment &ACE_TRY_ENV) const { + // Are the two pointers the same? + if (this == tc) + return 1; + if (this->kind_ != tc->kind (ACE_TRY_ENV)) // simple case return 0; diff --git a/TAO/tao/UIOP_Transport.cpp b/TAO/tao/UIOP_Transport.cpp index 8be9f9598d2..9d75467d1ad 100644 --- a/TAO/tao/UIOP_Transport.cpp +++ b/TAO/tao/UIOP_Transport.cpp @@ -11,6 +11,8 @@ #include "tao/CDR.h" #include "tao/Transport_Mux_Strategy.h" #include "tao/Wait_Strategy.h" +#include "tao/Sync_Strategies.h" +#include "tao/Stub.h" #include "tao/ORB_Core.h" #include "tao/debug.h" @@ -57,6 +59,7 @@ TAO_UIOP_Transport::TAO_UIOP_Transport (TAO_UIOP_Handler_Base *handler, TAO_UIOP_Transport::~TAO_UIOP_Transport (void) { + this->flush_buffered_messages (); } TAO_UIOP_Handler_Base *& @@ -170,7 +173,8 @@ TAO_UIOP_Client_Transport::start_locate (TAO_ORB_Core *orb_core, } int -TAO_UIOP_Client_Transport::send_request (TAO_ORB_Core *orb_core, +TAO_UIOP_Client_Transport::send_request (TAO_Stub *stub, + TAO_ORB_Core *orb_core, TAO_OutputCDR &stream, int two_way, ACE_Time_Value *max_wait_time) @@ -182,7 +186,8 @@ TAO_UIOP_Client_Transport::send_request (TAO_ORB_Core *orb_core, if (TAO_GIOP::send_message (this, stream, orb_core, - max_wait_time) == -1) + max_wait_time, + stub) == -1) return -1; return this->idle_after_send (); @@ -298,6 +303,27 @@ TAO_UIOP_Client_Transport::register_handler (void) // **************************************************************** ssize_t +TAO_UIOP_Transport::send (TAO_Stub *stub, + const ACE_Message_Block *message_block, + ACE_Time_Value *max_wait_time) +{ + if (stub == 0) + { + return this->send (message_block, + max_wait_time); + } + else + { + TAO_Sync_Strategy &sync_strategy = stub->sync_strategy (); + + return sync_strategy.send (*this, + *stub, + message_block, + max_wait_time); + } +} + +ssize_t TAO_UIOP_Transport::send (const ACE_Message_Block *mblk, ACE_Time_Value *max_time_wait) { @@ -341,6 +367,7 @@ TAO_UIOP_Transport::send (const ACE_Message_Block *mblk, (const iovec*) iov, iovcnt, max_time_wait); + if (n <= 0) return n; @@ -369,7 +396,7 @@ TAO_UIOP_Transport::send (const u_char *buf, size_t len, ACE_Time_Value *) { - TAO_FUNCTION_PP_TIMEPROBE (TAO_BIOP_TRANSPORT_SEND_START); + TAO_FUNCTION_PP_TIMEPROBE (TAO_UIOP_TRANSPORT_SEND_START); return this->handler_->peer ().send_n (buf, len); } @@ -389,7 +416,8 @@ TAO_UIOP_Transport::recv (char *buf, // Default action to be taken for send request. int -TAO_UIOP_Transport::send_request (TAO_ORB_Core * /* orb_core */, +TAO_UIOP_Transport::send_request (TAO_Stub *, + TAO_ORB_Core * /* orb_core */, TAO_OutputCDR & /* stream */, int /* twoway */, ACE_Time_Value * /* max_wait_time */) diff --git a/TAO/tao/UIOP_Transport.h b/TAO/tao/UIOP_Transport.h index a9d7363e6e6..6b0aed79253 100644 --- a/TAO/tao/UIOP_Transport.h +++ b/TAO/tao/UIOP_Transport.h @@ -63,6 +63,9 @@ public: virtual void close_connection (void); virtual int idle (void); virtual ACE_HANDLE handle (void); + virtual ssize_t send (TAO_Stub *stub, + const ACE_Message_Block *mblk, + ACE_Time_Value *s = 0); virtual ssize_t send (const ACE_Message_Block *mblk, ACE_Time_Value *s = 0); virtual ssize_t send (const u_char *buf, @@ -71,7 +74,8 @@ public: virtual ssize_t recv (char *buf, size_t len, ACE_Time_Value *s = 0); - virtual int send_request (TAO_ORB_Core *orb_core, + virtual int send_request (TAO_Stub *stub, + TAO_ORB_Core *orb_core , TAO_OutputCDR &stream, int twoway, ACE_Time_Value *max_wait_time); @@ -118,7 +122,8 @@ public: TAO_OutputCDR &output, CORBA::Environment &ACE_TRY_ENV = TAO_default_environment ()) ACE_THROW_SPEC ((CORBA::SystemException)); - virtual int send_request (TAO_ORB_Core *orb_core, + virtual int send_request (TAO_Stub *stub, + TAO_ORB_Core *orb_core, TAO_OutputCDR &stream, int twoway, ACE_Time_Value *max_wait_time); diff --git a/TAO/tao/orbconf.h b/TAO/tao/orbconf.h index 4b85c9dc164..de8dda6579b 100644 --- a/TAO/tao/orbconf.h +++ b/TAO/tao/orbconf.h @@ -419,7 +419,10 @@ and should not be set by the user. Please use TAO_HAS_REMOTE_POLICIES instead. // Define the policy types as literals, so they can be used in switch // statements + #define TAO_CLIENT_PRIORITY_POLICY_TYPE 0x54410000 +#define TAO_BUFFERING_CONSTRAINT_POLICY_TYPE 0x54410001 + #define TAO_MESSAGING_REBIND_POLICY_TYPE 23 #define TAO_MESSAGING_SYNC_SCOPE_POLICY_TYPE 24 #define TAO_MESSAGING_REQUEST_PRIORITY_POLICY_TYPE 25 diff --git a/TAO/version_tests.dsw b/TAO/version_tests.dsw index da174d795ad..246ff3624f0 100644 --- a/TAO/version_tests.dsw +++ b/TAO/version_tests.dsw @@ -219,6 +219,42 @@ Package=<4> ###############################################################################
+Project: "Buffered_Oneways Client"=.\examples\Buffered_Oneways\client.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name TAO DLL
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name TAO_IDL Compiler
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "Buffered_Oneways Server"=.\examples\Buffered_Oneways\server.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name TAO DLL
+ End Project Dependency
+ Begin Project Dependency
+ Project_Dep_Name TAO_IDL Compiler
+ End Project Dependency
+}}}
+
+###############################################################################
+
Project: "Callback Quoter Consumer"=.\examples\Callback_Quoter\Consumer.dsp - Package Owner=<4>
Package=<5>
|