summaryrefslogtreecommitdiff
path: root/TAO
diff options
context:
space:
mode:
authorirfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-10-08 17:12:45 +0000
committerirfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-10-08 17:12:45 +0000
commit85b3931f3331302c4dbf6205595c8cccfdca705e (patch)
tree63a7e45078230fc5b356cbdd80cf1adf9ec82678 /TAO
parenteb6f9152072284b18cd63401807f1db2619b853c (diff)
downloadATCD-85b3931f3331302c4dbf6205595c8cccfdca705e.tar.gz
ChangeLogTag:Fri Oct 08 12:05:03 1999 Irfan Pyarali <irfan@cs.wustl.edu>
Diffstat (limited to 'TAO')
-rw-r--r--TAO/ChangeLog-99c74
-rw-r--r--TAO/examples/Buffered_Oneways/Buffered_Oneways.dsw40
-rw-r--r--TAO/examples/Buffered_Oneways/Makefile2062
-rw-r--r--TAO/examples/Buffered_Oneways/README26
-rw-r--r--TAO/examples/Buffered_Oneways/client.cpp327
-rw-r--r--TAO/examples/Buffered_Oneways/client.dsp193
-rwxr-xr-xTAO/examples/Buffered_Oneways/run_test.pl43
-rw-r--r--TAO/examples/Buffered_Oneways/server.cpp112
-rw-r--r--TAO/examples/Buffered_Oneways/server.dsp205
-rw-r--r--TAO/examples/Buffered_Oneways/test.idl10
-rw-r--r--TAO/examples/Buffered_Oneways/test_i.cpp28
-rw-r--r--TAO/examples/Buffered_Oneways/test_i.h43
-rw-r--r--TAO/examples/Makefile7
-rw-r--r--TAO/examples/POA/Generic_Servant/client.cpp26
-rw-r--r--TAO/examples/TAO_Examples.dsw25
-rw-r--r--TAO/tao/Buffering_Constraint_Policy.cpp99
-rw-r--r--TAO/tao/Buffering_Constraint_Policy.h88
-rw-r--r--TAO/tao/Buffering_Constraint_Policy.i1
-rw-r--r--TAO/tao/Client_Priority_Policy.cpp6
-rw-r--r--TAO/tao/Client_Priority_Policy.h18
-rw-r--r--TAO/tao/Client_Priority_Policy.i4
-rw-r--r--TAO/tao/GIOP.cpp7
-rw-r--r--TAO/tao/GIOP.h3
-rw-r--r--TAO/tao/IIOP_Transport.cpp43
-rw-r--r--TAO/tao/IIOP_Transport.h9
-rw-r--r--TAO/tao/Invocation.cpp16
-rw-r--r--TAO/tao/Makefile6
-rw-r--r--TAO/tao/Messaging.pidl3
-rw-r--r--TAO/tao/MessagingC.cpp17
-rw-r--r--TAO/tao/MessagingC.h67
-rw-r--r--TAO/tao/Messaging_Policy_i.cpp92
-rw-r--r--TAO/tao/Messaging_Policy_i.h48
-rw-r--r--TAO/tao/Messaging_Policy_i.i9
-rw-r--r--TAO/tao/ORB.cpp86
-rw-r--r--TAO/tao/ORB_Core.cpp75
-rw-r--r--TAO/tao/ORB_Core.h54
-rw-r--r--TAO/tao/ORB_Core.i28
-rw-r--r--TAO/tao/Pluggable.cpp42
-rw-r--r--TAO/tao/Pluggable.h18
-rw-r--r--TAO/tao/Policy_Manager.cpp245
-rw-r--r--TAO/tao/Policy_Manager.h44
-rw-r--r--TAO/tao/Policy_Manager.i71
-rw-r--r--TAO/tao/Stub.cpp123
-rw-r--r--TAO/tao/Stub.h18
-rw-r--r--TAO/tao/Sync_Strategies.cpp221
-rw-r--r--TAO/tao/Sync_Strategies.h86
-rw-r--r--TAO/tao/Sync_Strategies.i2
-rw-r--r--TAO/tao/TAO.dsp314
-rw-r--r--TAO/tao/TAO.pidl43
-rw-r--r--TAO/tao/TAOC.cpp269
-rw-r--r--TAO/tao/TAOC.h214
-rw-r--r--TAO/tao/TAOC.i359
-rw-r--r--TAO/tao/TAOS.cpp106
-rw-r--r--TAO/tao/TAOS.h88
-rw-r--r--TAO/tao/TimeBase.pidl2
-rw-r--r--TAO/tao/Typecode.i4
-rw-r--r--TAO/tao/UIOP_Transport.cpp36
-rw-r--r--TAO/tao/UIOP_Transport.h9
-rw-r--r--TAO/tao/orbconf.h3
-rw-r--r--TAO/version_tests.dsw36
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>