summaryrefslogtreecommitdiff
path: root/examples/Service_Configurator
diff options
context:
space:
mode:
Diffstat (limited to 'examples/Service_Configurator')
-rw-r--r--examples/Service_Configurator/IPC-tests/Makefile24
-rw-r--r--examples/Service_Configurator/IPC-tests/README112
-rw-r--r--examples/Service_Configurator/IPC-tests/client/Makefile306
-rw-r--r--examples/Service_Configurator/IPC-tests/client/broadcast_client_test.cpp56
-rw-r--r--examples/Service_Configurator/IPC-tests/client/local_data22
-rw-r--r--examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp94
-rw-r--r--examples/Service_Configurator/IPC-tests/client/local_fifo_client_test.cpp85
-rw-r--r--examples/Service_Configurator/IPC-tests/client/local_pipe_client_test.cpp122
-rw-r--r--examples/Service_Configurator/IPC-tests/client/local_spipe_client_test.cpp88
-rw-r--r--examples/Service_Configurator/IPC-tests/client/local_stream_client_test.cpp85
-rw-r--r--examples/Service_Configurator/IPC-tests/client/remote_data22
-rw-r--r--examples/Service_Configurator/IPC-tests/client/remote_data122
-rw-r--r--examples/Service_Configurator/IPC-tests/client/remote_data222
-rw-r--r--examples/Service_Configurator/IPC-tests/client/remote_data322
-rw-r--r--examples/Service_Configurator/IPC-tests/client/remote_data422
-rw-r--r--examples/Service_Configurator/IPC-tests/client/remote_dgram_client_test.cpp78
-rw-r--r--examples/Service_Configurator/IPC-tests/client/remote_service_directory_test.cpp80
-rw-r--r--examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.cpp105
-rw-r--r--examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp96
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.cpp36
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.h41
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.i110
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.cpp36
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.h41
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.i113
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.cpp15
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.h43
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.i109
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.cpp36
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.h42
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.i94
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.cpp36
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.h44
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.i136
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.cpp16
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.h45
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.i118
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.cpp17
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.h48
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.i134
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.cpp36
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.h40
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.i106
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.cpp39
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.h46
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.i124
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp200
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.h76
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.i1
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_Timeout.cpp34
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_Timeout.h36
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Handle_Timeout.i74
-rw-r--r--examples/Service_Configurator/IPC-tests/server/Makefile1016
-rw-r--r--examples/Service_Configurator/IPC-tests/server/server_test.cpp31
-rw-r--r--examples/Service_Configurator/IPC-tests/server/svc.conf19
-rw-r--r--examples/Service_Configurator/Makefile22
-rw-r--r--examples/Service_Configurator/Misc/Makefile105
-rw-r--r--examples/Service_Configurator/Misc/Timer_Service.cpp40
-rw-r--r--examples/Service_Configurator/Misc/Timer_Service.h16
-rw-r--r--examples/Service_Configurator/Misc/main.cpp24
-rw-r--r--examples/Service_Configurator/Misc/svc.conf1
61 files changed, 4859 insertions, 0 deletions
diff --git a/examples/Service_Configurator/IPC-tests/Makefile b/examples/Service_Configurator/IPC-tests/Makefile
new file mode 100644
index 00000000000..a90224788d8
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/Makefile
@@ -0,0 +1,24 @@
+#----------------------------------------------------------------------------
+# @(#)Makefile 1.1 10/18/96
+#
+# Makefile for the IPC tests
+#----------------------------------------------------------------------------
+
+#----------------------------------------------------------------------------
+# Local macros
+#----------------------------------------------------------------------------
+
+INFO =
+
+DIRS = client \
+ server
+
+#----------------------------------------------------------------------------
+# Include macros and targets
+#----------------------------------------------------------------------------
+
+include $(WRAPPER_ROOT)/include/makeinclude/wrapper_macros.GNU
+include $(WRAPPER_ROOT)/include/makeinclude/macros.GNU
+include $(WRAPPER_ROOT)/include/makeinclude/rules.common.GNU
+include $(WRAPPER_ROOT)/include/makeinclude/rules.nested.GNU
+include $(WRAPPER_ROOT)/include/makeinclude/rules.nolocal.GNU
diff --git a/examples/Service_Configurator/IPC-tests/README b/examples/Service_Configurator/IPC-tests/README
new file mode 100644
index 00000000000..4af5114358a
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/README
@@ -0,0 +1,112 @@
+This file describes how to invoke the Reactor client/server tests in
+the $WRAPPER_ROOT/tests/Reactor/{client,server} directories.
+
+These tests exercise all of the IPC_SAP communication mechanisms, the
+Reactor event demultiplexor, and the Service Configurator dynamic
+service configuration framework. To gain a deeper understanding of
+what is going on, you should read the IPC_SAP.ps, reactor-[1-3].ps,
+and service_configurator.ps papers available for anonymous ftp from
+ics.uci.edu in the ftp/gnu/C++_wrappers_doc.tar.Za[a-c] files.
+
+The key to running the Reactor client/server tests is to understand
+the purpose of the svc.conf file located in the
+$WRAPPER_ROOT/tests/Reactor/server directory. This file contains a
+list of services that may be dynamically configured into a the address
+space of a network daemon process. If you look at the example
+svc.conf file included in the Reactor tests you'll see that most of
+the entries are commented out (the comment symbol is the '#', which is
+an "ignore until end-of-line comment" with the same semantics as the
+UNIX C and Bourne shells). Before reading any further, take a look at
+this svc.conf file with your favorite editor or file browser.
+
+There are several types of entries in this file. The two most
+important are the lines beginning with the keywords "static" and
+"dynamic". For example, the first non-commented line says:
+
+static Svc_Manager "-d -p 3911"
+
+When this line is parsed at startup time by the Service Configurator
+object in the ./server_test executable, it causes the pre-configured
+Svc_Manager object to be initialized with an "argv" argument of "-d -p
+3911." This results in TCP port 3911 being created to listen
+connection requests from clients. To see how this works do the
+following:
+
+1. Comment out all the other lines except
+
+static Svc_Manager "-d -p 3911"
+
+ in the svc.conf file
+
+2. Start up the ./server_test executable in one window, as follows:
+
+ % ./server_test -d
+
+3. Make another window on the *same* host and cd to the ../client
+ directory
+
+4. Run the ./remote_service_directory_test program as follows:
+
+ % ./remote_service_directory_test -p 3911 -h localhost
+
+If everything has been compiled and initialized correctly, you should
+get the following message:
+
+ Svc_Manager 3911/tcp # lists all services in the daemon
+
+This message is telling you that the Svc_Manager is currently the only
+service that is active within the ./server_test program. To configure
+and activate another service dynamically, perform the following steps:
+
+1. *Without* shutting down the ./server_test program, edit the svc.conf
+ file. Comment out the Svc_Manager line by adding a '#' at the front, i.e.:
+
+# static Svc_Manager "-d -p 3911"
+
+ and then uncomment the second line:
+
+dynamic Remote_Brdcast Service_Object * .obj/Handle_Broadcast.so:remote_broadcast "-p 10001"
+
+2. Send the SIGHUP signal to the process running the ./server_test program
+ (use "ps -gux" on SunOS 4.x or "ps -elf" on SunOS 5.x to find the
+ correct process id). This will cause the ./server_test program to
+ reconfigure itself based on the new contents of the svc.conf file.
+ After reconfiguration, you'll now have a second active service in
+ the address space of the ./server_test daemon. To see this, rerun
+ the remote_service_directory_test command, e.g.:
+
+ % ./remote_service_directory_test -p 3911 -h localhost
+
+ You should now see the following output:
+
+ Svc_Manager 3911/tcp # lists all services in the daemon
+ Remote_Brdcast 10001/udp # tests broadcasting
+
+ which indicates that the remote broadcast service is now active.
+
+3. To test the remote broadcast service, run the following program
+ in the ../client directory:
+
+ % ./broadcast_client_test -p 10001
+
+ This should cause the window running the ./server_test to
+ display the following output:
+
+ received broadcast datagram from host spare.ics.uci.edu
+ ----------------------------------------
+ testing socket broadcast service
+ ----------------------------------------
+
+If you want to run other tests, using other configurations, simply
+uncomment the appropriate lines in the svc.conf file and experiment
+with the corresponding test drivers in the ../client directory. All
+the source code is available so once you get the hang of what is
+happening, you might want to take a look at how it is all implemented.
+I think you'll be surprised at how much of the ACE framework code is
+reused for each different service. Moreover, writing a new service is
+often simply a matter of copying an existing file and filling in the
+behavior of some of the methods (e.g., the handle_input() method and
+the init() method).
+
+The service_configurator.ps paper and the ACE.ps paper describe the
+details of the Service Configurator framework.
diff --git a/examples/Service_Configurator/IPC-tests/client/Makefile b/examples/Service_Configurator/IPC-tests/client/Makefile
new file mode 100644
index 00000000000..d6fbca0eeac
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/client/Makefile
@@ -0,0 +1,306 @@
+#----------------------------------------------------------------------------
+# @(#)Makefile 1.1 10/18/96
+#
+# Makefile for the client-side of the primary Reactor tests
+#----------------------------------------------------------------------------
+
+#----------------------------------------------------------------------------
+# Local macros
+#----------------------------------------------------------------------------
+
+BIN = local_dgram_client_test \
+ local_stream_client_test \
+ local_pipe_client_test \
+ remote_stream_client_test \
+ remote_thr_stream_client_test \
+ remote_dgram_client_test \
+ local_fifo_client_test \
+ broadcast_client_test \
+ local_spipe_client_test \
+ remote_service_directory_test
+
+LSRC = $(addsuffix .cpp,$(BIN))
+
+LDLIBS =
+
+VLDLIBS = $(LDLIBS:%=%$(VAR))
+
+BUILD = $(VBIN)
+
+INSTALL =
+
+#----------------------------------------------------------------------------
+# Include macros and targets
+#----------------------------------------------------------------------------
+
+include $(WRAPPER_ROOT)/include/makeinclude/wrapper_macros.GNU
+include $(WRAPPER_ROOT)/include/makeinclude/macros.GNU
+include $(WRAPPER_ROOT)/include/makeinclude/rules.common.GNU
+include $(WRAPPER_ROOT)/include/makeinclude/rules.nonested.GNU
+include $(WRAPPER_ROOT)/include/makeinclude/rules.bin.GNU
+include $(WRAPPER_ROOT)/include/makeinclude/rules.local.GNU
+
+#----------------------------------------------------------------------------
+# Local targets
+#----------------------------------------------------------------------------
+
+#----------------------------------------------------------------------------
+# Dependencies
+#----------------------------------------------------------------------------
+# DO NOT DELETE THIS LINE -- g++dep uses it.
+# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
+
+.obj/local_dgram_client_test.o .shobj/local_dgram_client_test.so: local_dgram_client_test.cpp \
+ $(WRAPPER_ROOT)/ace/LSOCK_CODgram.h \
+ $(WRAPPER_ROOT)/ace/LSOCK.h \
+ $(WRAPPER_ROOT)/ace/SOCK.h \
+ $(WRAPPER_ROOT)/ace/ACE.h \
+ $(WRAPPER_ROOT)/ace/OS.h \
+ $(WRAPPER_ROOT)/ace/Time_Value.h \
+ $(WRAPPER_ROOT)/ace/config.h \
+ $(WRAPPER_ROOT)/ace/Trace.h \
+ $(WRAPPER_ROOT)/ace/ACE.i \
+ $(WRAPPER_ROOT)/ace/Log_Msg.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.h \
+ $(WRAPPER_ROOT)/ace/Log_Priority.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.i \
+ $(WRAPPER_ROOT)/ace/Addr.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.i \
+ $(WRAPPER_ROOT)/ace/SOCK.i \
+ $(WRAPPER_ROOT)/ace/LSOCK.i \
+ $(WRAPPER_ROOT)/ace/SOCK_CODgram.h \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.h \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.i \
+ $(WRAPPER_ROOT)/ace/SOCK_CODgram.i \
+ $(WRAPPER_ROOT)/ace/LSOCK_CODgram.i \
+ $(WRAPPER_ROOT)/ace/LSOCK_Dgram.h \
+ $(WRAPPER_ROOT)/ace/SOCK_Dgram.h \
+ $(WRAPPER_ROOT)/ace/SOCK_Dgram.i \
+ $(WRAPPER_ROOT)/ace/LSOCK_Dgram.i \
+ $(WRAPPER_ROOT)/ace/UNIX_Addr.h \
+ $(WRAPPER_ROOT)/ace/Get_Opt.h
+.obj/local_stream_client_test.o .shobj/local_stream_client_test.so: local_stream_client_test.cpp \
+ $(WRAPPER_ROOT)/ace/LSOCK_Connector.h \
+ $(WRAPPER_ROOT)/ace/SOCK_Connector.h \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.h \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.h \
+ $(WRAPPER_ROOT)/ace/SOCK.h \
+ $(WRAPPER_ROOT)/ace/ACE.h \
+ $(WRAPPER_ROOT)/ace/OS.h \
+ $(WRAPPER_ROOT)/ace/Time_Value.h \
+ $(WRAPPER_ROOT)/ace/config.h \
+ $(WRAPPER_ROOT)/ace/Trace.h \
+ $(WRAPPER_ROOT)/ace/ACE.i \
+ $(WRAPPER_ROOT)/ace/Log_Msg.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.h \
+ $(WRAPPER_ROOT)/ace/Log_Priority.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.i \
+ $(WRAPPER_ROOT)/ace/Addr.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.i \
+ $(WRAPPER_ROOT)/ace/SOCK.i \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.i \
+ $(WRAPPER_ROOT)/ace/INET_Addr.h \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.i \
+ $(WRAPPER_ROOT)/ace/SOCK_Connector.i \
+ $(WRAPPER_ROOT)/ace/LSOCK_Stream.h \
+ $(WRAPPER_ROOT)/ace/LSOCK.h \
+ $(WRAPPER_ROOT)/ace/LSOCK.i \
+ $(WRAPPER_ROOT)/ace/LSOCK_Stream.i \
+ $(WRAPPER_ROOT)/ace/UNIX_Addr.h \
+ $(WRAPPER_ROOT)/ace/LSOCK_Connector.i \
+ $(WRAPPER_ROOT)/ace/Get_Opt.h
+.obj/local_pipe_client_test.o .shobj/local_pipe_client_test.so: local_pipe_client_test.cpp \
+ $(WRAPPER_ROOT)/ace/LSOCK_Connector.h \
+ $(WRAPPER_ROOT)/ace/SOCK_Connector.h \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.h \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.h \
+ $(WRAPPER_ROOT)/ace/SOCK.h \
+ $(WRAPPER_ROOT)/ace/ACE.h \
+ $(WRAPPER_ROOT)/ace/OS.h \
+ $(WRAPPER_ROOT)/ace/Time_Value.h \
+ $(WRAPPER_ROOT)/ace/config.h \
+ $(WRAPPER_ROOT)/ace/Trace.h \
+ $(WRAPPER_ROOT)/ace/ACE.i \
+ $(WRAPPER_ROOT)/ace/Log_Msg.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.h \
+ $(WRAPPER_ROOT)/ace/Log_Priority.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.i \
+ $(WRAPPER_ROOT)/ace/Addr.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.i \
+ $(WRAPPER_ROOT)/ace/SOCK.i \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.i \
+ $(WRAPPER_ROOT)/ace/INET_Addr.h \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.i \
+ $(WRAPPER_ROOT)/ace/SOCK_Connector.i \
+ $(WRAPPER_ROOT)/ace/LSOCK_Stream.h \
+ $(WRAPPER_ROOT)/ace/LSOCK.h \
+ $(WRAPPER_ROOT)/ace/LSOCK.i \
+ $(WRAPPER_ROOT)/ace/LSOCK_Stream.i \
+ $(WRAPPER_ROOT)/ace/UNIX_Addr.h \
+ $(WRAPPER_ROOT)/ace/LSOCK_Connector.i \
+ $(WRAPPER_ROOT)/ace/Get_Opt.h
+.obj/remote_stream_client_test.o .shobj/remote_stream_client_test.so: remote_stream_client_test.cpp \
+ $(WRAPPER_ROOT)/ace/Mem_Map.h \
+ $(WRAPPER_ROOT)/ace/ACE.h \
+ $(WRAPPER_ROOT)/ace/OS.h \
+ $(WRAPPER_ROOT)/ace/Time_Value.h \
+ $(WRAPPER_ROOT)/ace/config.h \
+ $(WRAPPER_ROOT)/ace/Trace.h \
+ $(WRAPPER_ROOT)/ace/ACE.i \
+ $(WRAPPER_ROOT)/ace/Log_Msg.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.h \
+ $(WRAPPER_ROOT)/ace/Log_Priority.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.i \
+ $(WRAPPER_ROOT)/ace/SOCK_Connector.h \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.h \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.h \
+ $(WRAPPER_ROOT)/ace/SOCK.h \
+ $(WRAPPER_ROOT)/ace/Addr.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.i \
+ $(WRAPPER_ROOT)/ace/SOCK.i \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.i \
+ $(WRAPPER_ROOT)/ace/INET_Addr.h \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.i \
+ $(WRAPPER_ROOT)/ace/SOCK_Connector.i \
+ $(WRAPPER_ROOT)/ace/SOCK_CODgram.h \
+ $(WRAPPER_ROOT)/ace/SOCK_CODgram.i \
+ $(WRAPPER_ROOT)/ace/Get_Opt.h
+.obj/remote_thr_stream_client_test.o .shobj/remote_thr_stream_client_test.so: remote_thr_stream_client_test.cpp \
+ $(WRAPPER_ROOT)/ace/Mem_Map.h \
+ $(WRAPPER_ROOT)/ace/ACE.h \
+ $(WRAPPER_ROOT)/ace/OS.h \
+ $(WRAPPER_ROOT)/ace/Time_Value.h \
+ $(WRAPPER_ROOT)/ace/config.h \
+ $(WRAPPER_ROOT)/ace/Trace.h \
+ $(WRAPPER_ROOT)/ace/ACE.i \
+ $(WRAPPER_ROOT)/ace/Log_Msg.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.h \
+ $(WRAPPER_ROOT)/ace/Log_Priority.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.i \
+ $(WRAPPER_ROOT)/ace/TLI_Connector.h \
+ $(WRAPPER_ROOT)/ace/TLI_Stream.h \
+ $(WRAPPER_ROOT)/ace/TLI.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.i \
+ $(WRAPPER_ROOT)/ace/Addr.h \
+ $(WRAPPER_ROOT)/ace/TLI.i \
+ $(WRAPPER_ROOT)/ace/INET_Addr.h \
+ $(WRAPPER_ROOT)/ace/TLI_Stream.i \
+ $(WRAPPER_ROOT)/ace/TLI_Connector.i \
+ $(WRAPPER_ROOT)/ace/Get_Opt.h
+.obj/remote_dgram_client_test.o .shobj/remote_dgram_client_test.so: remote_dgram_client_test.cpp \
+ $(WRAPPER_ROOT)/ace/Mem_Map.h \
+ $(WRAPPER_ROOT)/ace/ACE.h \
+ $(WRAPPER_ROOT)/ace/OS.h \
+ $(WRAPPER_ROOT)/ace/Time_Value.h \
+ $(WRAPPER_ROOT)/ace/config.h \
+ $(WRAPPER_ROOT)/ace/Trace.h \
+ $(WRAPPER_ROOT)/ace/ACE.i \
+ $(WRAPPER_ROOT)/ace/Log_Msg.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.h \
+ $(WRAPPER_ROOT)/ace/Log_Priority.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.i \
+ $(WRAPPER_ROOT)/ace/SOCK_Dgram.h \
+ $(WRAPPER_ROOT)/ace/SOCK.h \
+ $(WRAPPER_ROOT)/ace/Addr.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.i \
+ $(WRAPPER_ROOT)/ace/SOCK.i \
+ $(WRAPPER_ROOT)/ace/SOCK_Dgram.i \
+ $(WRAPPER_ROOT)/ace/INET_Addr.h \
+ $(WRAPPER_ROOT)/ace/Get_Opt.h
+.obj/local_fifo_client_test.o .shobj/local_fifo_client_test.so: local_fifo_client_test.cpp \
+ $(WRAPPER_ROOT)/ace/Mem_Map.h \
+ $(WRAPPER_ROOT)/ace/ACE.h \
+ $(WRAPPER_ROOT)/ace/OS.h \
+ $(WRAPPER_ROOT)/ace/Time_Value.h \
+ $(WRAPPER_ROOT)/ace/config.h \
+ $(WRAPPER_ROOT)/ace/Trace.h \
+ $(WRAPPER_ROOT)/ace/ACE.i \
+ $(WRAPPER_ROOT)/ace/Log_Msg.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.h \
+ $(WRAPPER_ROOT)/ace/Log_Priority.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.i \
+ $(WRAPPER_ROOT)/ace/FIFO_Send_Msg.h \
+ $(WRAPPER_ROOT)/ace/FIFO_Send.h \
+ $(WRAPPER_ROOT)/ace/FIFO.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.i \
+ $(WRAPPER_ROOT)/ace/FIFO_Send.i \
+ $(WRAPPER_ROOT)/ace/FIFO_Send_Msg.i \
+ $(WRAPPER_ROOT)/ace/Get_Opt.h
+.obj/broadcast_client_test.o .shobj/broadcast_client_test.so: broadcast_client_test.cpp \
+ $(WRAPPER_ROOT)/ace/INET_Addr.h \
+ $(WRAPPER_ROOT)/ace/ACE.h \
+ $(WRAPPER_ROOT)/ace/OS.h \
+ $(WRAPPER_ROOT)/ace/Time_Value.h \
+ $(WRAPPER_ROOT)/ace/config.h \
+ $(WRAPPER_ROOT)/ace/Trace.h \
+ $(WRAPPER_ROOT)/ace/ACE.i \
+ $(WRAPPER_ROOT)/ace/Log_Msg.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.h \
+ $(WRAPPER_ROOT)/ace/Log_Priority.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.i \
+ $(WRAPPER_ROOT)/ace/Addr.h \
+ $(WRAPPER_ROOT)/ace/SOCK_Dgram_Bcast.h \
+ $(WRAPPER_ROOT)/ace/SOCK_Dgram.h \
+ $(WRAPPER_ROOT)/ace/SOCK.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.i \
+ $(WRAPPER_ROOT)/ace/SOCK.i \
+ $(WRAPPER_ROOT)/ace/SOCK_Dgram.i \
+ $(WRAPPER_ROOT)/ace/SOCK_Dgram_Bcast.i \
+ $(WRAPPER_ROOT)/ace/Get_Opt.h
+.obj/local_spipe_client_test.o .shobj/local_spipe_client_test.so: local_spipe_client_test.cpp \
+ $(WRAPPER_ROOT)/ace/Mem_Map.h \
+ $(WRAPPER_ROOT)/ace/ACE.h \
+ $(WRAPPER_ROOT)/ace/OS.h \
+ $(WRAPPER_ROOT)/ace/Time_Value.h \
+ $(WRAPPER_ROOT)/ace/config.h \
+ $(WRAPPER_ROOT)/ace/Trace.h \
+ $(WRAPPER_ROOT)/ace/ACE.i \
+ $(WRAPPER_ROOT)/ace/Log_Msg.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.h \
+ $(WRAPPER_ROOT)/ace/Log_Priority.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.i \
+ $(WRAPPER_ROOT)/ace/SPIPE_Connector.h \
+ $(WRAPPER_ROOT)/ace/SPIPE_Stream.h \
+ $(WRAPPER_ROOT)/ace/SPIPE.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.i \
+ $(WRAPPER_ROOT)/ace/SPIPE_Addr.h \
+ $(WRAPPER_ROOT)/ace/Addr.h \
+ $(WRAPPER_ROOT)/ace/SPIPE.i \
+ $(WRAPPER_ROOT)/ace/SPIPE_Stream.i \
+ $(WRAPPER_ROOT)/ace/SPIPE_Connector.i \
+ $(WRAPPER_ROOT)/ace/Get_Opt.h
+.obj/remote_service_directory_test.o .shobj/remote_service_directory_test.so: remote_service_directory_test.cpp \
+ $(WRAPPER_ROOT)/ace/Log_Msg.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.h \
+ $(WRAPPER_ROOT)/ace/ACE.h \
+ $(WRAPPER_ROOT)/ace/OS.h \
+ $(WRAPPER_ROOT)/ace/Time_Value.h \
+ $(WRAPPER_ROOT)/ace/config.h \
+ $(WRAPPER_ROOT)/ace/Trace.h \
+ $(WRAPPER_ROOT)/ace/ACE.i \
+ $(WRAPPER_ROOT)/ace/Log_Priority.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.i \
+ $(WRAPPER_ROOT)/ace/SOCK_Connector.h \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.h \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.h \
+ $(WRAPPER_ROOT)/ace/SOCK.h \
+ $(WRAPPER_ROOT)/ace/Addr.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.i \
+ $(WRAPPER_ROOT)/ace/SOCK.i \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.i \
+ $(WRAPPER_ROOT)/ace/INET_Addr.h \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.i \
+ $(WRAPPER_ROOT)/ace/SOCK_Connector.i \
+ $(WRAPPER_ROOT)/ace/Get_Opt.h
+
+# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/examples/Service_Configurator/IPC-tests/client/broadcast_client_test.cpp b/examples/Service_Configurator/IPC-tests/client/broadcast_client_test.cpp
new file mode 100644
index 00000000000..57d417441f7
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/client/broadcast_client_test.cpp
@@ -0,0 +1,56 @@
+/* Tests out the broadcast service of the
+// @(#)broadcast_client_test.cpp 1.1 10/18/96
+
+ Internet domain IPC-SAP dgram abstraction. */
+
+#include "ace/INET_Addr.h"
+#include "ace/SOCK_Dgram_Bcast.h"
+#include "ace/Log_Msg.h"
+#include "ace/Get_Opt.h"
+
+/* Name of the program. */
+static char *program_name;
+
+/* Port number to use. */
+static unsigned short broadcast_port_number = ACE_DEFAULT_BROADCAST_PORT;
+
+static void
+print_usage_and_die (void)
+{
+ ACE_OS::fprintf (stderr, "usage: %s [-p broadcast portnum]\n",
+ program_name);
+ ACE_OS::exit (1);
+}
+
+void
+parse_args (int argc, char *argv[])
+{
+ ACE_Get_Opt get_opt (argc, argv, "p:");
+
+ for (int c; (c = get_opt ()) != -1; )
+ switch (c)
+ {
+ case 'p':
+ broadcast_port_number = ACE_OS::atoi (get_opt.optarg);
+ break;
+ default:
+ print_usage_and_die ();
+ break;
+ }
+}
+
+int
+main (int argc, char *argv[])
+{
+ program_name = argv[0];
+ parse_args (argc, argv);
+
+ ACE_SOCK_Dgram_Bcast sd (ACE_Addr::sap_any);
+
+ static char buf[] = "testing socket broadcast service";
+
+ if (sd.send (buf, strlen (buf), broadcast_port_number) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "can't send broadcast"), -1);
+
+ return 0;
+}
diff --git a/examples/Service_Configurator/IPC-tests/client/local_data b/examples/Service_Configurator/IPC-tests/client/local_data
new file mode 100644
index 00000000000..1faba1b8091
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/client/local_data
@@ -0,0 +1,22 @@
+locallocallocallocallocallocallocallocal
+locallocallocallocallocallocallocallocal
+locallocallocallocallocallocallocallocal
+locallocallocallocallocallocallocallocal
+locallocallocallocallocallocallocallocal
+locallocallocallocallocallocallocallocal
+locallocallocallocallocallocallocallocal
+locallocallocallocallocallocallocallocal
+locallocallocallocallocallocallocallocal
+locallocallocallocallocallocallocallocal
+locallocallocallocallocallocallocallocal
+locallocallocallocallocallocallocallocal
+locallocallocallocallocallocallocallocal
+locallocallocallocallocallocallocallocal
+locallocallocallocallocallocallocallocal
+locallocallocallocallocallocallocallocal
+locallocallocallocallocallocallocallocal
+locallocallocallocallocallocallocallocal
+locallocallocallocallocallocallocallocal
+locallocallocallocallocallocallocallocal
+locallocallocallocallocallocallocallocal
+locallocallocallocallocallocallocallocal
diff --git a/examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp b/examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp
new file mode 100644
index 00000000000..249bdfa83d5
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp
@@ -0,0 +1,94 @@
+/* Tests out the UNIX domain IPC-SAP abstraction. */
+// @(#)local_dgram_client_test.cpp 1.1 10/18/96
+
+
+#include "ace/LSOCK_CODgram.h"
+#include "ace/LSOCK_Dgram.h"
+#include "ace/UNIX_Addr.h"
+#include "ace/Log_Msg.h"
+#include "ace/Get_Opt.h"
+
+#if defined (ACE_HAS_MSG) && !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
+/* Name of the program. */
+static char *program_name;
+
+/* Number of seconds to sleep. */
+static int seconds = 3;
+
+/* Name of rendezvous point. */
+static char *rendezvous_codgram = "/tmp/foo_codgram";
+static char *rendezvous_dgram = "/tmp/foo_dgram";
+
+/* Name of file to send. */
+static char *file_name = "local_data";
+
+static void print_usage_and_die (void)
+{
+ ACE_ERROR ((LM_ERROR, "usage: %s [-r rendezvous_dgram] [-c rendezvous_codgram] [-f file] [-n seconds]\n%a",
+ program_name, -1));
+}
+
+void
+parse_args (int argc, char *argv[])
+{
+ ACE_Get_Opt get_opt (argc, argv, "c:f:n:r:");
+
+ for (int c; (c = get_opt ()) != -1; )
+ switch (c)
+ {
+ case 'f':
+ file_name = get_opt.optarg;
+ break;
+ case 'n':
+ seconds = atoi (get_opt.optarg);
+ break;
+ case 'r':
+ rendezvous_dgram = get_opt.optarg;
+ break;
+ case 'c':
+ rendezvous_codgram = get_opt.optarg;
+ break;
+ default:
+ print_usage_and_die ();
+ break;
+ }
+}
+
+int
+main (int argc, char *argv[])
+{
+ program_name = argv[0];
+
+ parse_args (argc, argv);
+
+ ACE_LSOCK_Dgram sd (ACE_Addr::sap_any);
+ ACE_LSOCK_CODgram sc;
+ int fd;
+
+ if (sc.open (ACE_UNIX_Addr (rendezvous_codgram), ACE_Addr::sap_any) < 0)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), -1);
+
+ if ((fd = ACE_OS::open (file_name, O_RDONLY)) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), -1);
+
+ /* Send the open file descriptor to the server! */
+
+ if (sc.send_handle (fd) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "send"), -1);
+
+ char *name = ACE_OS::cuserid (0);
+
+ if (sd.send (name, strlen (name) + 1, ACE_UNIX_Addr (rendezvous_dgram)) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "send"), -1);
+
+ if (ACE_OS::close (fd) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "close"), -1);
+
+ return 0;
+}
+#else
+int main (void)
+{
+ ACE_ERROR_RETURN ((LM_ERROR, "your platform must support sendmsg/recvmsg to run this test\n"), -1);
+}
+#endif /* ACE_HAS_MSG */
diff --git a/examples/Service_Configurator/IPC-tests/client/local_fifo_client_test.cpp b/examples/Service_Configurator/IPC-tests/client/local_fifo_client_test.cpp
new file mode 100644
index 00000000000..f136ce465bf
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/client/local_fifo_client_test.cpp
@@ -0,0 +1,85 @@
+/* Send a file through ACE_FIFO communication channel by
+// @(#)local_fifo_client_test.cpp 1.1 10/18/96
+
+ break it (the file) into pieces. */
+
+#include "ace/Mem_Map.h"
+#include "ace/FIFO_Send_Msg.h"
+#include "ace/Log_Msg.h"
+#include "ace/Get_Opt.h"
+
+static const BUF_LEN = 256;
+
+// Name of the program.
+static char *program_name;
+
+// debug state on or off
+static int debug = 0;
+
+char *rendezvous_fifo = "/tmp/foo_fifo";
+
+/* Name of file to send. */
+static char *file_name = "./local_data";
+
+static void
+print_usage_and_die (void)
+{
+ ACE_ERROR ((LM_ERROR, "usage: %s [-d] [-f rendezvous_fifo]\n%a",
+ program_name, -1));
+}
+
+static void
+parse_arguments (int argc, char *argv[])
+{
+ int tracing = 1;
+ program_name = argv[0];
+
+ ACE_Get_Opt get_opt (argc, argv, "df:");
+
+ for (int c; (c = get_opt ()) != -1; )
+ switch (c)
+ {
+ case 'd':
+ debug = 1;
+ break;
+ case 'f':
+ rendezvous_fifo = get_opt.optarg;
+ break;
+ default:
+ print_usage_and_die ();
+ break;
+ }
+
+ if (debug)
+ ACE_DEBUG ((LM_DEBUG,
+ "rendezvous_fifo = %s\n"
+ "trace = %s\n",
+ rendezvous_fifo, tracing ? "on" : "off"));
+}
+
+int
+main(int argc, char *argv[])
+{
+ parse_arguments (argc, argv);
+
+ ACE_FIFO_Send_Msg fifo;
+
+ if (fifo.open ((const char *) rendezvous_fifo, O_WRONLY, 0666) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "Cannot open %s for requesting a new communication channel"
+ "in local_fifo_client_test\n", rendezvous_fifo), -1);
+
+
+ void *cp;
+ ACE_Mem_Map mmap (file_name);
+
+ if (mmap (cp) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "mmap"), -1);
+
+ /* Next, send the file's contents. */
+
+ ACE_Str_Buf msg (cp, int (mmap.size ()));
+
+ if (fifo.send (msg) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "send"), -1);
+ return 0;
+}
diff --git a/examples/Service_Configurator/IPC-tests/client/local_pipe_client_test.cpp b/examples/Service_Configurator/IPC-tests/client/local_pipe_client_test.cpp
new file mode 100644
index 00000000000..cb09bd0eade
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/client/local_pipe_client_test.cpp
@@ -0,0 +1,122 @@
+// Another test of UNIX domain IPC-SAP abstraction. This one opens 2
+// @(#)local_pipe_client_test.cpp 1.1 10/18/96
+
+// pipes and then ships certain ends over to the server to act as a
+// filter!
+
+#include "ace/LSOCK_Connector.h"
+#include "ace/UNIX_Addr.h"
+#include "ace/Log_Msg.h"
+#include "ace/Get_Opt.h"
+
+#if defined (ACE_HAS_MSG) && !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
+/* Name of the program. */
+static char *program_name;
+
+/* Name of rendezvous point. */
+static char *rendezvous = "/tmp/foo_pipe";
+
+/* Name of file to send. */
+static char *file_name = "local_data";
+
+static void
+print_usage_and_die (void)
+{
+ ACE_ERROR ((LM_ERROR, "usage: %s [-r rendezvous] [-f file]\n%a",
+ program_name, -1));
+}
+
+void
+parse_args (int argc, char *argv[])
+{
+ program_name = argv[0];
+
+ ACE_Get_Opt get_opt (argc, argv, "f:r:");
+
+ for (int c; (c = get_opt ()) != -1; )
+ switch (c)
+ {
+ case 'f':
+ file_name = get_opt.optarg;
+ break;
+ case 'r':
+ rendezvous = get_opt.optarg;
+ break;
+ default:
+ print_usage_and_die ();
+ break;
+ }
+}
+
+int
+do_client_processing (ACE_LSOCK_Stream &sc)
+{
+ int fd_read[2];
+ int fd_write[2];
+ char buf[BUFSIZ];
+ int n;
+ int fd1;
+
+ if (ACE_OS::pipe (fd_read) == -1 || ACE_OS::pipe (fd_write) == -1)
+ return -1;
+
+ if (sc.send_handle (fd_write[0]) == -1 || sc.send_handle (fd_read[1]) == -1)
+ return -1;
+
+ /* Close off the ends we aren't interested in. */
+
+ if (ACE_OS::close (fd_read[1]) || ACE_OS::close (fd_write[0]) == -1)
+ return -1;
+
+ /* Do a silly dup just for fun... */
+
+ if ((fd1 = ACE_OS::open (file_name, O_RDONLY)) == -1)
+ return -1;
+
+ while ((n = ACE_OS::read (fd1, buf, sizeof buf)) > 0)
+ {
+ if (ACE_OS::write (fd_write[1], buf, n) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "write"), -1);
+ if ((n = ACE_OS::read (fd_read[0], buf, sizeof buf)) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "read"), -1);
+ if (ACE_OS::write (ACE_STDOUT, buf, n) == -1)
+ return -1;
+ }
+
+ if (ACE_OS::close (fd_read[0]) == -1
+ || ACE_OS::close (fd_write[1]) == -1
+ || ACE_OS::close (fd1) == -1)
+ ACE_OS::exit (1);
+
+ return 0;
+}
+
+int
+main (int argc, char *argv[])
+{
+ parse_args (argc, argv);
+
+ ACE_LSOCK_Stream sc;
+ ACE_LSOCK_Connector con;
+
+ if (con.connect (sc, ACE_UNIX_Addr (rendezvous)) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "connect"), -1);
+
+ if (do_client_processing (sc) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "do_client_processing"), -1);
+
+#if defined (SunOS4)
+ ACE_OS::sleep (1);
+#endif /* SunOS4 */
+
+ if (sc.close () == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "close"), -1);
+
+ return 0;
+}
+#else
+int main (void)
+{
+ ACE_ERROR_RETURN ((LM_ERROR, "your platform must support sendmsg/recvmsg to run this test\n"), -1);
+}
+#endif /* ACE_HAS_MSG */
diff --git a/examples/Service_Configurator/IPC-tests/client/local_spipe_client_test.cpp b/examples/Service_Configurator/IPC-tests/client/local_spipe_client_test.cpp
new file mode 100644
index 00000000000..0dbe3abbed2
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/client/local_spipe_client_test.cpp
@@ -0,0 +1,88 @@
+/* Send a file through ACE_SPIPE communication channel by
+// @(#)local_spipe_client_test.cpp 1.1 10/18/96
+
+ break it (the file) into pieces. */
+
+#include "ace/Mem_Map.h"
+#include "ace/SPIPE_Connector.h"
+#include "ace/Log_Msg.h"
+#include "ace/Get_Opt.h"
+
+#if defined (ACE_HAS_STREAM_PIPES)
+
+static char *program_name;
+
+// debug state on or off
+static int debug = 0;
+
+char *rendezvous_spipe = "/tmp/foo_spipe";
+
+/* Name of file to send. */
+static char *file_name = "./local_data";
+
+static void
+print_usage_and_die (void)
+{
+ ACE_ERROR ((LM_ERROR, "usage: %s [-d] [-r rendezvous_spipe]\n%a",
+ program_name, -1));
+}
+
+static void
+parse_arguments (int argc, char *argv[])
+{
+ program_name = argv[0];
+ ACE_Get_Opt get_opt (argc, argv, "dr:");
+
+ for (int c; (c = get_opt ()) != -1; )
+ switch (c)
+ {
+ case 'd':
+ debug = 1;
+ break;
+ case 'r':
+ rendezvous_spipe = get_opt.optarg;
+ break;
+ default:
+ print_usage_and_die ();
+ break;
+ }
+ if (debug)
+ ACE_DEBUG ((LM_DEBUG, "rendezvous_spipe = %s\n",
+ rendezvous_spipe));
+}
+
+int
+main(int argc, char *argv[])
+{
+ parse_arguments (argc, argv);
+
+ ACE_SPIPE_Stream spipe;
+ ACE_SPIPE_Connector con;
+
+ if (con.connect (spipe, ACE_SPIPE_Addr (rendezvous_spipe)) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Cannot open %s for requesting a new communication channel"
+ " in local_spipe_client_test.\n", rendezvous_spipe), -1);
+
+ ACE_Mem_Map mmap (file_name);
+ void *cp;
+
+ if (mmap (cp) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "mmap"), -1);
+
+ /* Next, send the file's contents. */
+
+ ACE_Str_Buf msg (cp, int (mmap.size ()));
+
+ if (spipe.send ((ACE_Str_Buf *) 0, &msg) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "send"), -1);
+ return 0;
+}
+#else
+#include <stdio.h>
+int
+main (void)
+{
+ ACE_ERROR_RETURN ((LM_ERROR, "This feature is not supported\n"), -1);
+}
+#endif /* ACE_HAS_STREAM_PIPES */
diff --git a/examples/Service_Configurator/IPC-tests/client/local_stream_client_test.cpp b/examples/Service_Configurator/IPC-tests/client/local_stream_client_test.cpp
new file mode 100644
index 00000000000..bf168d0056e
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/client/local_stream_client_test.cpp
@@ -0,0 +1,85 @@
+/* Tests out the UNIX domain IPC-SAP abstraction. */
+// @(#)local_stream_client_test.cpp 1.1 10/18/96
+
+#include "ace/LSOCK_Connector.h"
+#include "ace/UNIX_Addr.h"
+#include "ace/Log_Msg.h"
+#include "ace/Get_Opt.h"
+
+#if defined (ACE_HAS_MSG) && !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
+/* Name of the program. */
+static char *program_name;
+
+/* Name of rendezvous point. */
+static char *rendezvous = "/tmp/foo_stream";
+
+/* Name of file to send. */
+static char *file_name = "local_data";
+
+static void
+print_usage_and_die (void)
+{
+ ACE_ERROR ((LM_ERROR, "usage: %s [-r rendezvous] [-f file]%a\n",
+ program_name, -1));
+}
+
+void
+parse_args (int argc, char *argv[])
+{
+ program_name = argv[0];
+ ACE_Get_Opt get_opt (argc, argv, "f:r:");
+
+ for (int c; (c = get_opt ()) != -1; )
+ switch (c)
+ {
+ case 'f':
+ file_name = get_opt.optarg;
+ break;
+ case 'r':
+ rendezvous = get_opt.optarg;
+ break;
+ default:
+ print_usage_and_die ();
+ break;
+ }
+}
+
+int
+main (int argc, char *argv[])
+{
+ parse_args (argc, argv);
+
+ int fd;
+ char buf[BUFSIZ];
+ int n;
+
+ ACE_LSOCK_Stream sc;
+ ACE_LSOCK_Connector con;
+
+ if (con.connect (sc, ACE_UNIX_Addr (rendezvous)) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "connect"), -1);
+
+ if ((fd = ACE_OS::open (file_name, O_RDONLY)) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), -1);
+
+ /* Send the open file descriptor to the server! */
+
+ if (sc.send_handle (fd) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "send_handle"), -1);
+
+ if ((n = sc.recv_n (buf, sizeof buf)) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "recv"), -1);
+ else
+ ACE_OS::write (ACE_STDOUT, buf, n);
+
+ if (ACE_OS::close (fd) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "close"), -1);
+
+ return 0;
+}
+#else
+int main (void)
+{
+ ACE_ERROR_RETURN ((LM_ERROR, "your platform must support sendmsg/recvmsg to run this test\n"), -1);
+}
+#endif /* ACE_HAS_MSG */
diff --git a/examples/Service_Configurator/IPC-tests/client/remote_data b/examples/Service_Configurator/IPC-tests/client/remote_data
new file mode 100644
index 00000000000..ae7e1fbb88e
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/client/remote_data
@@ -0,0 +1,22 @@
+remoteremoteremoteremoteremoteremoteremoteremote
+remoteremoteremoteremoteremoteremoteremoteremote
+remoteremoteremoteremoteremoteremoteremoteremote
+remoteremoteremoteremoteremoteremoteremoteremote
+remoteremoteremoteremoteremoteremoteremoteremote
+remoteremoteremoteremoteremoteremoteremoteremote
+remoteremoteremoteremoteremoteremoteremoteremote
+remoteremoteremoteremoteremoteremoteremoteremote
+remoteremoteremoteremoteremoteremoteremoteremote
+remoteremoteremoteremoteremoteremoteremoteremote
+remoteremoteremoteremoteremoteremoteremoteremote
+remoteremoteremoteremoteremoteremoteremoteremote
+remoteremoteremoteremoteremoteremoteremoteremote
+remoteremoteremoteremoteremoteremoteremoteremote
+remoteremoteremoteremoteremoteremoteremoteremote
+remoteremoteremoteremoteremoteremoteremoteremote
+remoteremoteremoteremoteremoteremoteremoteremote
+remoteremoteremoteremoteremoteremoteremoteremote
+remoteremoteremoteremoteremoteremoteremoteremote
+remoteremoteremoteremoteremoteremoteremoteremote
+remoteremoteremoteremoteremoteremoteremoteremote
+remoteremoteremoteremoteremoteremoteremoteremote
diff --git a/examples/Service_Configurator/IPC-tests/client/remote_data1 b/examples/Service_Configurator/IPC-tests/client/remote_data1
new file mode 100644
index 00000000000..6faaee46729
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/client/remote_data1
@@ -0,0 +1,22 @@
+remote1remote1remote1remote1remote1remote1remote1remote1
+remote1remote1remote1remote1remote1remote1remote1remote1
+remote1remote1remote1remote1remote1remote1remote1remote1
+remote1remote1remote1remote1remote1remote1remote1remote1
+remote1remote1remote1remote1remote1remote1remote1remote1
+remote1remote1remote1remote1remote1remote1remote1remote1
+remote1remote1remote1remote1remote1remote1remote1remote1
+remote1remote1remote1remote1remote1remote1remote1remote1
+remote1remote1remote1remote1remote1remote1remote1remote1
+remote1remote1remote1remote1remote1remote1remote1remote1
+remote1remote1remote1remote1remote1remote1remote1remote1
+remote1remote1remote1remote1remote1remote1remote1remote1
+remote1remote1remote1remote1remote1remote1remote1remote1
+remote1remote1remote1remote1remote1remote1remote1remote1
+remote1remote1remote1remote1remote1remote1remote1remote1
+remote1remote1remote1remote1remote1remote1remote1remote1
+remote1remote1remote1remote1remote1remote1remote1remote1
+remote1remote1remote1remote1remote1remote1remote1remote1
+remote1remote1remote1remote1remote1remote1remote1remote1
+remote1remote1remote1remote1remote1remote1remote1remote1
+remote1remote1remote1remote1remote1remote1remote1remote1
+remote1remote1remote1remote1remote1remote1remote1remote1
diff --git a/examples/Service_Configurator/IPC-tests/client/remote_data2 b/examples/Service_Configurator/IPC-tests/client/remote_data2
new file mode 100644
index 00000000000..ae6bf12d49f
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/client/remote_data2
@@ -0,0 +1,22 @@
+remote2remote2remote2remote2remote2remote2remote2remote2
+remote2remote2remote2remote2remote2remote2remote2remote2
+remote2remote2remote2remote2remote2remote2remote2remote2
+remote2remote2remote2remote2remote2remote2remote2remote2
+remote2remote2remote2remote2remote2remote2remote2remote2
+remote2remote2remote2remote2remote2remote2remote2remote2
+remote2remote2remote2remote2remote2remote2remote2remote2
+remote2remote2remote2remote2remote2remote2remote2remote2
+remote2remote2remote2remote2remote2remote2remote2remote2
+remote2remote2remote2remote2remote2remote2remote2remote2
+remote2remote2remote2remote2remote2remote2remote2remote2
+remote2remote2remote2remote2remote2remote2remote2remote2
+remote2remote2remote2remote2remote2remote2remote2remote2
+remote2remote2remote2remote2remote2remote2remote2remote2
+remote2remote2remote2remote2remote2remote2remote2remote2
+remote2remote2remote2remote2remote2remote2remote2remote2
+remote2remote2remote2remote2remote2remote2remote2remote2
+remote2remote2remote2remote2remote2remote2remote2remote2
+remote2remote2remote2remote2remote2remote2remote2remote2
+remote2remote2remote2remote2remote2remote2remote2remote2
+remote2remote2remote2remote2remote2remote2remote2remote2
+remote2remote2remote2remote2remote2remote2remote2remote2
diff --git a/examples/Service_Configurator/IPC-tests/client/remote_data3 b/examples/Service_Configurator/IPC-tests/client/remote_data3
new file mode 100644
index 00000000000..7f2ec1aa81b
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/client/remote_data3
@@ -0,0 +1,22 @@
+remote3remote3remote3remote3remote3remote3remote3remote3
+remote3remote3remote3remote3remote3remote3remote3remote3
+remote3remote3remote3remote3remote3remote3remote3remote3
+remote3remote3remote3remote3remote3remote3remote3remote3
+remote3remote3remote3remote3remote3remote3remote3remote3
+remote3remote3remote3remote3remote3remote3remote3remote3
+remote3remote3remote3remote3remote3remote3remote3remote3
+remote3remote3remote3remote3remote3remote3remote3remote3
+remote3remote3remote3remote3remote3remote3remote3remote3
+remote3remote3remote3remote3remote3remote3remote3remote3
+remote3remote3remote3remote3remote3remote3remote3remote3
+remote3remote3remote3remote3remote3remote3remote3remote3
+remote3remote3remote3remote3remote3remote3remote3remote3
+remote3remote3remote3remote3remote3remote3remote3remote3
+remote3remote3remote3remote3remote3remote3remote3remote3
+remote3remote3remote3remote3remote3remote3remote3remote3
+remote3remote3remote3remote3remote3remote3remote3remote3
+remote3remote3remote3remote3remote3remote3remote3remote3
+remote3remote3remote3remote3remote3remote3remote3remote3
+remote3remote3remote3remote3remote3remote3remote3remote3
+remote3remote3remote3remote3remote3remote3remote3remote3
+remote3remote3remote3remote3remote3remote3remote3remote3
diff --git a/examples/Service_Configurator/IPC-tests/client/remote_data4 b/examples/Service_Configurator/IPC-tests/client/remote_data4
new file mode 100644
index 00000000000..6c5a9633d56
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/client/remote_data4
@@ -0,0 +1,22 @@
+remote4remote4remote4remote4remote4remote4remote4remote4
+remote4remote4remote4remote4remote4remote4remote4remote4
+remote4remote4remote4remote4remote4remote4remote4remote4
+remote4remote4remote4remote4remote4remote4remote4remote4
+remote4remote4remote4remote4remote4remote4remote4remote4
+remote4remote4remote4remote4remote4remote4remote4remote4
+remote4remote4remote4remote4remote4remote4remote4remote4
+remote4remote4remote4remote4remote4remote4remote4remote4
+remote4remote4remote4remote4remote4remote4remote4remote4
+remote4remote4remote4remote4remote4remote4remote4remote4
+remote4remote4remote4remote4remote4remote4remote4remote4
+remote4remote4remote4remote4remote4remote4remote4remote4
+remote4remote4remote4remote4remote4remote4remote4remote4
+remote4remote4remote4remote4remote4remote4remote4remote4
+remote4remote4remote4remote4remote4remote4remote4remote4
+remote4remote4remote4remote4remote4remote4remote4remote4
+remote4remote4remote4remote4remote4remote4remote4remote4
+remote4remote4remote4remote4remote4remote4remote4remote4
+remote4remote4remote4remote4remote4remote4remote4remote4
+remote4remote4remote4remote4remote4remote4remote4remote4
+remote4remote4remote4remote4remote4remote4remote4remote4
+remote4remote4remote4remote4remote4remote4remote4remote4
diff --git a/examples/Service_Configurator/IPC-tests/client/remote_dgram_client_test.cpp b/examples/Service_Configurator/IPC-tests/client/remote_dgram_client_test.cpp
new file mode 100644
index 00000000000..54cde3aef67
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/client/remote_dgram_client_test.cpp
@@ -0,0 +1,78 @@
+/* Tests out the Internet domain IPC-SAP dgram abstraction. */
+// @(#)remote_dgram_client_test.cpp 1.1 10/18/96
+
+
+#include "ace/Mem_Map.h"
+#include "ace/SOCK_Dgram.h"
+#include "ace/Log_Msg.h"
+#include "ace/INET_Addr.h"
+#include "ace/Get_Opt.h"
+
+/* Name of the program. */
+static char *program_name;
+
+/* Port number to use. */
+static unsigned short port_number = ACE_DEFAULT_SERVER_PORT;
+
+/* Name of remote host. */
+static char *host_name = ACE_DEFAULT_SERVER_HOST;
+
+/* Name of file to send. */
+static char *file_name = "./remote_data";
+
+static void print_usage_and_die (void)
+{
+ ACE_ERROR ((LM_ERROR, "usage: %s [-p portnum] [-h host_name] [-f file]\n%a",
+ program_name, -1));
+}
+
+void
+parse_args (int argc, char *argv[])
+{
+ program_name = argv[0];
+
+ ACE_Get_Opt get_opt (argc, argv, "f:h:p:");
+
+ for (int c; (c = get_opt ()) != -1; )
+ switch (c)
+ {
+ case 'f':
+ file_name = get_opt.optarg;
+ break;
+ case 'h':
+ host_name = get_opt.optarg;
+ break;
+ case 'p':
+ port_number = ACE_OS::atoi (get_opt.optarg);
+ break;
+ default:
+ print_usage_and_die ();
+ break;
+ }
+}
+
+int
+main (int argc, char *argv[])
+{
+ parse_args (argc, argv);
+
+ ACE_SOCK_Dgram sd (ACE_Addr::sap_any);
+ void *cp;
+ ACE_INET_Addr sa (port_number, host_name);
+
+ ACE_Mem_Map mmap (file_name);
+
+ if (mmap (cp) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "mmap"), -1);
+
+ /* Next, send the file's contents. */
+
+ int cc = sd.send (cp, mmap.size (), sa);
+
+ if (cc == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "send"), -1);
+ else if (cc != mmap.size())
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n",
+ "Not all the contents of mmap file are sent."), -1);
+ return 0;
+}
diff --git a/examples/Service_Configurator/IPC-tests/client/remote_service_directory_test.cpp b/examples/Service_Configurator/IPC-tests/client/remote_service_directory_test.cpp
new file mode 100644
index 00000000000..365f6c7efb0
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/client/remote_service_directory_test.cpp
@@ -0,0 +1,80 @@
+/* Test program for the INET IPC-SAPs... */
+// @(#)remote_service_directory_test.cpp 1.1 10/18/96
+
+
+#include "ace/Log_Msg.h"
+#include "ace/SOCK_Connector.h"
+#include "ace/INET_Addr.h"
+#include "ace/Get_Opt.h"
+
+/* Port number to use. */
+static unsigned short port_number = ACE_DEFAULT_SERVICE_PORT;
+
+/* Name of remote host. */
+static char *host_name = ACE_DEFAULT_SERVER_HOST;
+
+/* Trigger a remote reconfiguration */
+static int remote_reconfigure = 0;
+
+static void
+print_usage_and_die (void)
+{
+ ACE_ERROR ((LM_ERROR, "usage: %n [-p portnum] [-h host_name] [-r] [-f file]\n%a", 1));
+}
+
+void
+parse_args (int argc, char *argv[])
+{
+ ACE_Get_Opt get_opt (argc, argv, "p:h:r:");
+
+ for (int c; (c = get_opt ()) != -1; )
+ switch (c)
+ {
+ case 'h':
+ host_name = get_opt.optarg;
+ break;
+ case 'p':
+ port_number = ACE_OS::atoi (get_opt.optarg);
+ break;
+ case 'r':
+ remote_reconfigure = 1;
+ break;
+ default:
+ print_usage_and_die ();
+ break;
+ }
+}
+
+int
+main (int argc, char *argv[])
+{
+ ACE_LOG_MSG->open (argv[0]);
+
+ parse_args (argc, argv);
+ static char buf[BUFSIZ] = "help";
+ int n;
+ ACE_SOCK_Stream sc;
+ ACE_SOCK_Connector con;
+
+ if (con.connect (sc, ACE_INET_Addr (port_number, host_name)) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n%a", "connect", 1), -1);
+
+ if (remote_reconfigure)
+ ACE_OS::strcpy (buf, "reconfigure");
+
+ /* Send the command */
+
+ if (sc.send_n (buf, ACE_OS::strlen (buf) + 1) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n%a", "send", 1), -1);
+
+ /* Next, read the response. */
+
+ while ((n = sc.recv (buf, sizeof buf)) > 0)
+ if (ACE_OS::write (ACE_STDOUT, buf, n) != n)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n%a", "write", 1), -1);
+
+ if (sc.close () == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n%a", "close", 1), -1);
+
+ return 0;
+}
diff --git a/examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.cpp b/examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.cpp
new file mode 100644
index 00000000000..80444b8da8e
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.cpp
@@ -0,0 +1,105 @@
+/* Test program for the INET IPC-SAPs... */
+// @(#)remote_stream_client_test.cpp 1.1 10/18/96
+
+
+#include "ace/Mem_Map.h"
+#include "ace/Log_Msg.h"
+#include "ace/SOCK_Connector.h"
+#include "ace/SOCK_CODgram.h"
+#include "ace/INET_Addr.h"
+#include "ace/Get_Opt.h"
+
+/* Name of the program. */
+static char *program_name;
+
+/* Port number to use. */
+static unsigned short port_number = ACE_DEFAULT_SERVER_PORT;
+
+/* Name of remote host. */
+static char *host_name = ACE_DEFAULT_SERVER_HOST;
+
+/* Name of file to send. */
+static char *file_name = "./remote_data";
+
+static void
+print_usage_and_die (void)
+{
+ ACE_ERROR ((LM_ERROR, "usage: %s [-p portnum] [-h host_name] [-f file]\n%a",
+ program_name, -1));
+}
+
+void
+parse_args (int argc, char *argv[])
+{
+ program_name = argv[0];
+ ACE_Get_Opt get_opt (argc, argv, "f:h:p:");
+
+ for (int c; (c = get_opt ()) != -1; )
+ switch (c)
+ {
+ case 'f':
+ file_name = get_opt.optarg;
+ break;
+ case 'h':
+ host_name = get_opt.optarg;
+ break;
+ case 'p':
+ port_number = ACE_OS::atoi (get_opt.optarg);
+ break;
+ default:
+ print_usage_and_die ();
+ break;
+ }
+}
+
+int
+main (int argc, char *argv[])
+{
+ parse_args (argc, argv);
+ ACE_INET_Addr sa (port_number, host_name);
+ void *cp;
+ char buf[BUFSIZ];
+ int n;
+ ACE_SOCK_CODgram dc;
+
+ if (dc.open (sa, ACE_Addr::sap_any) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), -1);
+
+ /* First send the name of the file as a datagram. */
+
+ iovec iov[2];
+
+ iov[0].iov_base = "filename: ";
+ iov[0].iov_len = 11;
+ iov[1].iov_base = file_name;
+ iov[1].iov_len = ACE_OS::strlen (file_name);
+
+ if (dc.send (iov, 2) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "send"), -1);
+
+ ACE_SOCK_Stream sc;
+ ACE_SOCK_Connector con;
+
+ if (con.connect (sc, sa) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "connect"), -1);
+
+ ACE_Mem_Map mmap (file_name);
+
+ if (mmap (cp) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "mmap"), -1);
+
+ /* Next, send the file's contents. */
+
+ if (sc.send_n (cp, mmap.size ()) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "send_urg"), -1);
+
+ if (sc.close_writer () == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "close_writer"), -1);
+
+ if ((n = sc.recv_n (buf, sizeof buf)) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "recv"), -1);
+ else
+ ACE_OS::write (ACE_STDOUT, buf, n);
+
+ return 0;
+}
diff --git a/examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp b/examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp
new file mode 100644
index 00000000000..18c6162c788
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp
@@ -0,0 +1,96 @@
+/* Test program for the INET ACE_TLI-SAPs... */
+// @(#)remote_thr_stream_client_test.cpp 1.1 10/18/96
+
+
+#include "ace/Mem_Map.h"
+#include "ace/TLI_Connector.h"
+#include "ace/INET_Addr.h"
+#include "ace/Log_Msg.h"
+#include "ace/Log_Msg.h"
+#include "ace/Get_Opt.h"
+
+#if defined (ACE_HAS_TLI)
+
+/* Name of the program. */
+static char *program_name;
+
+/* Port number to use. */
+static unsigned short port_number = ACE_DEFAULT_THR_PORT;
+
+/* Name of remote host. */
+static char *host_name = ACE_DEFAULT_SERVER_HOST;
+
+/* Name of file to send. */
+static char *file_name = "./remote_data";
+
+static void print_usage_and_die (void)
+{
+ ACE_ERROR ((LM_ERROR, "usage: %s [-p portnum] [-h host_name] [-f file]\n%a",
+ program_name, -1));
+}
+
+void
+parse_args (int argc, char *argv[])
+{
+ program_name = argv[0];
+ ACE_Get_Opt get_opt (argc, argv, "f:h:p:");
+
+ for (int c; (c = get_opt ()) != -1; )
+ switch (c)
+ {
+ case 'f':
+ file_name = get_opt.optarg;
+ break;
+ case 'h':
+ host_name = get_opt.optarg;
+ break;
+ case 'p':
+ port_number = ACE_OS::atoi (get_opt.optarg);
+ break;
+ default:
+ print_usage_and_die ();
+ break;
+ }
+}
+
+int
+main (int argc, char *argv[])
+{
+ parse_args (argc, argv);
+ void *cp;
+ char buf[BUFSIZ];
+ ACE_TLI_Stream sc;
+ ACE_TLI_Connector con;
+
+ if (con.connect (sc, ACE_INET_Addr (port_number, host_name)) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), -1);
+
+ ACE_Mem_Map mmap (file_name, PROT_READ);
+
+ if (mmap (cp) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "mmap"), -1);
+
+ /* Next, send the file's contents. */
+
+ if (sc.send_n (cp, mmap.size ()) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "send_n"), -1);
+
+ if (sc.sndrel () == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "close_writer"), -1);
+
+ for (int n; (n = sc.recv (buf, sizeof buf)) > 0; )
+ if (ACE_OS::write (ACE_STDOUT, buf, n) != n)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "write"), -1);
+
+ if (sc.close () == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "close"), -1);
+
+ return 0;
+}
+#else
+int
+main (void)
+{
+ ACE_ERROR_RETURN ((LM_ERROR, "you must have TLI to run this test\n"), 1);
+}
+#endif /* ACE_HAS_TLI */
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.cpp b/examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.cpp
new file mode 100644
index 00000000000..3e6f852a53d
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.cpp
@@ -0,0 +1,36 @@
+#include "Handle_Broadcast.h"
+// @(#)Handle_Broadcast.cpp 1.1 10/18/96
+
+
+#if defined (SunOS4)
+extern "C"
+{
+ int init (void);
+ int fini (void);
+ void __sti__Handle_Broadcast_C_init_();
+ void __std__Handle_Broadcast_C_init_();
+}
+
+int
+init (void)
+{
+ __sti__Handle_Broadcast_C_init_();
+ return 0;
+}
+
+int
+fini (void)
+{
+ __std__Handle_Broadcast_C_init_();
+ return 0;
+}
+#endif /* SunOS4 */
+
+unsigned short Handle_Broadcast::DEFAULT_PORT = ACE_DEFAULT_BROADCAST_PORT;
+
+#if !defined (__ACE_INLINE__)
+#include "Handle_Broadcast.i"
+#endif /* __ACE_INLINE__ */
+
+Handle_Broadcast remote_broadcast;
+ACE_Service_Object_Type rb (&remote_broadcast, "Remote_Brdcast");
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.h b/examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.h
new file mode 100644
index 00000000000..3d22d6b473f
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.h
@@ -0,0 +1,41 @@
+/* -*- C++ -*- */
+// @(#)Handle_Broadcast.h 1.1 10/18/96
+
+/* Handles INET broadcast datagram messages from remote hosts on the local subnet. */
+
+#if !defined (_HANDLE_BROADCAST_H)
+#define _HANDLE_BROADCAST_H
+
+#include "ace/Service_Config.h"
+#include "ace/Service_Record.h"
+#include "ace/INET_Addr.h"
+#include "ace/SOCK_Dgram.h"
+
+class Handle_Broadcast : public ACE_Service_Object, public ACE_SOCK_Dgram
+{
+public:
+ Handle_Broadcast (void);
+ ~Handle_Broadcast (void);
+ virtual int init (int argc, char *argv[]);
+ virtual int info (char **, size_t) const;
+ virtual int fini (void);
+
+private:
+ int open (const ACE_INET_Addr &r, int async = 0);
+ virtual int get_handle (void) const;
+ virtual int handle_input (int fd);
+ virtual int handle_close (int fd, ACE_Reactor_Mask);
+
+ static unsigned short DEFAULT_PORT;
+};
+
+extern ACE_Service_Object_Type rb;
+
+#if defined (__ACE_INLINE__)
+#define ACE_INLINE inline
+#include "Handle_Broadcast.i"
+#else
+#define ACE_INLINE
+#endif /* __ACE_INLINE__ */
+
+#endif /* _HANDLE_BROADCAST_H */
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.i b/examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.i
new file mode 100644
index 00000000000..624ee1edb26
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.i
@@ -0,0 +1,110 @@
+/* -*- C++ -*- */
+// @(#)Handle_Broadcast.i 1.1 10/18/96
+
+
+#include "ace/Get_Opt.h"
+
+ACE_INLINE
+Handle_Broadcast::~Handle_Broadcast (void)
+{
+}
+
+ACE_INLINE
+Handle_Broadcast::Handle_Broadcast (void)
+{
+}
+
+ACE_INLINE int
+Handle_Broadcast::open (const ACE_INET_Addr &r, int async)
+{
+ if (this->ACE_SOCK_Dgram::open (r) == -1)
+ return -1;
+ else if (async && ACE_SOCK_Dgram::enable (SIGIO) == -1)
+ return -1;
+ else
+ return 0;
+}
+
+ACE_INLINE int
+Handle_Broadcast::info (char **strp, size_t length) const
+{
+ char buf[BUFSIZ];
+ ACE_INET_Addr sa;
+
+ if (this->get_local_addr (sa) == -1)
+ return -1;
+
+ ACE_OS::sprintf (buf, "%d/%s %s", sa.get_port_number (), "udp", "# tests broadcasting\n");
+
+ if (*strp == 0 && (*strp = ACE_OS::strdup (buf)) == 0)
+ return -1;
+ else
+ ACE_OS::strncpy (*strp, buf, length);
+ return ACE_OS::strlen (buf);
+}
+
+ACE_INLINE int
+Handle_Broadcast::init (int argc, char *argv[])
+{
+ ACE_INET_Addr sba (Handle_Broadcast::DEFAULT_PORT);
+ ACE_Get_Opt get_opt (argc, argv, "p:", 0);
+
+ for (int c; (c = get_opt ()) != -1; )
+ switch (c)
+ {
+ case 'p':
+ sba.set (ACE_OS::atoi (get_opt.optarg));
+ break;
+ default:
+ break;
+ }
+
+ if (this->open (sba) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), -1);
+ else if (ACE_Service_Config::reactor ()->register_handler
+ (this, ACE_Event_Handler::READ_MASK) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "registering service with ACE_Reactor\n"), -1);
+ return 0;
+}
+
+ACE_INLINE int
+Handle_Broadcast::fini (void)
+{
+ return ACE_Service_Config::reactor ()->remove_handler
+ (this, ACE_Event_Handler::READ_MASK);
+}
+
+ACE_INLINE int
+Handle_Broadcast::get_handle (void) const
+{
+ return this->ACE_SOCK_Dgram::get_handle ();
+}
+
+ACE_INLINE int
+Handle_Broadcast::handle_input (int)
+{
+ ACE_INET_Addr sa;
+ char buf[0x2000]; /* 8 k buffer */
+ int n;
+
+ if ((n = this->recv (buf, sizeof buf, sa)) == -1)
+ return -1;
+ else
+ ACE_DEBUG ((LM_INFO, "received broadcast datagram from host %s\n", sa.get_host_name ()));
+
+ ACE_OS::puts ("----------------------------------------");
+ ACE_OS::write (ACE_STDOUT, buf, n);
+
+ if (buf[n - 1] != '\n')
+ putchar ('\n');
+
+ ACE_OS::puts ("----------------------------------------");
+
+ return 0;
+}
+
+ACE_INLINE int
+Handle_Broadcast::handle_close (int, ACE_Reactor_Mask)
+{
+ return this->ACE_SOCK_Dgram::close ();
+}
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.cpp b/examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.cpp
new file mode 100644
index 00000000000..9750154c1b3
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.cpp
@@ -0,0 +1,36 @@
+#include "Handle_L_CODgram.h"
+// @(#)Handle_L_CODgram.cpp 1.1 10/18/96
+
+
+#if defined (SunOS4)
+extern "C"
+{
+ int init (void);
+ int fini (void);
+ void __sti__Handle_L_CODgram_C_init_();
+ void __std__Handle_L_CODgram_C_init_();
+}
+
+int
+init (void)
+{
+ __sti__Handle_L_CODgram_C_init_();
+ return 0;
+}
+
+int
+fini (void)
+{
+ __std__Handle_L_CODgram_C_init_();
+ return 0;
+}
+#endif /* SunOS4 */
+
+const char *Handle_L_CODgram::DEFAULT_RENDEZVOUS = "/tmp/foo_codgram";
+
+#if !defined (__ACE_INLINE__)
+#include "Handle_L_CODgram.i"
+#endif /* __ACE_INLINE__ */
+
+Handle_L_CODgram local_codgram;
+ACE_Service_Object_Type lc (&local_codgram, "Local_CODgram");
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.h b/examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.h
new file mode 100644
index 00000000000..0d2692c63d2
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.h
@@ -0,0 +1,41 @@
+/* -*- C++ -*- */
+// @(#)Handle_L_CODgram.h 1.1 10/18/96
+
+/* Handles UNIX datagram messages from local host. */
+
+#if !defined (_HANDLE_L_CODGRAM_H)
+#define _HANDLE_L_CODGRAM_H
+
+#include "ace/Service_Config.h"
+#include "ace/Service_Record.h"
+#include "ace/LSOCK_CODgram.h"
+#include "ace/UNIX_Addr.h"
+
+class Handle_L_CODgram : public ACE_Service_Object, public ACE_LSOCK_CODgram
+{
+public:
+ Handle_L_CODgram (void);
+ virtual int init (int argc, char *argv[]);
+ virtual int info (char **, size_t) const;
+ virtual int fini (void);
+
+public:
+ int open (const ACE_UNIX_Addr &suad, int async = 0);
+ virtual ACE_HANDLE get_handle (void) const;
+ virtual int handle_input (ACE_HANDLE);
+ virtual int handle_close (ACE_HANDLE, ACE_Reactor_Mask);
+
+ char rendezvous[MAXPATHLEN + 1];
+ static const char *DEFAULT_RENDEZVOUS;
+};
+
+extern ACE_Service_Object_Type lc;
+
+#if defined (__ACE_INLINE__)
+#define ACE_INLINE inline
+#include "Handle_L_CODgram.i"
+#else
+#define ACE_INLINE
+#endif /* __ACE_INLINE__ */
+
+#endif /* _HANDLE_L_CODGRAM_H */
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.i b/examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.i
new file mode 100644
index 00000000000..6c69af48c20
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.i
@@ -0,0 +1,113 @@
+/* -*- C++ -*- */
+// @(#)Handle_L_CODgram.i 1.1 10/18/96
+
+
+#include "ace/Get_Opt.h"
+
+ACE_INLINE
+Handle_L_CODgram::Handle_L_CODgram (void)
+{
+}
+
+ACE_INLINE int
+Handle_L_CODgram::open (const ACE_UNIX_Addr &suad, int async)
+{
+ if (this->ACE_LSOCK_CODgram::open (ACE_Addr::sap_any, suad) == -1)
+ return -1;
+ else if (async && this->ACE_LSOCK_CODgram::enable (SIGIO) == -1)
+ return -1;
+ else
+ return 0;
+}
+
+ACE_INLINE int
+Handle_L_CODgram::info (char **strp, size_t length) const
+{
+ char buf[BUFSIZ];
+ ACE_UNIX_Addr sa;
+
+ if (ACE_LSOCK_CODgram::get_local_addr (sa) == -1)
+ return -1;
+
+ ACE_OS::sprintf (buf, "%s %s", sa.get_path_name (),
+ "# tests local connected datagram\n");
+
+ if (*strp == 0 && (*strp = ACE_OS::strdup (buf)) == 0)
+ return -1;
+ else
+ ACE_OS::strncpy (*strp, buf, length);
+ return ACE_OS::strlen (buf);
+}
+
+ACE_INLINE int
+Handle_L_CODgram::init (int argc, char *argv[])
+{
+ ACE_UNIX_Addr sucd;
+ ACE_Get_Opt get_opt (argc, argv, "r:", 0);
+ const char *r = Handle_L_CODgram::DEFAULT_RENDEZVOUS;
+
+ for (int c; (c = get_opt ()) != -1; )
+ switch (c)
+ {
+ case 'r':
+ r = get_opt.optarg;
+ break;
+ default:
+ break;
+ }
+
+ ACE_OS::strncpy (this->rendezvous, r, MAXPATHLEN);
+ ACE_OS::unlink (this->rendezvous);
+ sucd.set (this->rendezvous);
+ if (this->open (sucd) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), -1);
+ else if (ACE_Service_Config::reactor ()->register_handler
+ (this, ACE_Event_Handler::READ_MASK) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "registering service with ACE_Reactor\n"), -1);
+ return 0;
+}
+
+ACE_INLINE int
+Handle_L_CODgram::fini(void)
+{
+ return ACE_Service_Config::reactor ()->remove_handler
+ (this, ACE_Event_Handler::READ_MASK);
+}
+
+ACE_INLINE ACE_HANDLE
+Handle_L_CODgram::get_handle (void) const
+{
+ return ACE_LSOCK_CODgram::get_handle ();
+}
+
+ACE_INLINE int
+Handle_L_CODgram::handle_input (ACE_HANDLE)
+{
+ ACE_HANDLE handle = ACE_INVALID_HANDLE;
+ char buf[BUFSIZ];
+
+ if (this->recv_handle (handle) == -1)
+ return -1;
+ else
+ ACE_DEBUG ((LM_INFO, "received handle (%d)\n", handle));
+
+ ACE_OS::puts ("----------------------------------------");
+
+ for (ssize_t n; n = ACE_OS::read (handle, buf, sizeof buf); )
+ ACE_OS::write (ACE_STDOUT, buf, n);
+
+ ACE_OS::puts ("----------------------------------------");
+
+ if (ACE_OS::close (handle) == -1)
+ return -1;
+
+ return 0;
+}
+
+ACE_INLINE int
+Handle_L_CODgram::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
+{
+ this->ACE_LSOCK_CODgram::close ();
+ return ACE_OS::unlink (this->rendezvous);
+}
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.cpp b/examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.cpp
new file mode 100644
index 00000000000..f8615d3cd26
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.cpp
@@ -0,0 +1,15 @@
+#include "Handle_L_Dgram.h"
+// @(#)Handle_L_Dgram.cpp 1.1 10/18/96
+
+
+#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
+
+const char *Handle_L_Dgram::DEFAULT_RENDEZVOUS = "/tmp/foo_dgram";
+
+#if !defined (__ACE_INLINE__)
+#include "Handle_L_Dgram.i"
+#endif /* __ACE_INLINE__ */
+
+Handle_L_Dgram local_dgram;
+ACE_Service_Object_Type ld (&local_dgram, "Local_Dgram");
+#endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.h b/examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.h
new file mode 100644
index 00000000000..72c2914ef6a
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.h
@@ -0,0 +1,43 @@
+/* -*- C++ -*- */
+// @(#)Handle_L_Dgram.h 1.1 10/18/96
+
+// Handles UNIX datagram messages from local host.
+
+#if !defined (_HANDLE_L_DGRAM_H)
+#define _HANDLE_L_DGRAM_H
+
+#include "ace/Service_Config.h"
+#include "ace/Service_Record.h"
+#include "ace/LSOCK_Dgram.h"
+#include "ace/UNIX_Addr.h"
+
+#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
+
+class Handle_L_Dgram : public ACE_Service_Object, public ACE_LSOCK_Dgram
+{
+public:
+ Handle_L_Dgram (void);
+ virtual int init (int argc, char *argv[]);
+ virtual int info (char **, size_t) const;
+ virtual int fini (void);
+
+private:
+ int open (const ACE_UNIX_Addr &suad, int async = 0);
+ virtual int get_handle (void) const;
+ virtual int handle_input (int fd);
+ virtual int handle_close (int fd, ACE_Reactor_Mask);
+
+ char rendezvous[MAXPATHLEN + 1];
+ static const char *DEFAULT_RENDEZVOUS;
+};
+
+extern ACE_Service_Object_Type ld;
+
+#if defined (__ACE_INLINE__)
+#define ACE_INLINE inline
+#include "Handle_L_Dgram.i"
+#else
+#define ACE_INLINE
+#endif /* __ACE_INLINE__ */
+#endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */
+#endif /* _HANDLE_L_DGRAM_H */
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.i b/examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.i
new file mode 100644
index 00000000000..4133a0d6a4f
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.i
@@ -0,0 +1,109 @@
+/* -*- C++ -*- */
+// @(#)Handle_L_Dgram.i 1.1 10/18/96
+
+
+#include "ace/Get_Opt.h"
+
+ACE_INLINE
+Handle_L_Dgram::Handle_L_Dgram (void)
+{
+}
+
+ACE_INLINE int
+Handle_L_Dgram::open (const ACE_UNIX_Addr &suad, int async)
+{
+ if (this->ACE_LSOCK_Dgram::open (suad) == -1)
+ return -1;
+ else if (async && this->ACE_LSOCK_Dgram::enable (SIGIO) == -1)
+ return -1;
+ else
+ return 0;
+}
+
+ACE_INLINE int
+Handle_L_Dgram::info (char **strp, size_t length) const
+{
+ char buf[BUFSIZ];
+ ACE_UNIX_Addr sa;
+
+ if (this->ACE_LSOCK_Dgram::get_local_addr (sa) == -1)
+ return -1;
+
+ ACE_OS::sprintf (buf, "%s %s", sa.get_path_name (), "# tests local datagram\n");
+
+ if (*strp == 0 && (*strp = ACE_OS::strdup (buf)) == 0)
+ return -1;
+ else
+ ACE_OS::strncpy (*strp, buf, length);
+ return ACE_OS::strlen (buf);
+}
+
+ACE_INLINE int
+Handle_L_Dgram::init (int argc, char *argv[])
+{
+ ACE_UNIX_Addr sudg;
+ ACE_Get_Opt get_opt (argc, argv, "r:", 0);
+ const char *r = Handle_L_Dgram::DEFAULT_RENDEZVOUS;
+
+ for (int c; (c = get_opt ()) != -1; )
+ switch (c)
+ {
+ case 'r':
+ r = get_opt.optarg;
+ break;
+ default:
+ break;
+ }
+
+ ACE_OS::strncpy (this->rendezvous, r, MAXPATHLEN);
+ ACE_OS::unlink (this->rendezvous);
+ sudg.set (this->rendezvous);
+ if (this->open (sudg) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), -1);
+ else if (ACE_Service_Config::reactor ()->register_handler (this,
+ ACE_Event_Handler::READ_MASK) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "registering service with ACE_Reactor\n"), -1);
+ return 0;
+}
+
+ACE_INLINE int
+Handle_L_Dgram::fini (void)
+{
+ return ACE_Service_Config::reactor ()->remove_handler (this, ACE_Event_Handler::READ_MASK);
+}
+
+ACE_INLINE int
+Handle_L_Dgram::get_handle (void) const
+{
+ return this->ACE_LSOCK_Dgram::get_handle ();
+}
+
+ACE_INLINE int
+Handle_L_Dgram::handle_input (int)
+{
+ ACE_UNIX_Addr sa;
+ char buf[8 * 1024]; /* 8 k buffer */
+ int n;
+
+ if ((n = this->recv (buf, sizeof buf, sa)) == -1)
+ return -1;
+ else
+ ACE_DEBUG ((LM_INFO, "received datagram from %s\n", sa.get_path_name ()));
+
+ ACE_OS::puts ("----------------------------------------");
+ ACE_OS::write (ACE_STDOUT, buf, n);
+
+ if (buf[n - 1] != '\n')
+ putchar ('\n');
+
+ ACE_OS::puts ("----------------------------------------");
+
+ return 0;
+}
+
+ACE_INLINE int
+Handle_L_Dgram::handle_close (int, ACE_Reactor_Mask)
+{
+ this->ACE_LSOCK_Dgram::close ();
+ return ACE_OS::unlink (this->rendezvous);
+}
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.cpp b/examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.cpp
new file mode 100644
index 00000000000..7106034f33f
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.cpp
@@ -0,0 +1,36 @@
+#include "Handle_L_FIFO.h"
+// @(#)Handle_L_FIFO.cpp 1.1 10/18/96
+
+
+#if defined (SunOS4)
+extern "C"
+{
+ int init (void);
+ int fini (void);
+ void __sti__Handle_L_FIFO_C_init_();
+ void __std__Handle_L_FIFO_C_init_();
+}
+
+int
+init (void)
+{
+ __sti__Handle_L_FIFO_C_init_();
+ return 0;
+}
+
+int
+fini (void)
+{
+ __std__Handle_L_FIFO_C_init_();
+ return 0;
+}
+#endif /* SunOS4 */
+
+const char *Handle_L_FIFO::DEFAULT_RENDEZVOUS = "/tmp/foo_fifo";
+
+#if !defined (__ACE_INLINE__)
+#include "Handle_L_FIFO.i"
+#endif /* __ACE_INLINE__ */
+
+Handle_L_FIFO local_fifo;
+ACE_Service_Object_Type lf (&local_fifo, "Local_FIFO");
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.h b/examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.h
new file mode 100644
index 00000000000..82ab2f5df51
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.h
@@ -0,0 +1,42 @@
+/* -*- C++ -*- */
+// @(#)Handle_L_FIFO.h 1.1 10/18/96
+
+/* Handle connections from local UNIX ACE_FIFO */
+/* Read from a well known ACE_FIFO and write to stdout. */
+
+#if !defined (_HANDLE_L_FIFO_H)
+#define _HANDLE_L_FIFO_H
+
+#include "ace/Service_Config.h"
+#include "ace/Service_Record.h"
+#include "ace/FIFO_Recv_Msg.h"
+
+class Handle_L_FIFO : public ACE_Service_Object, public ACE_FIFO_Recv_Msg
+{
+public:
+ Handle_L_FIFO (void);
+ virtual int init (int argc, char *argv[]);
+ virtual int info (char **, size_t) const;
+ virtual int fini (void);
+
+private:
+ int open (const char *rendezvous_fifo);
+ virtual int get_handle (void) const;
+ virtual int handle_input (int fd);
+ virtual int handle_close (int fd, ACE_Reactor_Mask);
+
+ static const char *DEFAULT_RENDEZVOUS;
+};
+
+extern ACE_Service_Object_Type lf;
+
+#if defined (__ACE_INLINE__)
+#define ACE_INLINE inline
+#include "Handle_L_FIFO.i"
+#else
+#define ACE_INLINE
+#endif /* __ACE_INLINE__ */
+
+#endif /* _HANDLE_L_FIFO_H */
+
+
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.i b/examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.i
new file mode 100644
index 00000000000..6ba9f212d6c
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.i
@@ -0,0 +1,94 @@
+/* -*- C++ -*- */
+// @(#)Handle_L_FIFO.i 1.1 10/18/96
+
+
+#include "ace/Get_Opt.h"
+
+ACE_INLINE
+Handle_L_FIFO::Handle_L_FIFO (void)
+{
+}
+
+ACE_INLINE int
+Handle_L_FIFO::open (const char *rendezvous_fifo)
+{
+ if (this->ACE_FIFO_Recv_Msg::open (rendezvous_fifo) == -1)
+ return -1;
+ else
+ return 0;
+}
+
+ACE_INLINE int
+Handle_L_FIFO::info (char **strp, size_t length) const
+{
+ char buf[BUFSIZ];
+ const char *rendezvous_fifo;
+
+ this->get_local_addr (rendezvous_fifo);
+
+ ACE_OS::sprintf (buf, "%s %s", rendezvous_fifo, "# tests local ACE_FIFO\n");
+
+ if (*strp == 0 && (*strp = ACE_OS::strdup (buf)) == 0)
+ return -1;
+ else
+ ACE_OS::strncpy (*strp, buf, length);
+ return ACE_OS::strlen (buf);
+}
+
+ACE_INLINE int
+Handle_L_FIFO::init (int argc, char *argv[])
+{
+ const char *rendezvous_fifo = Handle_L_FIFO::DEFAULT_RENDEZVOUS;
+ ACE_Get_Opt get_opt (argc, argv, "r:", 0);
+
+ for (int c; (c = get_opt ()) != -1; )
+ switch (c)
+ {
+ case 'r':
+ rendezvous_fifo = get_opt.optarg;
+ break;
+ default:
+ break;
+ }
+
+ ACE_OS::unlink (rendezvous_fifo);
+ if (this->open (rendezvous_fifo) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), -1);
+ else if (ACE_Service_Config::reactor ()->register_handler (this,
+ ACE_Event_Handler::READ_MASK) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "registering service with ACE_Reactor\n"), -1);
+ return 0;
+}
+
+ACE_INLINE int
+Handle_L_FIFO::fini (void)
+{
+ return ACE_Service_Config::reactor ()->remove_handler (this, ACE_Event_Handler::READ_MASK);
+}
+
+ACE_INLINE int
+Handle_L_FIFO::get_handle (void) const
+{
+ return this->ACE_FIFO::get_handle ();
+}
+
+ACE_INLINE int
+Handle_L_FIFO::handle_input (int)
+{
+ char buf[PIPE_BUF];
+ ACE_Str_Buf msg (buf, 0, sizeof buf);
+
+ /* Accept communication requests */
+ if (this->recv (msg) == -1)
+ return -1;
+ else
+
+ ACE_OS::write (ACE_STDOUT, (const char *) msg.buf, (int) msg.len);
+ return 0;
+}
+
+ACE_INLINE int
+Handle_L_FIFO::handle_close (int, ACE_Reactor_Mask)
+{
+ return this->ACE_FIFO::remove ();
+}
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.cpp b/examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.cpp
new file mode 100644
index 00000000000..086f8c2e86c
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.cpp
@@ -0,0 +1,36 @@
+#include "Handle_L_Pipe.h"
+// @(#)Handle_L_Pipe.cpp 1.1 10/18/96
+
+
+#if defined (SunOS4)
+extern "C"
+{
+ int init (void);
+ int fini (void);
+ void __sti__Handle_L_Pipe_C_recv_n_();
+ void __std__Handle_L_Pipe_C_recv_n_();
+}
+
+int
+init (void)
+{
+ __sti__Handle_L_Pipe_C_recv_n_();
+ return 0;
+}
+
+int
+fini (void)
+{
+ __std__Handle_L_Pipe_C_recv_n_();
+ return 0;
+}
+#endif /* SunOS4 */
+
+const char *Handle_L_Pipe::DEFAULT_RENDEZVOUS = "/tmp/foo_pipe";
+
+#if !defined (__ACE_INLINE__)
+#include "Handle_L_Pipe.i"
+#endif /* __ACE_INLINE__ */
+
+Handle_L_Pipe local_pipe;
+ACE_Service_Object_Type lp (&local_pipe, "Local_Pipe");
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.h b/examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.h
new file mode 100644
index 00000000000..ffd7651048a
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.h
@@ -0,0 +1,44 @@
+/* -*- C++ -*- */
+// @(#)Handle_L_Pipe.h 1.1 10/18/96
+
+/* Handle connections from local UNIX domain sockets that are sending
+ end-points from a pipe! */
+
+#if !defined (_HANDLE_L_PIPE_H)
+#define _HANDLE_L_PIPE_H
+
+#include "ace/Service_Config.h"
+#include "ace/Service_Record.h"
+#include "ace/UNIX_Addr.h"
+#include "ace/LSOCK_Acceptor.h"
+
+class Handle_L_Pipe : public ACE_Service_Object, public ACE_LSOCK_Acceptor
+{
+public:
+ Handle_L_Pipe (void);
+ ~Handle_L_Pipe (void);
+ virtual int init (int argc, char *argv[]);
+ virtual int info (char **, size_t) const;
+ virtual int fini (void);
+
+private:
+ int open (const ACE_UNIX_Addr &suap, int async = 0);
+ virtual ACE_HANDLE get_handle (void) const;
+ virtual int handle_input (ACE_HANDLE fd);
+ virtual int handle_close (ACE_HANDLE fd, ACE_Reactor_Mask);
+
+ char rendezvous[MAXPATHLEN + 1];
+ static const char *DEFAULT_RENDEZVOUS;
+};
+
+extern ACE_Service_Object_Type lp;
+
+#if defined (__ACE_INLINE__)
+#define ACE_INLINE inline
+#include "Handle_L_Pipe.i"
+#else
+#define ACE_INLINE
+#endif /* __ACE_INLINE__ */
+
+#endif /* _HANDLE_L_PIPE_H */
+
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.i b/examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.i
new file mode 100644
index 00000000000..b5c430a8e51
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.i
@@ -0,0 +1,136 @@
+/* -*- C++ -*- */
+// @(#)Handle_L_Pipe.i 1.1 10/18/96
+
+
+#include "ace/Get_Opt.h"
+
+ACE_INLINE
+Handle_L_Pipe::~Handle_L_Pipe (void)
+{
+}
+
+/* Uppercase N bytes of S. */
+
+static char *
+upper_case (char s[], int n)
+{
+ while (--n >= 0)
+ if (islower (s[n]))
+ s[n] = toupper (s[n]);
+
+ return s;
+}
+
+ACE_INLINE
+Handle_L_Pipe::Handle_L_Pipe (void)
+{
+}
+
+ACE_INLINE int
+Handle_L_Pipe::open (const ACE_UNIX_Addr &suap, int async)
+{
+ if (this->ACE_LSOCK_Acceptor::open (suap) == -1)
+ return -1;
+ else if (async && this->ACE_LSOCK_Acceptor::enable (SIGIO) == -1)
+ return -1;
+ else
+ return 0;
+}
+
+ACE_INLINE int
+Handle_L_Pipe::info (char **strp, size_t length) const
+{
+ char buf[BUFSIZ];
+ ACE_UNIX_Addr sa;
+
+ if (ACE_LSOCK_Acceptor::get_local_addr (sa) == -1)
+ return -1;
+
+ ACE_OS::sprintf (buf, "%s %s", sa.get_path_name (), "# tests local pipe\n");
+
+ if (*strp == 0 && (*strp = ACE_OS::strdup (buf)) == 0)
+ return -1;
+ else
+ ACE_OS::strncpy (*strp, buf, length);
+ return ACE_OS::strlen (buf);
+}
+
+ACE_INLINE int
+Handle_L_Pipe::init (int argc, char *argv[])
+{
+ ACE_UNIX_Addr sup;
+ const char *r = Handle_L_Pipe::DEFAULT_RENDEZVOUS;
+ ACE_Get_Opt get_opt (argc, argv, "r:", 0);
+
+ for (int c; (c = get_opt ()) != -1; )
+ switch (c)
+ {
+ case 'r':
+ r = get_opt.optarg;
+ break;
+ default:
+ break;
+ }
+
+ ACE_OS::strncpy (this->rendezvous, r, MAXPATHLEN);
+ ACE_OS::unlink (this->rendezvous);
+ sup.set (this->rendezvous);
+ if (this->open (sup) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), -1);
+ else if (ACE_Service_Config::reactor ()->register_handler
+ (this, ACE_Event_Handler::READ_MASK) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "registering service with ACE_Reactor\n"), -1);
+ return 0;
+}
+
+ACE_INLINE int
+Handle_L_Pipe::fini (void)
+{
+ return ACE_Service_Config::reactor ()->remove_handler
+ (this, ACE_Event_Handler::READ_MASK);
+}
+
+ACE_INLINE int
+Handle_L_Pipe::get_handle (void) const
+{
+ return ACE_LSOCK_Acceptor::get_handle ();
+}
+
+ACE_INLINE int
+Handle_L_Pipe::handle_input (ACE_HANDLE)
+{
+ ACE_LSOCK_Stream new_local_stream;
+ int n;
+ ACE_HANDLE fd1 = ACE_INVALID_HANDLE;
+ ACE_HANDLE fd2 = ACE_INVALID_HANDLE;
+ char buf[BUFSIZ];
+
+ if (this->accept (new_local_stream) == -1)
+ return -1;
+
+ if (new_local_stream.recv_handle (fd1) == -1
+ || new_local_stream.recv_handle (fd2) == -1)
+ return -1;
+ else
+ ACE_DEBUG ((LM_INFO, "received file descriptors %d and %d\n", fd1, fd2));
+
+ if ((n = ACE_OS::read (fd1, buf, sizeof buf)) == -1)
+ return -1;
+ else if (ACE_OS::write (fd2, upper_case (buf, n), n) == -1)
+ return -1;
+ if (ACE_OS::close (fd1) == -1
+ || ACE_OS::close (fd2) == -1)
+ return -1;
+ if (new_local_stream.close () == -1)
+ return -1;
+
+ return 0;
+}
+
+ACE_INLINE int
+Handle_L_Pipe::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
+{
+ this->ACE_LSOCK_Acceptor::close ();
+ return ACE_OS::unlink (this->rendezvous);
+}
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.cpp b/examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.cpp
new file mode 100644
index 00000000000..bd34890dbbc
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.cpp
@@ -0,0 +1,16 @@
+#include "Handle_L_SPIPE.h"
+// @(#)Handle_L_SPIPE.cpp 1.1 10/18/96
+
+
+#if !defined (__ACE_INLINE__)
+#include "Handle_L_SPIPE.i"
+#endif /* __ACE_INLINE__ */
+
+#if defined (ACE_HAS_STREAM_PIPES)
+
+const char *Handle_L_SPIPE::DEFAULT_RENDEZVOUS = "/tmp/foo_spipe";
+
+Handle_L_SPIPE local_spipe;
+ACE_Service_Object_Type lsp (&local_spipe, "Local_SPIPE");
+
+#endif /* ACE_HAS_STREAM_PIPES */
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.h b/examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.h
new file mode 100644
index 00000000000..a844764d0dd
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.h
@@ -0,0 +1,45 @@
+/* -*- C++ -*- */
+// @(#)Handle_L_SPIPE.h 1.1 10/18/96
+
+/* Handle connections from local UNIX ACE_SPIPE */
+/* Read from a well known ACE_SPIPE and write to stdout. */
+
+#if !defined (_HANDLE_L_SPIPE_H)
+#define _HANDLE_L_SPIPE_H
+
+#include "ace/Service_Config.h"
+#include "ace/Service_Record.h"
+#include "ace/SPIPE_Acceptor.h"
+
+#if defined (ACE_HAS_STREAM_PIPES)
+
+class Handle_L_SPIPE : public ACE_Service_Object, public ACE_SPIPE_Acceptor
+{
+public:
+ Handle_L_SPIPE (void);
+ virtual int init (int argc, char *argv[]);
+ virtual int info (char **, size_t) const;
+ virtual int fini (void);
+
+private:
+ int open (const ACE_SPIPE_Addr &rendezvous_spipe);
+ virtual int get_handle (void) const;
+ virtual int handle_input (int fd);
+ virtual int handle_close (int fd, ACE_Reactor_Mask);
+
+ static const char *DEFAULT_RENDEZVOUS;
+};
+
+extern ACE_Service_Object_Type lsp;
+
+#if defined (__ACE_INLINE__)
+#define ACE_INLINE inline
+#include "Handle_L_SPIPE.i"
+#else
+#define ACE_INLINE
+#endif /* __ACE_INLINE__ */
+
+#endif /* _HANDLE_L_SPIPE_H */
+
+
+#endif /* ACE_HAS_STREAM_PIPES */
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.i b/examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.i
new file mode 100644
index 00000000000..0d5e77e1b01
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.i
@@ -0,0 +1,118 @@
+/* -*- C++ -*- */
+// @(#)Handle_L_SPIPE.i 1.1 10/18/96
+
+
+#include "ace/SPIPE_Stream.h"
+#include "ace/Get_Opt.h"
+
+#if defined (ACE_HAS_STREAM_PIPES)
+
+ACE_INLINE
+Handle_L_SPIPE::Handle_L_SPIPE (void)
+{
+}
+
+ACE_INLINE int
+Handle_L_SPIPE::open (const ACE_SPIPE_Addr &rendezvous_spipe)
+{
+ if (this->ACE_SPIPE_Acceptor::open (rendezvous_spipe) == -1)
+ return -1;
+ else
+ return 0;
+}
+
+ACE_INLINE int
+Handle_L_SPIPE::info (char **strp, size_t length) const
+{
+ char buf[BUFSIZ];
+ ACE_SPIPE_Addr sa;
+
+ if (ACE_SPIPE_Acceptor::get_local_addr (sa) == -1)
+ return -1;
+
+ ACE_OS::sprintf (buf, "%s %s", sa.get_path_name (), "# tests local STREAM pipe\n");
+
+ if (*strp == 0 && (*strp = ACE_OS::strdup (buf)) == 0)
+ return -1;
+ else
+ ACE_OS::strncpy (*strp, buf, length);
+ return ACE_OS::strlen (buf);
+}
+
+ACE_INLINE int
+Handle_L_SPIPE::init (int argc, char *argv[])
+{
+ ACE_SPIPE_Addr susp;
+ const char *rendezvous = Handle_L_SPIPE::DEFAULT_RENDEZVOUS;
+ ACE_Get_Opt get_opt (argc, argv, "r:", 0);
+
+ for (int c; (c = get_opt ()) != -1; )
+ switch (c)
+ {
+ case 'r':
+ rendezvous = get_opt.optarg;
+ break;
+ default:
+ break;
+ }
+
+ ACE_OS::unlink (rendezvous);
+ susp.set (rendezvous);
+ if (this->open (susp) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), -1);
+ else if (ACE_Service_Config::reactor ()->register_handler (this,
+ ACE_Event_Handler::READ_MASK) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "registering service with ACE_Reactor\n"), -1);
+ return 0;
+}
+
+ACE_INLINE int
+Handle_L_SPIPE::fini (void)
+{
+ return ACE_Service_Config::reactor ()->remove_handler (this, ACE_Event_Handler::READ_MASK);
+}
+
+ACE_INLINE int
+Handle_L_SPIPE::get_handle (void) const
+{
+ return ACE_SPIPE::get_handle();
+}
+
+ACE_INLINE int
+Handle_L_SPIPE::handle_input (int)
+{
+ ACE_SPIPE_Stream new_spipe;
+ char buf[PIPE_BUF];
+ ACE_Str_Buf msg (buf, 0, sizeof buf);
+ int flags = 0;
+
+ /* Accept communication requests */
+ if (this->ACE_SPIPE_Acceptor::accept (new_spipe) == -1)
+ return -1;
+ else
+ {
+ ACE_SPIPE_Addr sa;
+
+ new_spipe.get_remote_addr (sa);
+
+ ACE_DEBUG ((LM_INFO, "accepted request from %s (gid = %d, uid = %d)\n",
+ sa.get_path_name (), sa.group_id (), sa.user_id ()));
+ }
+
+ while (new_spipe.recv ((ACE_Str_Buf *) 0, &msg, &flags) >= 0)
+ if (msg.len != 0)
+ ACE_OS::write (ACE_STDOUT, (const char *) msg.buf, (int) msg.len);
+ else
+ break;
+
+ if (new_spipe.close () == -1)
+ return -1;
+ return 0;
+}
+
+ACE_INLINE int
+Handle_L_SPIPE::handle_close (int, ACE_Reactor_Mask)
+{
+ return this->ACE_SPIPE_Acceptor::remove ();
+}
+#endif /* ACE_HAS_STREAM_PIPES */
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.cpp b/examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.cpp
new file mode 100644
index 00000000000..e9b2ba2483b
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.cpp
@@ -0,0 +1,17 @@
+#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
+// @(#)Handle_L_Stream.cpp 1.1 10/18/96
+
+#include "Handle_L_Stream.h"
+
+/* Static variables. */
+
+const char *Handle_L_Stream::DEFAULT_RENDEZVOUS = "/tmp/foo_stream";
+char *Handle_L_Stream::login_name = 0;
+
+#if !defined (__ACE_INLINE__)
+#include "Handle_L_Stream.i"
+#endif /* __ACE_INLINE__ */
+
+Handle_L_Stream local_stream;
+ACE_Service_Object_Type ls (&local_stream, "Local_Stream");
+#endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.h b/examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.h
new file mode 100644
index 00000000000..b06b914cfd4
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.h
@@ -0,0 +1,48 @@
+/* -*- C++ -*- */
+// @(#)Handle_L_Stream.h 1.1 10/18/96
+
+
+/* Handle connections from local UNIX domain sockets. */
+
+#if !defined (_HANDLE_L_STREAM_H)
+#define _HANDLE_L_STREAM_H
+
+#include "ace/Service_Config.h"
+#include "ace/Service_Record.h"
+#include "ace/UNIX_Addr.h"
+#include "ace/LSOCK_Acceptor.h"
+
+#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
+
+class Handle_L_Stream : public ACE_Service_Object, public ACE_LSOCK_Acceptor
+{
+public:
+ Handle_L_Stream (void);
+ ~Handle_L_Stream (void);
+ virtual int init (int argc, char *argv[]);
+ virtual int info (char **, size_t) const;
+ virtual int fini (void);
+
+private:
+ int open (const ACE_UNIX_Addr &suas, int async = 0);
+ virtual ACE_HANDLE get_handle (void) const;
+ virtual int handle_input (ACE_HANDLE fd);
+ virtual int handle_close (ACE_HANDLE fd, ACE_Reactor_Mask);
+
+ char rendezvous[MAXPATHLEN + 1];
+ static char *login_name;
+ static const char *DEFAULT_RENDEZVOUS;
+};
+
+extern ACE_Service_Object_Type ls;
+
+#if defined (__ACE_INLINE__)
+#define ACE_INLINE inline
+#include "Handle_L_Stream.i"
+#else
+#define ACE_INLINE
+#endif /* __ACE_INLINE__ */
+#endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */
+#endif /* _HANDLE_L_STREAM_H */
+
+
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.i b/examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.i
new file mode 100644
index 00000000000..e0ef5373b0b
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.i
@@ -0,0 +1,134 @@
+/* -*- C++ -*- */
+// @(#)Handle_L_Stream.i 1.1 10/18/96
+
+
+#include "ace/Get_Opt.h"
+
+ACE_INLINE
+Handle_L_Stream::~Handle_L_Stream (void)
+{
+}
+
+ACE_INLINE
+Handle_L_Stream::Handle_L_Stream (void)
+{
+ if (Handle_L_Stream::login_name == 0)
+ Handle_L_Stream::login_name = ACE_OS::cuserid (0);
+}
+
+ACE_INLINE int
+Handle_L_Stream::open (const ACE_UNIX_Addr &suas, int async)
+{
+ if (this->ACE_LSOCK_Acceptor::open (suas) == -1)
+ return -1;
+ else if (async && this->ACE_LSOCK_Acceptor::enable (SIGIO) == -1)
+ return -1;
+ else
+ return 0;
+}
+
+ACE_INLINE int
+Handle_L_Stream::info (char **strp, size_t length) const
+{
+ char buf[BUFSIZ];
+ ACE_UNIX_Addr sa;
+
+ if (this->get_local_addr (sa) == -1)
+ return -1;
+
+ ACE_OS::sprintf (buf, "%s %s", sa.get_path_name (),
+ "# tests local ACE_Stream\n");
+
+ if (*strp == 0 && (*strp = ACE_OS::strdup (buf)) == 0)
+ return -1;
+ else
+ ACE_OS::strncpy (*strp, buf, length);
+ return ACE_OS::strlen (buf);
+}
+
+ACE_INLINE int
+Handle_L_Stream::init (int argc, char *argv[])
+{
+ ACE_UNIX_Addr sus;
+ const char *r = Handle_L_Stream::DEFAULT_RENDEZVOUS;
+ ACE_Get_Opt get_opt (argc, argv, "r:", 0);
+
+ for (int c; (c = get_opt ()) != -1; )
+ switch (c)
+ {
+ case 'r':
+ r = get_opt.optarg;
+ break;
+ default:
+ break;
+ }
+
+ ACE_OS::strncpy (this->rendezvous, r, MAXPATHLEN);
+ ACE_OS::unlink (this->rendezvous);
+ sus.set (this->rendezvous);
+ if (this->open (sus) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), -1);
+ else if (ACE_Service_Config::reactor ()->register_handler (this,
+ ACE_Event_Handler::READ_MASK) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "registering service with ACE_Reactor\n"), -1);
+ return 0;
+}
+
+ACE_INLINE int
+Handle_L_Stream::fini (void)
+{
+ return ACE_Service_Config::reactor ()->remove_handler (this, ACE_Event_Handler::READ_MASK);
+}
+
+ACE_INLINE ACE_HANDLE
+Handle_L_Stream::get_handle (void) const
+{
+ return ACE_LSOCK_Acceptor::get_handle ();
+}
+
+ACE_INLINE int
+Handle_L_Stream::handle_input (ACE_HANDLE)
+{
+ ACE_LSOCK_Stream new_local_stream;
+ ACE_UNIX_Addr sa;
+ int fd = ACE_INVALID_HANDLE;
+ char buf[BUFSIZ];
+
+ if (this->accept (new_local_stream, &sa) == -1)
+ return -1;
+
+ if (new_local_stream.recv_handle (fd) == -1)
+ return -1;
+ else
+ ACE_DEBUG ((LM_INFO,
+ "received file descriptor %d on ACE_Stream %s\n",
+ fd, sa.get_path_name ()));
+
+ ACE_OS::puts ("----------------------------------------");
+
+ for (ssize_t n; n = ACE_OS::read (fd, buf, sizeof buf); )
+ ACE_OS::write (ACE_STDOUT, buf, n);
+
+ ACE_OS::puts ("----------------------------------------");
+
+ time_t t = ACE_OS::time (0L);
+ char *cs = ACE_OS::ctime (&t);
+
+ if (new_local_stream.send (4,
+ Handle_L_Stream::login_name, ACE_OS::strlen (Handle_L_Stream::login_name),
+ cs, ACE_OS::strlen (cs)) == -1)
+ return -1;
+
+ if (ACE_OS::close (fd) == -1)
+ return -1;
+ if (new_local_stream.close () == -1)
+ return -1;
+ return 0;
+}
+
+ACE_INLINE int
+Handle_L_Stream::handle_close (ACE_HANDLE, ACE_Reactor_Mask)
+{
+ this->ACE_LSOCK_Acceptor::close ();
+ return ACE_OS::unlink (this->rendezvous);
+}
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.cpp b/examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.cpp
new file mode 100644
index 00000000000..b5a3622a5ba
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.cpp
@@ -0,0 +1,36 @@
+#include "Handle_R_Dgram.h"
+// @(#)Handle_R_Dgram.cpp 1.1 10/18/96
+
+
+#if defined (SunOS4)
+extern "C"
+{
+ int init (void);
+ int fini (void);
+ void __sti__Handle_R_Dgram_C_init_();
+ void __std__Handle_R_Dgram_C_init_();
+}
+
+int
+init (void)
+{
+ __sti__Handle_R_Dgram_C_init_();
+ return 0;
+}
+
+int
+fini (void)
+{
+ __std__Handle_R_Dgram_C_init_();
+ return 0;
+}
+#endif /* SunOS4 */
+
+unsigned short Handle_R_Dgram::DEFAULT_PORT = ACE_DEFAULT_SERVER_PORT;
+
+#if !defined (__ACE_INLINE__)
+#include "Handle_R_Dgram.i"
+#endif /* __ACE_INLINE__ */
+
+Handle_R_Dgram remote_dgram;
+ACE_Service_Object_Type rd (&remote_dgram, "Remote_Dgram");
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.h b/examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.h
new file mode 100644
index 00000000000..493a4c85d7a
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.h
@@ -0,0 +1,40 @@
+/* -*- C++ -*- */
+// @(#)Handle_R_Dgram.h 1.1 10/18/96
+
+/* Handles INET datagram messages from remote hosts. */
+
+#if !defined (_HANDLE_R_DGRAM_H)
+#define _HANDLE_R_DGRAM_H
+
+#include "ace/Service_Config.h"
+#include "ace/Service_Record.h"
+#include "ace/INET_Addr.h"
+#include "ace/SOCK_Dgram.h"
+
+class Handle_R_Dgram : public ACE_Service_Object, public ACE_SOCK_Dgram
+{
+public:
+ Handle_R_Dgram (void);
+ virtual int init (int argc, char *argv[]);
+ virtual int info (char **, size_t) const;
+ virtual int fini (void);
+
+private:
+ int open (const ACE_INET_Addr &r, int async = 0);
+ virtual int get_handle (void) const;
+ virtual int handle_input (int fd);
+ virtual int handle_close (int fd, ACE_Reactor_Mask);
+
+ static unsigned short DEFAULT_PORT;
+};
+
+extern ACE_Service_Object_Type rd;
+
+#if defined (__ACE_INLINE__)
+#define ACE_INLINE inline
+#include "Handle_R_Dgram.i"
+#else
+#define ACE_INLINE
+#endif /* __ACE_INLINE__ */
+
+#endif /* _HANDLE_R_DGRAM_H */
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.i b/examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.i
new file mode 100644
index 00000000000..9cefc302b00
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.i
@@ -0,0 +1,106 @@
+/* -*- C++ -*- */
+// @(#)Handle_R_Dgram.i 1.1 10/18/96
+
+
+#include "ace/Get_Opt.h"
+
+ACE_INLINE
+Handle_R_Dgram::Handle_R_Dgram (void)
+{
+}
+
+ACE_INLINE
+Handle_R_Dgram::open (const ACE_INET_Addr &r, int async)
+{
+ if (this->ACE_SOCK_Dgram::open (r) == -1)
+ return -1;
+ else if (async && this->ACE_SOCK_Dgram::enable (SIGIO) == -1)
+ return -1;
+ else
+ return 0;
+}
+
+ACE_INLINE int
+Handle_R_Dgram::info (char **strp, size_t length) const
+{
+ char buf[BUFSIZ];
+ ACE_INET_Addr sa;
+
+ if (this->get_local_addr (sa) == -1)
+ return -1;
+
+ ACE_OS::sprintf (buf, "%d/%s %s", sa.get_port_number (), "udp", "# tests remote dgram\n");
+
+ if (*strp == 0 && (*strp = ACE_OS::strdup (buf)) == 0)
+ return -1;
+ else
+ ACE_OS::strncpy (*strp, buf, length);
+ return ACE_OS::strlen (buf);
+}
+
+ACE_INLINE int
+Handle_R_Dgram::init (int argc, char *argv[])
+{
+ ACE_INET_Addr sidg (Handle_R_Dgram::DEFAULT_PORT);
+ ACE_Get_Opt get_opt (argc, argv, "p:", 0);
+
+ for (int c; (c = get_opt ()) != -1; )
+ switch (c)
+ {
+ case 'p':
+ sidg.set (ACE_OS::atoi (get_opt.optarg));
+ break;
+ default:
+ break;
+ }
+
+ if (this->open (sidg) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), -1);
+ else if (ACE_Service_Config::reactor ()->register_handler
+ (this, ACE_Event_Handler::READ_MASK) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "registering service with ACE_Reactor\n"), -1);
+ return 0;
+}
+
+ACE_INLINE int
+Handle_R_Dgram::fini (void)
+{
+ return ACE_Service_Config::reactor ()->remove_handler
+ (this, ACE_Event_Handler::READ_MASK);
+}
+
+ACE_INLINE int
+Handle_R_Dgram::get_handle (void) const
+{
+ return ACE_SOCK_Dgram::get_handle ();
+}
+
+ACE_INLINE int
+Handle_R_Dgram::handle_input (int)
+{
+ ACE_INET_Addr sa;
+ char buf[0x2000]; /* 8 k buffer */
+ int n;
+
+ if ((n = this->recv (buf, sizeof buf, sa)) == -1)
+ return -1;
+ else
+ ACE_DEBUG ((LM_INFO, "received datagram from host %s on port %d\n",
+ sa.get_host_name (), sa.get_port_number ()));
+
+ ACE_OS::puts ("----------------------------------------");
+ ACE_OS::write (ACE_STDOUT, buf, n);
+
+ if (buf[n - 1] != '\n')
+ putchar ('\n');
+
+ ACE_OS::puts ("----------------------------------------");
+
+ return 0;
+}
+
+ACE_INLINE int
+Handle_R_Dgram::handle_close (int, ACE_Reactor_Mask)
+{
+ return this->ACE_SOCK_Dgram::close ();
+}
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.cpp b/examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.cpp
new file mode 100644
index 00000000000..91549a321e8
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.cpp
@@ -0,0 +1,39 @@
+#include "Handle_R_Stream.h"
+// @(#)Handle_R_Stream.cpp 1.1 10/18/96
+
+
+#if defined (SunOS4)
+extern "C"
+{
+ int init (void);
+ int fini (void);
+ void __sti__Handle_R_Stream_C_recv_n_();
+ void __std__Handle_R_Stream_C_recv_n_();
+}
+
+int
+init (void)
+{
+ __sti__Handle_R_Stream_C_recv_n_();
+ return 0;
+}
+
+int
+fini (void)
+{
+ __std__Handle_R_Stream_C_recv_n_();
+ return 0;
+}
+#endif /* SunOS4 */
+
+/* Static variables. */
+
+unsigned short Handle_R_Stream::DEFAULT_PORT = ACE_DEFAULT_SERVER_PORT;
+char *Handle_R_Stream::login_name = 0;
+
+#if !defined (__ACE_INLINE__)
+#include "Handle_R_Stream.i"
+#endif /* __ACE_INLINE__ */
+
+Handle_R_Stream remote_stream;
+ACE_Service_Object_Type rs (&remote_stream, "Remote_Stream");
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.h b/examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.h
new file mode 100644
index 00000000000..a612eb29ad5
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.h
@@ -0,0 +1,46 @@
+/* -*- C++ -*- */
+// @(#)Handle_R_Stream.h 1.1 10/18/96
+
+/* Handle connections from remote INET connections. */
+
+#if !defined (_HANDLE_R_STREAM_H)
+#define _HANDLE_R_STREAM_H
+
+#include "ace/Service_Config.h"
+#include "ace/Service_Record.h"
+#include "ace/SOCK_Stream.h"
+#include "ace/SOCK_Acceptor.h"
+#include "ace/INET_Addr.h"
+
+class Handle_R_Stream : public ACE_Service_Object, public ACE_SOCK_Acceptor
+{
+public:
+ Handle_R_Stream (void);
+ virtual int init (int argc, char *argv[]);
+ virtual int info (char **, size_t) const;
+ virtual int fini (void);
+
+private:
+ int open (const ACE_INET_Addr &sia, int async = 0);
+ virtual int get_handle (void) const;
+ virtual int handle_input (int fd);
+ virtual int handle_close (int fd, ACE_Reactor_Mask);
+
+ ACE_SOCK_Stream new_remote_stream;
+ static u_short DEFAULT_PORT;
+ static char *login_name;
+};
+
+extern ACE_Service_Object_Type rs;
+
+#if defined (__ACE_INLINE__)
+#define ACE_INLINE inline
+#include "Handle_R_Stream.i"
+#else
+#define ACE_INLINE
+#endif /* __ACE_INLINE__ */
+
+#endif /* _HANDLE_R_STREAM_H */
+
+
+
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.i b/examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.i
new file mode 100644
index 00000000000..ce605be5180
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.i
@@ -0,0 +1,124 @@
+/* -*- C++ -*- */
+// @(#)Handle_R_Stream.i 1.1 10/18/96
+
+
+#include "ace/Get_Opt.h"
+
+ACE_INLINE
+Handle_R_Stream::Handle_R_Stream (void)
+{
+ if (Handle_R_Stream::login_name == 0)
+ Handle_R_Stream::login_name = ACE_OS::cuserid (0);
+}
+
+ACE_INLINE int
+Handle_R_Stream::open (const ACE_INET_Addr &sia, int async)
+{
+ if (this->ACE_SOCK_Acceptor::open (sia) == -1)
+ return -1;
+ else if (async && this->ACE_SOCK_Acceptor::enable (SIGIO) == -1)
+ return -1;
+ else
+ return 0;
+}
+
+ACE_INLINE int
+Handle_R_Stream::info (char **strp, size_t length) const
+{
+ char buf[BUFSIZ];
+ ACE_INET_Addr sa;
+
+ if (this->get_local_addr (sa) == -1)
+ return -1;
+
+ ACE_OS::sprintf (buf, "%d/%s %s", sa.get_port_number (), "tcp", "# tests remote stream\n");
+
+ if (*strp == 0 && (*strp = ACE_OS::strdup (buf)) == 0)
+ return -1;
+ else
+ ACE_OS::strncpy (*strp, buf, length);
+ return ACE_OS::strlen (buf);
+}
+
+ACE_INLINE int
+Handle_R_Stream::init (int argc, char *argv[])
+{
+ ACE_INET_Addr sis (Handle_R_Stream::DEFAULT_PORT);
+ ACE_Get_Opt get_opt (argc, argv, "p:", 0);
+
+ for (int c; (c = get_opt ()) != -1; )
+ switch (c)
+ {
+ case 'p':
+ sis.set (ACE_OS::atoi (get_opt.optarg));
+ break;
+ default:
+ break;
+ }
+
+ if (this->open (sis) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), -1);
+ else if (ACE_Service_Config::reactor ()->register_handler (this,
+ ACE_Event_Handler::READ_MASK) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "registering service with ACE_Reactor\n"), -1);
+ return 0;
+}
+
+ACE_INLINE int
+Handle_R_Stream::fini (void)
+{
+ return ACE_Service_Config::reactor ()->remove_handler (this, ACE_Event_Handler::READ_MASK);
+}
+
+ACE_INLINE int
+Handle_R_Stream::get_handle (void) const
+{
+ return ACE_SOCK_Acceptor::get_handle ();
+}
+
+ACE_INLINE int
+Handle_R_Stream::handle_input (int)
+{
+ char buf[BUFSIZ];
+ int bytes;
+
+ if (this->accept (this->new_remote_stream) == -1)
+ return -1;
+ else
+ ACE_DEBUG ((LM_INFO, "new_remote_stream fd = %d\n",
+ this->new_remote_stream.get_handle ()));
+
+ ACE_INET_Addr sa;
+
+ if (this->new_remote_stream.get_remote_addr (sa) == -1)
+ return -1;
+
+ ACE_DEBUG ((LM_INFO, "accepted from host %s at port %d\n",
+ sa.get_host_name (), sa.get_port_number ()));
+
+ ACE_OS::puts ("----------------------------------------");
+
+ while ((bytes = this->new_remote_stream.recv (buf, sizeof buf)) > 0)
+ ACE_OS::write (ACE_STDOUT, buf, bytes);
+
+ ACE_OS::puts ("----------------------------------------");
+
+ time_t t = ACE_OS::time (0L);
+ char *cs = ACE_OS::ctime (&t);
+
+ if (this->new_remote_stream.send (4,
+ Handle_R_Stream::login_name, ACE_OS::strlen (Handle_R_Stream::login_name),
+ cs, ACE_OS::strlen (cs)) == -1)
+ return -1;
+
+ if (this->new_remote_stream.close () == -1)
+ return -1;
+
+ return 0;
+}
+
+ACE_INLINE int
+Handle_R_Stream::handle_close (int, ACE_Reactor_Mask)
+{
+ return this->ACE_SOCK_Acceptor::close ();
+}
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp b/examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp
new file mode 100644
index 00000000000..339ab3023b8
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp
@@ -0,0 +1,200 @@
+#if !defined (ACE_HANDLE_THR_STREAM_C)
+// @(#)Handle_Thr_Stream.cpp 1.1 10/18/96
+
+#define ACE_HANDLE_THR_STREAM_C
+
+#include "ace/Get_Opt.h"
+#include "ace/INET_Addr.h"
+#include "Handle_Thr_Stream.h"
+
+#if defined (ACE_HAS_THREADS)
+
+#if !defined (__ACE_INLINE__)
+#include "Handle_Thr_Stream.i"
+#endif /* __ACE_INLINE__ */
+
+// Shorthand names.
+#define SH SVC_HANDLER
+#define PR_AC_1 ACE_PEER_ACCEPTOR_1
+#define PR_AC_2 ACE_PEER_ACCEPTOR_2
+#define PR_ST_1 ACE_PEER_STREAM_1
+#define PR_ST_2 ACE_PEER_STREAM_2
+
+template <class SH, PR_AC_1>
+Handle_Thr_Stream<SH, PR_AC_2>::~Handle_Thr_Stream (void)
+{
+}
+
+template <class SH, PR_AC_1>
+Handle_Thr_Stream<SH, PR_AC_2>::Handle_Thr_Stream (void)
+#if defined (ACE_HAS_THREADS)
+ : thr_flags_ (THR_DETACHED | THR_NEW_LWP)
+#else
+ : thr_flags_ (0)
+#endif /* ACE_HAS_THREADS */
+{
+}
+
+template <class SH, PR_AC_1> int
+Handle_Thr_Stream<SH, PR_AC_2>::info (char **strp,
+ size_t length) const
+{
+ char buf[BUFSIZ];
+ ACE_INET_Addr sa;
+
+ if (this->acceptor ().get_local_addr (sa) == -1)
+ return -1;
+
+ ACE_OS::sprintf (buf, "%d/%s %s", sa.get_port_number (), "tcp",
+ "# tests threaded remote stream\n");
+
+ if (*strp == 0 && (*strp = ACE_OS::strdup (buf)) == 0)
+ return -1;
+ else
+ ACE_OS::strncpy (*strp, buf, length);
+ return ACE_OS::strlen (buf);
+}
+
+template <class SH, PR_AC_1> int
+Handle_Thr_Stream<SH, PR_AC_2>::init (int argc, char *argv[])
+{
+ ACE_INET_Addr local_addr (inherited::DEFAULT_PORT_);
+ int n_threads = ACE_DEFAULT_THREADS;
+
+ ACE_Get_Opt get_opt (argc, argv, "p:t:", 0);
+
+ for (int c; (c = get_opt ()) != -1; )
+ {
+ switch (c)
+ {
+ case 'p':
+ local_addr.set (ACE_OS::atoi (get_opt.optarg));
+ break;
+ case 't':
+ n_threads = ACE_OS::atoi (get_opt.optarg);
+ break;
+ default:
+ break;
+ }
+ }
+
+ // Initialize the threading strategy.
+ if (this->thr_strategy_.open (&this->thr_mgr_,
+ this->thr_flags_,
+ n_threads) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), -1);
+
+ // Initialize the Acceptor base class, passing in the desired
+ // concurrency strategy.
+ else if (this->open (local_addr, ACE_Service_Config::reactor (),
+ 0, 0, &this->thr_strategy_) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), -1);
+ else
+ return 0;
+}
+
+template <class SH, PR_AC_1> int
+Handle_Thr_Stream<SH, PR_AC_2>::fini (void)
+{
+ return ACE_Service_Config::reactor ()->remove_handler
+ (this, ACE_Event_Handler::READ_MASK);
+}
+
+template <PR_ST_1>
+CLI_Stream<PR_ST_2>::CLI_Stream (ACE_Thread_Manager *thr_mgr)
+ : inherited (thr_mgr)
+{
+}
+
+template <PR_ST_1> int
+CLI_Stream<PR_ST_2>::close (u_long)
+{
+ ACE_DEBUG ((LM_DEBUG, "(%t) client stream object closing down\n"));
+ this->peer ().close ();
+
+ /* Must be allocated dynamically! */
+ delete this;
+ return 0;
+}
+
+template <PR_ST_1> int
+CLI_Stream<PR_ST_2>::open (void *)
+{
+ ACE_INET_Addr sa;
+
+ ACE_DEBUG ((LM_DEBUG, "(%t) client handle = %d\n",
+ this->peer ().get_handle ()));
+
+ if (this->peer ().get_remote_addr (sa) == -1)
+ return -1;
+
+ ACE_DEBUG ((LM_DEBUG, "(%t) accepted at port %d\n",
+ sa.get_port_number ()));
+ return 0;
+}
+
+template <PR_ST_1> int
+CLI_Stream<PR_ST_2>::svc (void)
+{
+ char buf[BUFSIZ];
+ char login_name[L_cuserid];
+ int bytes;
+
+ ACE_OS::puts ("----------------------------------------");
+
+ while ((bytes = this->peer ().recv (buf, sizeof buf)) > 0)
+ ACE_OS::write (ACE_STDOUT, buf, bytes);
+
+ ACE_OS::puts ("----------------------------------------");
+ ACE_OS::fflush (stdout);
+
+ long t = ACE_OS::time (0L);
+ ACE_OS::cuserid (login_name);
+ ACE_OS::sprintf (buf, "user %s %s", login_name, ACE_OS::ctime (&t));
+
+ if (this->peer ().send_n (buf, ACE_OS::strlen (buf) + 1) == -1)
+ return -1;
+
+ ACE_DEBUG ((LM_DEBUG, "(%t) sent reply %s", buf));
+ return 0;
+}
+
+#undef SH
+#undef PR_AC_1
+#undef PR_AC_2
+#undef PR_ST_1
+#undef PR_ST_2
+
+//----------------------------------------
+
+#if defined (ACE_HAS_TLI)
+#include "ace/TLI_Stream.h"
+#include "ace/TLI_Acceptor.h"
+#define THR_STREAM ACE_TLI_STREAM
+#define THR_ACCEPTOR ACE_TLI_ACCEPTOR
+#else
+#include "ace/SOCK_Stream.h"
+#include "ace/SOCK_Acceptor.h"
+#define THR_STREAM ACE_SOCK_STREAM
+#define THR_ACCEPTOR ACE_SOCK_ACCEPTOR
+#endif /* ACE_HAS_TLI */
+#include "ace/INET_Addr.h"
+
+typedef CLI_Stream <THR_STREAM> CLI_STREAM;
+typedef Handle_Thr_Stream<CLI_STREAM, THR_ACCEPTOR> HANDLE_THR_STREAM;
+
+/* Static class variables */
+
+u_short HANDLE_THR_STREAM::DEFAULT_PORT_ = ACE_DEFAULT_THR_PORT;
+
+/* Service object */
+HANDLE_THR_STREAM remote_thr_stream;
+ACE_Service_Object_Type rts (&remote_thr_stream, "Remote_Thr_Stream");
+
+#if defined (ACE_TEMPLATES_REQUIRE_SPECIALIZATION)
+template class CLI_Stream<THR_STREAM>;
+template class Handle_Thr_Stream<CLI_Stream<THR_STREAM>, THR_ACCEPTOR>;
+#endif /* ACE_TEMPLATES_REQUIRE_SPECIALIZATION */
+
+#endif /* ACE_HAS_THREADS */
+#endif /* ACE_HANDLE_THR_STREAM_C */
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.h b/examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.h
new file mode 100644
index 00000000000..9068fd1105d
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.h
@@ -0,0 +1,76 @@
+/* -*- C++ -*- */
+// @(#)Handle_Thr_Stream.h 1.1 10/18/96
+
+/* Handle connections from remote INET connections. */
+
+#if !defined (_HANDLE_THR_STREAM_H)
+#define _HANDLE_THR_STREAM_H
+
+#include "ace/Acceptor.h"
+#include "ace/Service_Record.h"
+
+#if defined (ACE_HAS_THREADS)
+
+template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1>
+class Handle_Thr_Stream : public ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2>
+{
+public:
+ // = Initialization and termination.
+ Handle_Thr_Stream (void);
+ ~Handle_Thr_Stream (void);
+
+ // = Dynamic linking hooks.
+ virtual int init (int argc, char *argv[]);
+ virtual int info (char **, size_t) const;
+ virtual int fini (void);
+
+private:
+ typedef Handle_Thr_Stream<SVC_HANDLER, ACE_PEER_ACCEPTOR_2> inherited;
+
+ static u_short DEFAULT_PORT_;
+
+ ACE_Thread_Manager thr_mgr_;
+ // Thread manager.
+
+ ACE_Thread_Strategy<SVC_HANDLER> thr_strategy_;
+ // Threading strategy.
+
+ int thr_flags_;
+ // Threading flags.
+};
+
+// This class interacts with the client, running in a separate
+// thread...
+template <ACE_PEER_STREAM_1>
+class CLI_Stream : public ACE_Svc_Handler<ACE_PEER_STREAM_2, ACE_MT_SYNCH>
+{
+public:
+ CLI_Stream (ACE_Thread_Manager * = 0);
+
+ virtual int open (void *);
+ // Open the service.
+
+ virtual int close (u_long);
+ // Close down the service.
+
+ virtual int svc (void);
+ // Execute the service.
+
+protected:
+ typedef ACE_Svc_Handler<ACE_PEER_STREAM_2, ACE_MT_SYNCH> inherited;
+};
+
+extern ACE_Service_Object_Type rts;
+
+#if defined (__ACE_INLINE__)
+#define ACE_INLINE inline
+#include "Handle_Thr_Stream.i"
+#else
+#define ACE_INLINE
+#endif /* __ACE_INLINE__ */
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "Handle_Thr_Stream.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+#endif /* ACE_HAS_THREADS */
+#endif /* _HANDLE_THR_STREAM_H */
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.i b/examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.i
new file mode 100644
index 00000000000..5f43e47c7ec
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.i
@@ -0,0 +1 @@
+/* -*- C++ -*- */
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_Timeout.cpp b/examples/Service_Configurator/IPC-tests/server/Handle_Timeout.cpp
new file mode 100644
index 00000000000..bfb562185e6
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_Timeout.cpp
@@ -0,0 +1,34 @@
+#include "Handle_Timeout.h"
+// @(#)Handle_Timeout.cpp 1.1 10/18/96
+
+
+#if defined (SunOS4)
+extern "C"
+{
+ int init (void);
+ int fini (void);
+ void __sti__Handle_Timeout_C_init_();
+ void __std__Handle_Timeout_C_init_();
+}
+
+int
+init (void)
+{
+ __sti__Handle_Timeout_C_init_();
+ return 0;
+}
+
+int
+fini (void)
+{
+ __std__Handle_Timeout_C_init_();
+ return 0;
+}
+#endif /* SunOS4 */
+
+#if !defined (__ACE_INLINE__)
+#include "Handle_Timeout.i"
+#endif /* __ACE_INLINE__ */
+
+Handle_Timeout timer_1;
+ACE_Service_Object_Type t1 (&timer_1, "Timer_1");
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_Timeout.h b/examples/Service_Configurator/IPC-tests/server/Handle_Timeout.h
new file mode 100644
index 00000000000..efcb7575dad
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_Timeout.h
@@ -0,0 +1,36 @@
+/* -*- C++ -*- */
+// @(#)Handle_Timeout.h 1.1 10/18/96
+
+/* Handles timeouts. */
+
+#if !defined (_HANDLE_TIMEOUT_H)
+#define _HANDLE_TIMEOUT_H
+
+#include "ace/Service_Config.h"
+#include "ace/Service_Record.h"
+
+class Handle_Timeout : public ACE_Service_Object
+{
+public:
+ Handle_Timeout (void);
+ virtual int init (int argc, char *argv[]);
+ virtual int info (char **, size_t) const;
+ virtual int fini (void);
+
+private:
+ virtual int get_handle (void) const;
+ virtual int handle_timeout (const ACE_Time_Value &tv, const void *arg);
+
+ int count;
+};
+
+extern ACE_Service_Object_Type t1;
+
+#if defined (__ACE_INLINE__)
+#define ACE_INLINE inline
+#include "Handle_Timeout.i"
+#else
+#define ACE_INLINE
+#endif /* __ACE_INLINE__ */
+
+#endif /* _HANDLE_TIMEOUT_H */
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_Timeout.i b/examples/Service_Configurator/IPC-tests/server/Handle_Timeout.i
new file mode 100644
index 00000000000..623efaf9437
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Handle_Timeout.i
@@ -0,0 +1,74 @@
+/* -*- C++ -*- */
+// @(#)Handle_Timeout.i 1.1 10/18/96
+
+
+#include "ace/Service_Config.h"
+#include "ace/Get_Opt.h"
+
+ACE_INLINE
+Handle_Timeout::Handle_Timeout (void): count (0)
+{
+}
+
+ACE_INLINE int
+Handle_Timeout::info (char **strp, size_t length) const
+{
+ char buf[BUFSIZ];
+
+ ACE_OS::sprintf (buf, "%s", "# tests timeout facility\n");
+
+ if (*strp == 0 && (*strp = ACE_OS::strdup (buf)) == 0)
+ return -1;
+ else
+ ACE_OS::strncpy (*strp, buf, length);
+ return ACE_OS::strlen (buf);
+}
+
+ACE_INLINE int
+Handle_Timeout::init (int argc, char *argv[])
+{
+ ACE_Time_Value delta (10);
+ ACE_Time_Value interval (1);
+ ACE_Get_Opt get_opt (argc, argv, "a:d:i:", 0);
+ int arg = 0;
+
+ for (int c; (c = get_opt ()) != -1; )
+ switch (c)
+ {
+ case 'd':
+ delta.sec (ACE_OS::atoi (get_opt.optarg));
+ break;
+ case 'i':
+ interval.sec (ACE_OS::atoi (get_opt.optarg));
+ break;
+ case 'a':
+ arg = atoi (get_opt.optarg);
+ break;
+ default:
+ break;
+ }
+
+ return ACE_Service_Config::reactor ()->schedule_timer (this, (void *) arg, delta, interval);
+}
+
+ACE_INLINE int
+Handle_Timeout::fini (void)
+{
+ return 0;
+}
+
+ACE_INLINE int
+Handle_Timeout::get_handle (void) const
+{
+ return -1;
+}
+
+ACE_INLINE int
+Handle_Timeout::handle_timeout (const ACE_Time_Value &tv, const void *arg)
+{
+ if (this->count++ >= 10)
+ return -1; /* Automatically cancel periodic timer... */
+ ACE_DEBUG ((LM_INFO, "time for this(%u) expired at (%d, %d) with arg = %d\n",
+ this, tv.sec (), tv.usec (), int (arg)));
+ return 0;
+}
diff --git a/examples/Service_Configurator/IPC-tests/server/Makefile b/examples/Service_Configurator/IPC-tests/server/Makefile
new file mode 100644
index 00000000000..3f5a97aabb3
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/Makefile
@@ -0,0 +1,1016 @@
+#----------------------------------------------------------------------------
+# @(#)Makefile 1.1 10/18/96
+#
+# Makefile for the server-side of the primary Reactor tests
+#----------------------------------------------------------------------------
+
+#----------------------------------------------------------------------------
+# Local macros
+#----------------------------------------------------------------------------
+
+BIN = server_test
+LIB = libServer.a
+SHLIB = libServer.so
+
+FILES = Handle_L_Dgram \
+ Handle_L_CODgram \
+ Handle_L_FIFO \
+ Handle_L_Pipe \
+ Handle_L_Stream \
+ Handle_R_Dgram \
+ Handle_R_Stream \
+ Handle_Timeout \
+ Handle_Broadcast \
+ Handle_L_SPIPE \
+ Handle_Thr_Stream
+
+SRC = $(addsuffix .cpp,$(BIN))
+OBJ = $(SRC:%.cpp=$(VDIR)%.o)
+
+LSRC = $(addsuffix .cpp,$(FILES))
+LIBS = -lACE
+
+VLDLIBS = $(LDLIBS:%=%$(VAR))
+
+BUILD = $(VLIB) $(VSHLIB) $(SHLIBA) $(VBIN)
+
+#----------------------------------------------------------------------------
+# Include macros and targets
+#----------------------------------------------------------------------------
+
+include $(WRAPPER_ROOT)/include/makeinclude/wrapper_macros.GNU
+include $(WRAPPER_ROOT)/include/makeinclude/macros.GNU
+include $(WRAPPER_ROOT)/include/makeinclude/rules.common.GNU
+include $(WRAPPER_ROOT)/include/makeinclude/rules.nonested.GNU
+include $(WRAPPER_ROOT)/include/makeinclude/rules.lib.GNU
+include $(WRAPPER_ROOT)/include/makeinclude/rules.bin.GNU
+include $(WRAPPER_ROOT)/include/makeinclude/rules.local.GNU
+
+#----------------------------------------------------------------------------
+# Local targets
+#----------------------------------------------------------------------------
+
+LDFLAGS += -L./
+
+#----------------------------------------------------------------------------
+# Dependencies
+#----------------------------------------------------------------------------
+# DO NOT DELETE THIS LINE -- g++dep uses it.
+# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
+
+.obj/Handle_L_Dgram.o .shobj/Handle_L_Dgram.so: Handle_L_Dgram.cpp Handle_L_Dgram.h \
+ $(WRAPPER_ROOT)/ace/Service_Config.h \
+ $(WRAPPER_ROOT)/ace/Service_Object.h \
+ $(WRAPPER_ROOT)/ace/Shared_Object.h \
+ $(WRAPPER_ROOT)/ace/ACE.h \
+ $(WRAPPER_ROOT)/ace/OS.h \
+ $(WRAPPER_ROOT)/ace/Time_Value.h \
+ $(WRAPPER_ROOT)/ace/config.h \
+ $(WRAPPER_ROOT)/ace/Trace.h \
+ $(WRAPPER_ROOT)/ace/ACE.i \
+ $(WRAPPER_ROOT)/ace/Log_Msg.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.h \
+ $(WRAPPER_ROOT)/ace/Log_Priority.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.i \
+ $(WRAPPER_ROOT)/ace/Event_Handler.h \
+ $(WRAPPER_ROOT)/ace/Thread_Manager.h \
+ $(WRAPPER_ROOT)/ace/Thread.h \
+ $(WRAPPER_ROOT)/ace/Synch.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(WRAPPER_ROOT)/ace/Synch_T.h \
+ $(WRAPPER_ROOT)/ace/Synch_T.cpp \
+ $(WRAPPER_ROOT)/ace/Synch_T.i \
+ $(WRAPPER_ROOT)/ace/Set.h \
+ $(WRAPPER_ROOT)/ace/Set.cpp \
+ $(WRAPPER_ROOT)/ace/Set.i \
+ $(WRAPPER_ROOT)/ace/Proactor.h \
+ $(WRAPPER_ROOT)/ace/Message_Block.h \
+ $(WRAPPER_ROOT)/ace/Malloc.h \
+ $(WRAPPER_ROOT)/ace/Malloc_T.h \
+ $(WRAPPER_ROOT)/ace/Malloc_T.cpp \
+ $(WRAPPER_ROOT)/ace/Malloc_T.i \
+ $(WRAPPER_ROOT)/ace/Memory_Pool.h \
+ $(WRAPPER_ROOT)/ace/Signal.h \
+ $(WRAPPER_ROOT)/ace/Mem_Map.h \
+ $(WRAPPER_ROOT)/ace/Timer_Queue.h \
+ $(WRAPPER_ROOT)/ace/Timer_Queue.i \
+ $(WRAPPER_ROOT)/ace/ReactorEx.h \
+ $(WRAPPER_ROOT)/ace/Token.h \
+ $(WRAPPER_ROOT)/ace/Reactor.h \
+ $(WRAPPER_ROOT)/ace/Handle_Set.h \
+ $(WRAPPER_ROOT)/ace/Pipe.h \
+ $(WRAPPER_ROOT)/ace/Pipe.i \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.h \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.h \
+ $(WRAPPER_ROOT)/ace/SOCK.h \
+ $(WRAPPER_ROOT)/ace/Addr.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.i \
+ $(WRAPPER_ROOT)/ace/SOCK.i \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.i \
+ $(WRAPPER_ROOT)/ace/INET_Addr.h \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.i \
+ $(WRAPPER_ROOT)/ace/Reactor.i \
+ $(WRAPPER_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(WRAPPER_ROOT)/ace/Service_Record.h \
+ $(WRAPPER_ROOT)/ace/Stream.h \
+ $(WRAPPER_ROOT)/ace/IO_Cntl_Msg.h \
+ $(WRAPPER_ROOT)/ace/Module.h \
+ $(WRAPPER_ROOT)/ace/Task.h \
+ $(WRAPPER_ROOT)/ace/Message_Queue.h \
+ $(WRAPPER_ROOT)/ace/Message_Queue.cpp \
+ $(WRAPPER_ROOT)/ace/Message_Queue.i \
+ $(WRAPPER_ROOT)/ace/Task.cpp \
+ $(WRAPPER_ROOT)/ace/Task.i \
+ $(WRAPPER_ROOT)/ace/Module.cpp \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.h \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.cpp \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.i \
+ $(WRAPPER_ROOT)/ace/Module.i \
+ $(WRAPPER_ROOT)/ace/Stream.cpp \
+ $(WRAPPER_ROOT)/ace/Stream.i \
+ $(WRAPPER_ROOT)/ace/LSOCK_Dgram.h \
+ $(WRAPPER_ROOT)/ace/SOCK_Dgram.h \
+ $(WRAPPER_ROOT)/ace/SOCK_Dgram.i \
+ $(WRAPPER_ROOT)/ace/LSOCK.h \
+ $(WRAPPER_ROOT)/ace/LSOCK.i \
+ $(WRAPPER_ROOT)/ace/LSOCK_Dgram.i \
+ $(WRAPPER_ROOT)/ace/UNIX_Addr.h \
+ Handle_L_Dgram.i \
+ $(WRAPPER_ROOT)/ace/Get_Opt.h
+.obj/Handle_L_CODgram.o .shobj/Handle_L_CODgram.so: Handle_L_CODgram.cpp Handle_L_CODgram.h \
+ $(WRAPPER_ROOT)/ace/Service_Config.h \
+ $(WRAPPER_ROOT)/ace/Service_Object.h \
+ $(WRAPPER_ROOT)/ace/Shared_Object.h \
+ $(WRAPPER_ROOT)/ace/ACE.h \
+ $(WRAPPER_ROOT)/ace/OS.h \
+ $(WRAPPER_ROOT)/ace/Time_Value.h \
+ $(WRAPPER_ROOT)/ace/config.h \
+ $(WRAPPER_ROOT)/ace/Trace.h \
+ $(WRAPPER_ROOT)/ace/ACE.i \
+ $(WRAPPER_ROOT)/ace/Log_Msg.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.h \
+ $(WRAPPER_ROOT)/ace/Log_Priority.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.i \
+ $(WRAPPER_ROOT)/ace/Event_Handler.h \
+ $(WRAPPER_ROOT)/ace/Thread_Manager.h \
+ $(WRAPPER_ROOT)/ace/Thread.h \
+ $(WRAPPER_ROOT)/ace/Synch.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(WRAPPER_ROOT)/ace/Synch_T.h \
+ $(WRAPPER_ROOT)/ace/Synch_T.cpp \
+ $(WRAPPER_ROOT)/ace/Synch_T.i \
+ $(WRAPPER_ROOT)/ace/Set.h \
+ $(WRAPPER_ROOT)/ace/Set.cpp \
+ $(WRAPPER_ROOT)/ace/Set.i \
+ $(WRAPPER_ROOT)/ace/Proactor.h \
+ $(WRAPPER_ROOT)/ace/Message_Block.h \
+ $(WRAPPER_ROOT)/ace/Malloc.h \
+ $(WRAPPER_ROOT)/ace/Malloc_T.h \
+ $(WRAPPER_ROOT)/ace/Malloc_T.cpp \
+ $(WRAPPER_ROOT)/ace/Malloc_T.i \
+ $(WRAPPER_ROOT)/ace/Memory_Pool.h \
+ $(WRAPPER_ROOT)/ace/Signal.h \
+ $(WRAPPER_ROOT)/ace/Mem_Map.h \
+ $(WRAPPER_ROOT)/ace/Timer_Queue.h \
+ $(WRAPPER_ROOT)/ace/Timer_Queue.i \
+ $(WRAPPER_ROOT)/ace/ReactorEx.h \
+ $(WRAPPER_ROOT)/ace/Token.h \
+ $(WRAPPER_ROOT)/ace/Reactor.h \
+ $(WRAPPER_ROOT)/ace/Handle_Set.h \
+ $(WRAPPER_ROOT)/ace/Pipe.h \
+ $(WRAPPER_ROOT)/ace/Pipe.i \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.h \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.h \
+ $(WRAPPER_ROOT)/ace/SOCK.h \
+ $(WRAPPER_ROOT)/ace/Addr.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.i \
+ $(WRAPPER_ROOT)/ace/SOCK.i \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.i \
+ $(WRAPPER_ROOT)/ace/INET_Addr.h \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.i \
+ $(WRAPPER_ROOT)/ace/Reactor.i \
+ $(WRAPPER_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(WRAPPER_ROOT)/ace/Service_Record.h \
+ $(WRAPPER_ROOT)/ace/Stream.h \
+ $(WRAPPER_ROOT)/ace/IO_Cntl_Msg.h \
+ $(WRAPPER_ROOT)/ace/Module.h \
+ $(WRAPPER_ROOT)/ace/Task.h \
+ $(WRAPPER_ROOT)/ace/Message_Queue.h \
+ $(WRAPPER_ROOT)/ace/Message_Queue.cpp \
+ $(WRAPPER_ROOT)/ace/Message_Queue.i \
+ $(WRAPPER_ROOT)/ace/Task.cpp \
+ $(WRAPPER_ROOT)/ace/Task.i \
+ $(WRAPPER_ROOT)/ace/Module.cpp \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.h \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.cpp \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.i \
+ $(WRAPPER_ROOT)/ace/Module.i \
+ $(WRAPPER_ROOT)/ace/Stream.cpp \
+ $(WRAPPER_ROOT)/ace/Stream.i \
+ $(WRAPPER_ROOT)/ace/LSOCK_CODgram.h \
+ $(WRAPPER_ROOT)/ace/LSOCK.h \
+ $(WRAPPER_ROOT)/ace/LSOCK.i \
+ $(WRAPPER_ROOT)/ace/SOCK_CODgram.h \
+ $(WRAPPER_ROOT)/ace/SOCK_CODgram.i \
+ $(WRAPPER_ROOT)/ace/LSOCK_CODgram.i \
+ $(WRAPPER_ROOT)/ace/UNIX_Addr.h \
+ Handle_L_CODgram.i \
+ $(WRAPPER_ROOT)/ace/Get_Opt.h
+.obj/Handle_L_FIFO.o .shobj/Handle_L_FIFO.so: Handle_L_FIFO.cpp Handle_L_FIFO.h \
+ $(WRAPPER_ROOT)/ace/Service_Config.h \
+ $(WRAPPER_ROOT)/ace/Service_Object.h \
+ $(WRAPPER_ROOT)/ace/Shared_Object.h \
+ $(WRAPPER_ROOT)/ace/ACE.h \
+ $(WRAPPER_ROOT)/ace/OS.h \
+ $(WRAPPER_ROOT)/ace/Time_Value.h \
+ $(WRAPPER_ROOT)/ace/config.h \
+ $(WRAPPER_ROOT)/ace/Trace.h \
+ $(WRAPPER_ROOT)/ace/ACE.i \
+ $(WRAPPER_ROOT)/ace/Log_Msg.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.h \
+ $(WRAPPER_ROOT)/ace/Log_Priority.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.i \
+ $(WRAPPER_ROOT)/ace/Event_Handler.h \
+ $(WRAPPER_ROOT)/ace/Thread_Manager.h \
+ $(WRAPPER_ROOT)/ace/Thread.h \
+ $(WRAPPER_ROOT)/ace/Synch.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(WRAPPER_ROOT)/ace/Synch_T.h \
+ $(WRAPPER_ROOT)/ace/Synch_T.cpp \
+ $(WRAPPER_ROOT)/ace/Synch_T.i \
+ $(WRAPPER_ROOT)/ace/Set.h \
+ $(WRAPPER_ROOT)/ace/Set.cpp \
+ $(WRAPPER_ROOT)/ace/Set.i \
+ $(WRAPPER_ROOT)/ace/Proactor.h \
+ $(WRAPPER_ROOT)/ace/Message_Block.h \
+ $(WRAPPER_ROOT)/ace/Malloc.h \
+ $(WRAPPER_ROOT)/ace/Malloc_T.h \
+ $(WRAPPER_ROOT)/ace/Malloc_T.cpp \
+ $(WRAPPER_ROOT)/ace/Malloc_T.i \
+ $(WRAPPER_ROOT)/ace/Memory_Pool.h \
+ $(WRAPPER_ROOT)/ace/Signal.h \
+ $(WRAPPER_ROOT)/ace/Mem_Map.h \
+ $(WRAPPER_ROOT)/ace/Timer_Queue.h \
+ $(WRAPPER_ROOT)/ace/Timer_Queue.i \
+ $(WRAPPER_ROOT)/ace/ReactorEx.h \
+ $(WRAPPER_ROOT)/ace/Token.h \
+ $(WRAPPER_ROOT)/ace/Reactor.h \
+ $(WRAPPER_ROOT)/ace/Handle_Set.h \
+ $(WRAPPER_ROOT)/ace/Pipe.h \
+ $(WRAPPER_ROOT)/ace/Pipe.i \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.h \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.h \
+ $(WRAPPER_ROOT)/ace/SOCK.h \
+ $(WRAPPER_ROOT)/ace/Addr.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.i \
+ $(WRAPPER_ROOT)/ace/SOCK.i \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.i \
+ $(WRAPPER_ROOT)/ace/INET_Addr.h \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.i \
+ $(WRAPPER_ROOT)/ace/Reactor.i \
+ $(WRAPPER_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(WRAPPER_ROOT)/ace/Service_Record.h \
+ $(WRAPPER_ROOT)/ace/Stream.h \
+ $(WRAPPER_ROOT)/ace/IO_Cntl_Msg.h \
+ $(WRAPPER_ROOT)/ace/Module.h \
+ $(WRAPPER_ROOT)/ace/Task.h \
+ $(WRAPPER_ROOT)/ace/Message_Queue.h \
+ $(WRAPPER_ROOT)/ace/Message_Queue.cpp \
+ $(WRAPPER_ROOT)/ace/Message_Queue.i \
+ $(WRAPPER_ROOT)/ace/Task.cpp \
+ $(WRAPPER_ROOT)/ace/Task.i \
+ $(WRAPPER_ROOT)/ace/Module.cpp \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.h \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.cpp \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.i \
+ $(WRAPPER_ROOT)/ace/Module.i \
+ $(WRAPPER_ROOT)/ace/Stream.cpp \
+ $(WRAPPER_ROOT)/ace/Stream.i \
+ $(WRAPPER_ROOT)/ace/FIFO_Recv_Msg.h \
+ $(WRAPPER_ROOT)/ace/FIFO_Recv.h \
+ $(WRAPPER_ROOT)/ace/FIFO.h \
+ $(WRAPPER_ROOT)/ace/FIFO_Recv.i \
+ $(WRAPPER_ROOT)/ace/FIFO_Recv_Msg.i \
+ Handle_L_FIFO.i \
+ $(WRAPPER_ROOT)/ace/Get_Opt.h
+.obj/Handle_L_Pipe.o .shobj/Handle_L_Pipe.so: Handle_L_Pipe.cpp Handle_L_Pipe.h \
+ $(WRAPPER_ROOT)/ace/Service_Config.h \
+ $(WRAPPER_ROOT)/ace/Service_Object.h \
+ $(WRAPPER_ROOT)/ace/Shared_Object.h \
+ $(WRAPPER_ROOT)/ace/ACE.h \
+ $(WRAPPER_ROOT)/ace/OS.h \
+ $(WRAPPER_ROOT)/ace/Time_Value.h \
+ $(WRAPPER_ROOT)/ace/config.h \
+ $(WRAPPER_ROOT)/ace/Trace.h \
+ $(WRAPPER_ROOT)/ace/ACE.i \
+ $(WRAPPER_ROOT)/ace/Log_Msg.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.h \
+ $(WRAPPER_ROOT)/ace/Log_Priority.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.i \
+ $(WRAPPER_ROOT)/ace/Event_Handler.h \
+ $(WRAPPER_ROOT)/ace/Thread_Manager.h \
+ $(WRAPPER_ROOT)/ace/Thread.h \
+ $(WRAPPER_ROOT)/ace/Synch.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(WRAPPER_ROOT)/ace/Synch_T.h \
+ $(WRAPPER_ROOT)/ace/Synch_T.cpp \
+ $(WRAPPER_ROOT)/ace/Synch_T.i \
+ $(WRAPPER_ROOT)/ace/Set.h \
+ $(WRAPPER_ROOT)/ace/Set.cpp \
+ $(WRAPPER_ROOT)/ace/Set.i \
+ $(WRAPPER_ROOT)/ace/Proactor.h \
+ $(WRAPPER_ROOT)/ace/Message_Block.h \
+ $(WRAPPER_ROOT)/ace/Malloc.h \
+ $(WRAPPER_ROOT)/ace/Malloc_T.h \
+ $(WRAPPER_ROOT)/ace/Malloc_T.cpp \
+ $(WRAPPER_ROOT)/ace/Malloc_T.i \
+ $(WRAPPER_ROOT)/ace/Memory_Pool.h \
+ $(WRAPPER_ROOT)/ace/Signal.h \
+ $(WRAPPER_ROOT)/ace/Mem_Map.h \
+ $(WRAPPER_ROOT)/ace/Timer_Queue.h \
+ $(WRAPPER_ROOT)/ace/Timer_Queue.i \
+ $(WRAPPER_ROOT)/ace/ReactorEx.h \
+ $(WRAPPER_ROOT)/ace/Token.h \
+ $(WRAPPER_ROOT)/ace/Reactor.h \
+ $(WRAPPER_ROOT)/ace/Handle_Set.h \
+ $(WRAPPER_ROOT)/ace/Pipe.h \
+ $(WRAPPER_ROOT)/ace/Pipe.i \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.h \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.h \
+ $(WRAPPER_ROOT)/ace/SOCK.h \
+ $(WRAPPER_ROOT)/ace/Addr.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.i \
+ $(WRAPPER_ROOT)/ace/SOCK.i \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.i \
+ $(WRAPPER_ROOT)/ace/INET_Addr.h \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.i \
+ $(WRAPPER_ROOT)/ace/Reactor.i \
+ $(WRAPPER_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(WRAPPER_ROOT)/ace/Service_Record.h \
+ $(WRAPPER_ROOT)/ace/Stream.h \
+ $(WRAPPER_ROOT)/ace/IO_Cntl_Msg.h \
+ $(WRAPPER_ROOT)/ace/Module.h \
+ $(WRAPPER_ROOT)/ace/Task.h \
+ $(WRAPPER_ROOT)/ace/Message_Queue.h \
+ $(WRAPPER_ROOT)/ace/Message_Queue.cpp \
+ $(WRAPPER_ROOT)/ace/Message_Queue.i \
+ $(WRAPPER_ROOT)/ace/Task.cpp \
+ $(WRAPPER_ROOT)/ace/Task.i \
+ $(WRAPPER_ROOT)/ace/Module.cpp \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.h \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.cpp \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.i \
+ $(WRAPPER_ROOT)/ace/Module.i \
+ $(WRAPPER_ROOT)/ace/Stream.cpp \
+ $(WRAPPER_ROOT)/ace/Stream.i \
+ $(WRAPPER_ROOT)/ace/UNIX_Addr.h \
+ $(WRAPPER_ROOT)/ace/LSOCK_Acceptor.h \
+ $(WRAPPER_ROOT)/ace/SOCK_Acceptor.h \
+ $(WRAPPER_ROOT)/ace/LSOCK_Stream.h \
+ $(WRAPPER_ROOT)/ace/LSOCK.h \
+ $(WRAPPER_ROOT)/ace/LSOCK.i \
+ $(WRAPPER_ROOT)/ace/LSOCK_Stream.i \
+ Handle_L_Pipe.i \
+ $(WRAPPER_ROOT)/ace/Get_Opt.h
+.obj/Handle_L_Stream.o .shobj/Handle_L_Stream.so: Handle_L_Stream.cpp Handle_L_Stream.h \
+ $(WRAPPER_ROOT)/ace/Service_Config.h \
+ $(WRAPPER_ROOT)/ace/Service_Object.h \
+ $(WRAPPER_ROOT)/ace/Shared_Object.h \
+ $(WRAPPER_ROOT)/ace/ACE.h \
+ $(WRAPPER_ROOT)/ace/OS.h \
+ $(WRAPPER_ROOT)/ace/Time_Value.h \
+ $(WRAPPER_ROOT)/ace/config.h \
+ $(WRAPPER_ROOT)/ace/Trace.h \
+ $(WRAPPER_ROOT)/ace/ACE.i \
+ $(WRAPPER_ROOT)/ace/Log_Msg.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.h \
+ $(WRAPPER_ROOT)/ace/Log_Priority.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.i \
+ $(WRAPPER_ROOT)/ace/Event_Handler.h \
+ $(WRAPPER_ROOT)/ace/Thread_Manager.h \
+ $(WRAPPER_ROOT)/ace/Thread.h \
+ $(WRAPPER_ROOT)/ace/Synch.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(WRAPPER_ROOT)/ace/Synch_T.h \
+ $(WRAPPER_ROOT)/ace/Synch_T.cpp \
+ $(WRAPPER_ROOT)/ace/Synch_T.i \
+ $(WRAPPER_ROOT)/ace/Set.h \
+ $(WRAPPER_ROOT)/ace/Set.cpp \
+ $(WRAPPER_ROOT)/ace/Set.i \
+ $(WRAPPER_ROOT)/ace/Proactor.h \
+ $(WRAPPER_ROOT)/ace/Message_Block.h \
+ $(WRAPPER_ROOT)/ace/Malloc.h \
+ $(WRAPPER_ROOT)/ace/Malloc_T.h \
+ $(WRAPPER_ROOT)/ace/Malloc_T.cpp \
+ $(WRAPPER_ROOT)/ace/Malloc_T.i \
+ $(WRAPPER_ROOT)/ace/Memory_Pool.h \
+ $(WRAPPER_ROOT)/ace/Signal.h \
+ $(WRAPPER_ROOT)/ace/Mem_Map.h \
+ $(WRAPPER_ROOT)/ace/Timer_Queue.h \
+ $(WRAPPER_ROOT)/ace/Timer_Queue.i \
+ $(WRAPPER_ROOT)/ace/ReactorEx.h \
+ $(WRAPPER_ROOT)/ace/Token.h \
+ $(WRAPPER_ROOT)/ace/Reactor.h \
+ $(WRAPPER_ROOT)/ace/Handle_Set.h \
+ $(WRAPPER_ROOT)/ace/Pipe.h \
+ $(WRAPPER_ROOT)/ace/Pipe.i \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.h \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.h \
+ $(WRAPPER_ROOT)/ace/SOCK.h \
+ $(WRAPPER_ROOT)/ace/Addr.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.i \
+ $(WRAPPER_ROOT)/ace/SOCK.i \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.i \
+ $(WRAPPER_ROOT)/ace/INET_Addr.h \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.i \
+ $(WRAPPER_ROOT)/ace/Reactor.i \
+ $(WRAPPER_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(WRAPPER_ROOT)/ace/Service_Record.h \
+ $(WRAPPER_ROOT)/ace/Stream.h \
+ $(WRAPPER_ROOT)/ace/IO_Cntl_Msg.h \
+ $(WRAPPER_ROOT)/ace/Module.h \
+ $(WRAPPER_ROOT)/ace/Task.h \
+ $(WRAPPER_ROOT)/ace/Message_Queue.h \
+ $(WRAPPER_ROOT)/ace/Message_Queue.cpp \
+ $(WRAPPER_ROOT)/ace/Message_Queue.i \
+ $(WRAPPER_ROOT)/ace/Task.cpp \
+ $(WRAPPER_ROOT)/ace/Task.i \
+ $(WRAPPER_ROOT)/ace/Module.cpp \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.h \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.cpp \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.i \
+ $(WRAPPER_ROOT)/ace/Module.i \
+ $(WRAPPER_ROOT)/ace/Stream.cpp \
+ $(WRAPPER_ROOT)/ace/Stream.i \
+ $(WRAPPER_ROOT)/ace/UNIX_Addr.h \
+ $(WRAPPER_ROOT)/ace/LSOCK_Acceptor.h \
+ $(WRAPPER_ROOT)/ace/SOCK_Acceptor.h \
+ $(WRAPPER_ROOT)/ace/LSOCK_Stream.h \
+ $(WRAPPER_ROOT)/ace/LSOCK.h \
+ $(WRAPPER_ROOT)/ace/LSOCK.i \
+ $(WRAPPER_ROOT)/ace/LSOCK_Stream.i \
+ Handle_L_Stream.i \
+ $(WRAPPER_ROOT)/ace/Get_Opt.h
+.obj/Handle_R_Dgram.o .shobj/Handle_R_Dgram.so: Handle_R_Dgram.cpp Handle_R_Dgram.h \
+ $(WRAPPER_ROOT)/ace/Service_Config.h \
+ $(WRAPPER_ROOT)/ace/Service_Object.h \
+ $(WRAPPER_ROOT)/ace/Shared_Object.h \
+ $(WRAPPER_ROOT)/ace/ACE.h \
+ $(WRAPPER_ROOT)/ace/OS.h \
+ $(WRAPPER_ROOT)/ace/Time_Value.h \
+ $(WRAPPER_ROOT)/ace/config.h \
+ $(WRAPPER_ROOT)/ace/Trace.h \
+ $(WRAPPER_ROOT)/ace/ACE.i \
+ $(WRAPPER_ROOT)/ace/Log_Msg.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.h \
+ $(WRAPPER_ROOT)/ace/Log_Priority.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.i \
+ $(WRAPPER_ROOT)/ace/Event_Handler.h \
+ $(WRAPPER_ROOT)/ace/Thread_Manager.h \
+ $(WRAPPER_ROOT)/ace/Thread.h \
+ $(WRAPPER_ROOT)/ace/Synch.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(WRAPPER_ROOT)/ace/Synch_T.h \
+ $(WRAPPER_ROOT)/ace/Synch_T.cpp \
+ $(WRAPPER_ROOT)/ace/Synch_T.i \
+ $(WRAPPER_ROOT)/ace/Set.h \
+ $(WRAPPER_ROOT)/ace/Set.cpp \
+ $(WRAPPER_ROOT)/ace/Set.i \
+ $(WRAPPER_ROOT)/ace/Proactor.h \
+ $(WRAPPER_ROOT)/ace/Message_Block.h \
+ $(WRAPPER_ROOT)/ace/Malloc.h \
+ $(WRAPPER_ROOT)/ace/Malloc_T.h \
+ $(WRAPPER_ROOT)/ace/Malloc_T.cpp \
+ $(WRAPPER_ROOT)/ace/Malloc_T.i \
+ $(WRAPPER_ROOT)/ace/Memory_Pool.h \
+ $(WRAPPER_ROOT)/ace/Signal.h \
+ $(WRAPPER_ROOT)/ace/Mem_Map.h \
+ $(WRAPPER_ROOT)/ace/Timer_Queue.h \
+ $(WRAPPER_ROOT)/ace/Timer_Queue.i \
+ $(WRAPPER_ROOT)/ace/ReactorEx.h \
+ $(WRAPPER_ROOT)/ace/Token.h \
+ $(WRAPPER_ROOT)/ace/Reactor.h \
+ $(WRAPPER_ROOT)/ace/Handle_Set.h \
+ $(WRAPPER_ROOT)/ace/Pipe.h \
+ $(WRAPPER_ROOT)/ace/Pipe.i \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.h \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.h \
+ $(WRAPPER_ROOT)/ace/SOCK.h \
+ $(WRAPPER_ROOT)/ace/Addr.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.i \
+ $(WRAPPER_ROOT)/ace/SOCK.i \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.i \
+ $(WRAPPER_ROOT)/ace/INET_Addr.h \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.i \
+ $(WRAPPER_ROOT)/ace/Reactor.i \
+ $(WRAPPER_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(WRAPPER_ROOT)/ace/Service_Record.h \
+ $(WRAPPER_ROOT)/ace/Stream.h \
+ $(WRAPPER_ROOT)/ace/IO_Cntl_Msg.h \
+ $(WRAPPER_ROOT)/ace/Module.h \
+ $(WRAPPER_ROOT)/ace/Task.h \
+ $(WRAPPER_ROOT)/ace/Message_Queue.h \
+ $(WRAPPER_ROOT)/ace/Message_Queue.cpp \
+ $(WRAPPER_ROOT)/ace/Message_Queue.i \
+ $(WRAPPER_ROOT)/ace/Task.cpp \
+ $(WRAPPER_ROOT)/ace/Task.i \
+ $(WRAPPER_ROOT)/ace/Module.cpp \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.h \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.cpp \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.i \
+ $(WRAPPER_ROOT)/ace/Module.i \
+ $(WRAPPER_ROOT)/ace/Stream.cpp \
+ $(WRAPPER_ROOT)/ace/Stream.i \
+ $(WRAPPER_ROOT)/ace/SOCK_Dgram.h \
+ $(WRAPPER_ROOT)/ace/SOCK_Dgram.i \
+ Handle_R_Dgram.i \
+ $(WRAPPER_ROOT)/ace/Get_Opt.h
+.obj/Handle_R_Stream.o .shobj/Handle_R_Stream.so: Handle_R_Stream.cpp Handle_R_Stream.h \
+ $(WRAPPER_ROOT)/ace/Service_Config.h \
+ $(WRAPPER_ROOT)/ace/Service_Object.h \
+ $(WRAPPER_ROOT)/ace/Shared_Object.h \
+ $(WRAPPER_ROOT)/ace/ACE.h \
+ $(WRAPPER_ROOT)/ace/OS.h \
+ $(WRAPPER_ROOT)/ace/Time_Value.h \
+ $(WRAPPER_ROOT)/ace/config.h \
+ $(WRAPPER_ROOT)/ace/Trace.h \
+ $(WRAPPER_ROOT)/ace/ACE.i \
+ $(WRAPPER_ROOT)/ace/Log_Msg.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.h \
+ $(WRAPPER_ROOT)/ace/Log_Priority.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.i \
+ $(WRAPPER_ROOT)/ace/Event_Handler.h \
+ $(WRAPPER_ROOT)/ace/Thread_Manager.h \
+ $(WRAPPER_ROOT)/ace/Thread.h \
+ $(WRAPPER_ROOT)/ace/Synch.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(WRAPPER_ROOT)/ace/Synch_T.h \
+ $(WRAPPER_ROOT)/ace/Synch_T.cpp \
+ $(WRAPPER_ROOT)/ace/Synch_T.i \
+ $(WRAPPER_ROOT)/ace/Set.h \
+ $(WRAPPER_ROOT)/ace/Set.cpp \
+ $(WRAPPER_ROOT)/ace/Set.i \
+ $(WRAPPER_ROOT)/ace/Proactor.h \
+ $(WRAPPER_ROOT)/ace/Message_Block.h \
+ $(WRAPPER_ROOT)/ace/Malloc.h \
+ $(WRAPPER_ROOT)/ace/Malloc_T.h \
+ $(WRAPPER_ROOT)/ace/Malloc_T.cpp \
+ $(WRAPPER_ROOT)/ace/Malloc_T.i \
+ $(WRAPPER_ROOT)/ace/Memory_Pool.h \
+ $(WRAPPER_ROOT)/ace/Signal.h \
+ $(WRAPPER_ROOT)/ace/Mem_Map.h \
+ $(WRAPPER_ROOT)/ace/Timer_Queue.h \
+ $(WRAPPER_ROOT)/ace/Timer_Queue.i \
+ $(WRAPPER_ROOT)/ace/ReactorEx.h \
+ $(WRAPPER_ROOT)/ace/Token.h \
+ $(WRAPPER_ROOT)/ace/Reactor.h \
+ $(WRAPPER_ROOT)/ace/Handle_Set.h \
+ $(WRAPPER_ROOT)/ace/Pipe.h \
+ $(WRAPPER_ROOT)/ace/Pipe.i \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.h \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.h \
+ $(WRAPPER_ROOT)/ace/SOCK.h \
+ $(WRAPPER_ROOT)/ace/Addr.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.i \
+ $(WRAPPER_ROOT)/ace/SOCK.i \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.i \
+ $(WRAPPER_ROOT)/ace/INET_Addr.h \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.i \
+ $(WRAPPER_ROOT)/ace/Reactor.i \
+ $(WRAPPER_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(WRAPPER_ROOT)/ace/Service_Record.h \
+ $(WRAPPER_ROOT)/ace/Stream.h \
+ $(WRAPPER_ROOT)/ace/IO_Cntl_Msg.h \
+ $(WRAPPER_ROOT)/ace/Module.h \
+ $(WRAPPER_ROOT)/ace/Task.h \
+ $(WRAPPER_ROOT)/ace/Message_Queue.h \
+ $(WRAPPER_ROOT)/ace/Message_Queue.cpp \
+ $(WRAPPER_ROOT)/ace/Message_Queue.i \
+ $(WRAPPER_ROOT)/ace/Task.cpp \
+ $(WRAPPER_ROOT)/ace/Task.i \
+ $(WRAPPER_ROOT)/ace/Module.cpp \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.h \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.cpp \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.i \
+ $(WRAPPER_ROOT)/ace/Module.i \
+ $(WRAPPER_ROOT)/ace/Stream.cpp \
+ $(WRAPPER_ROOT)/ace/Stream.i \
+ $(WRAPPER_ROOT)/ace/SOCK_Acceptor.h \
+ Handle_R_Stream.i \
+ $(WRAPPER_ROOT)/ace/Get_Opt.h
+.obj/Handle_Timeout.o .shobj/Handle_Timeout.so: Handle_Timeout.cpp Handle_Timeout.h \
+ $(WRAPPER_ROOT)/ace/Service_Config.h \
+ $(WRAPPER_ROOT)/ace/Service_Object.h \
+ $(WRAPPER_ROOT)/ace/Shared_Object.h \
+ $(WRAPPER_ROOT)/ace/ACE.h \
+ $(WRAPPER_ROOT)/ace/OS.h \
+ $(WRAPPER_ROOT)/ace/Time_Value.h \
+ $(WRAPPER_ROOT)/ace/config.h \
+ $(WRAPPER_ROOT)/ace/Trace.h \
+ $(WRAPPER_ROOT)/ace/ACE.i \
+ $(WRAPPER_ROOT)/ace/Log_Msg.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.h \
+ $(WRAPPER_ROOT)/ace/Log_Priority.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.i \
+ $(WRAPPER_ROOT)/ace/Event_Handler.h \
+ $(WRAPPER_ROOT)/ace/Thread_Manager.h \
+ $(WRAPPER_ROOT)/ace/Thread.h \
+ $(WRAPPER_ROOT)/ace/Synch.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(WRAPPER_ROOT)/ace/Synch_T.h \
+ $(WRAPPER_ROOT)/ace/Synch_T.cpp \
+ $(WRAPPER_ROOT)/ace/Synch_T.i \
+ $(WRAPPER_ROOT)/ace/Set.h \
+ $(WRAPPER_ROOT)/ace/Set.cpp \
+ $(WRAPPER_ROOT)/ace/Set.i \
+ $(WRAPPER_ROOT)/ace/Proactor.h \
+ $(WRAPPER_ROOT)/ace/Message_Block.h \
+ $(WRAPPER_ROOT)/ace/Malloc.h \
+ $(WRAPPER_ROOT)/ace/Malloc_T.h \
+ $(WRAPPER_ROOT)/ace/Malloc_T.cpp \
+ $(WRAPPER_ROOT)/ace/Malloc_T.i \
+ $(WRAPPER_ROOT)/ace/Memory_Pool.h \
+ $(WRAPPER_ROOT)/ace/Signal.h \
+ $(WRAPPER_ROOT)/ace/Mem_Map.h \
+ $(WRAPPER_ROOT)/ace/Timer_Queue.h \
+ $(WRAPPER_ROOT)/ace/Timer_Queue.i \
+ $(WRAPPER_ROOT)/ace/ReactorEx.h \
+ $(WRAPPER_ROOT)/ace/Token.h \
+ $(WRAPPER_ROOT)/ace/Reactor.h \
+ $(WRAPPER_ROOT)/ace/Handle_Set.h \
+ $(WRAPPER_ROOT)/ace/Pipe.h \
+ $(WRAPPER_ROOT)/ace/Pipe.i \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.h \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.h \
+ $(WRAPPER_ROOT)/ace/SOCK.h \
+ $(WRAPPER_ROOT)/ace/Addr.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.i \
+ $(WRAPPER_ROOT)/ace/SOCK.i \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.i \
+ $(WRAPPER_ROOT)/ace/INET_Addr.h \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.i \
+ $(WRAPPER_ROOT)/ace/Reactor.i \
+ $(WRAPPER_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(WRAPPER_ROOT)/ace/Service_Record.h \
+ $(WRAPPER_ROOT)/ace/Stream.h \
+ $(WRAPPER_ROOT)/ace/IO_Cntl_Msg.h \
+ $(WRAPPER_ROOT)/ace/Module.h \
+ $(WRAPPER_ROOT)/ace/Task.h \
+ $(WRAPPER_ROOT)/ace/Message_Queue.h \
+ $(WRAPPER_ROOT)/ace/Message_Queue.cpp \
+ $(WRAPPER_ROOT)/ace/Message_Queue.i \
+ $(WRAPPER_ROOT)/ace/Task.cpp \
+ $(WRAPPER_ROOT)/ace/Task.i \
+ $(WRAPPER_ROOT)/ace/Module.cpp \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.h \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.cpp \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.i \
+ $(WRAPPER_ROOT)/ace/Module.i \
+ $(WRAPPER_ROOT)/ace/Stream.cpp \
+ $(WRAPPER_ROOT)/ace/Stream.i \
+ Handle_Timeout.i \
+ $(WRAPPER_ROOT)/ace/Get_Opt.h
+.obj/Handle_Broadcast.o .shobj/Handle_Broadcast.so: Handle_Broadcast.cpp Handle_Broadcast.h \
+ $(WRAPPER_ROOT)/ace/Service_Config.h \
+ $(WRAPPER_ROOT)/ace/Service_Object.h \
+ $(WRAPPER_ROOT)/ace/Shared_Object.h \
+ $(WRAPPER_ROOT)/ace/ACE.h \
+ $(WRAPPER_ROOT)/ace/OS.h \
+ $(WRAPPER_ROOT)/ace/Time_Value.h \
+ $(WRAPPER_ROOT)/ace/config.h \
+ $(WRAPPER_ROOT)/ace/Trace.h \
+ $(WRAPPER_ROOT)/ace/ACE.i \
+ $(WRAPPER_ROOT)/ace/Log_Msg.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.h \
+ $(WRAPPER_ROOT)/ace/Log_Priority.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.i \
+ $(WRAPPER_ROOT)/ace/Event_Handler.h \
+ $(WRAPPER_ROOT)/ace/Thread_Manager.h \
+ $(WRAPPER_ROOT)/ace/Thread.h \
+ $(WRAPPER_ROOT)/ace/Synch.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(WRAPPER_ROOT)/ace/Synch_T.h \
+ $(WRAPPER_ROOT)/ace/Synch_T.cpp \
+ $(WRAPPER_ROOT)/ace/Synch_T.i \
+ $(WRAPPER_ROOT)/ace/Set.h \
+ $(WRAPPER_ROOT)/ace/Set.cpp \
+ $(WRAPPER_ROOT)/ace/Set.i \
+ $(WRAPPER_ROOT)/ace/Proactor.h \
+ $(WRAPPER_ROOT)/ace/Message_Block.h \
+ $(WRAPPER_ROOT)/ace/Malloc.h \
+ $(WRAPPER_ROOT)/ace/Malloc_T.h \
+ $(WRAPPER_ROOT)/ace/Malloc_T.cpp \
+ $(WRAPPER_ROOT)/ace/Malloc_T.i \
+ $(WRAPPER_ROOT)/ace/Memory_Pool.h \
+ $(WRAPPER_ROOT)/ace/Signal.h \
+ $(WRAPPER_ROOT)/ace/Mem_Map.h \
+ $(WRAPPER_ROOT)/ace/Timer_Queue.h \
+ $(WRAPPER_ROOT)/ace/Timer_Queue.i \
+ $(WRAPPER_ROOT)/ace/ReactorEx.h \
+ $(WRAPPER_ROOT)/ace/Token.h \
+ $(WRAPPER_ROOT)/ace/Reactor.h \
+ $(WRAPPER_ROOT)/ace/Handle_Set.h \
+ $(WRAPPER_ROOT)/ace/Pipe.h \
+ $(WRAPPER_ROOT)/ace/Pipe.i \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.h \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.h \
+ $(WRAPPER_ROOT)/ace/SOCK.h \
+ $(WRAPPER_ROOT)/ace/Addr.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.i \
+ $(WRAPPER_ROOT)/ace/SOCK.i \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.i \
+ $(WRAPPER_ROOT)/ace/INET_Addr.h \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.i \
+ $(WRAPPER_ROOT)/ace/Reactor.i \
+ $(WRAPPER_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(WRAPPER_ROOT)/ace/Service_Record.h \
+ $(WRAPPER_ROOT)/ace/Stream.h \
+ $(WRAPPER_ROOT)/ace/IO_Cntl_Msg.h \
+ $(WRAPPER_ROOT)/ace/Module.h \
+ $(WRAPPER_ROOT)/ace/Task.h \
+ $(WRAPPER_ROOT)/ace/Message_Queue.h \
+ $(WRAPPER_ROOT)/ace/Message_Queue.cpp \
+ $(WRAPPER_ROOT)/ace/Message_Queue.i \
+ $(WRAPPER_ROOT)/ace/Task.cpp \
+ $(WRAPPER_ROOT)/ace/Task.i \
+ $(WRAPPER_ROOT)/ace/Module.cpp \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.h \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.cpp \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.i \
+ $(WRAPPER_ROOT)/ace/Module.i \
+ $(WRAPPER_ROOT)/ace/Stream.cpp \
+ $(WRAPPER_ROOT)/ace/Stream.i \
+ $(WRAPPER_ROOT)/ace/SOCK_Dgram.h \
+ $(WRAPPER_ROOT)/ace/SOCK_Dgram.i \
+ Handle_Broadcast.i \
+ $(WRAPPER_ROOT)/ace/Get_Opt.h
+.obj/Handle_L_SPIPE.o .shobj/Handle_L_SPIPE.so: Handle_L_SPIPE.cpp Handle_L_SPIPE.h \
+ $(WRAPPER_ROOT)/ace/Service_Config.h \
+ $(WRAPPER_ROOT)/ace/Service_Object.h \
+ $(WRAPPER_ROOT)/ace/Shared_Object.h \
+ $(WRAPPER_ROOT)/ace/ACE.h \
+ $(WRAPPER_ROOT)/ace/OS.h \
+ $(WRAPPER_ROOT)/ace/Time_Value.h \
+ $(WRAPPER_ROOT)/ace/config.h \
+ $(WRAPPER_ROOT)/ace/Trace.h \
+ $(WRAPPER_ROOT)/ace/ACE.i \
+ $(WRAPPER_ROOT)/ace/Log_Msg.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.h \
+ $(WRAPPER_ROOT)/ace/Log_Priority.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.i \
+ $(WRAPPER_ROOT)/ace/Event_Handler.h \
+ $(WRAPPER_ROOT)/ace/Thread_Manager.h \
+ $(WRAPPER_ROOT)/ace/Thread.h \
+ $(WRAPPER_ROOT)/ace/Synch.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(WRAPPER_ROOT)/ace/Synch_T.h \
+ $(WRAPPER_ROOT)/ace/Synch_T.cpp \
+ $(WRAPPER_ROOT)/ace/Synch_T.i \
+ $(WRAPPER_ROOT)/ace/Set.h \
+ $(WRAPPER_ROOT)/ace/Set.cpp \
+ $(WRAPPER_ROOT)/ace/Set.i \
+ $(WRAPPER_ROOT)/ace/Proactor.h \
+ $(WRAPPER_ROOT)/ace/Message_Block.h \
+ $(WRAPPER_ROOT)/ace/Malloc.h \
+ $(WRAPPER_ROOT)/ace/Malloc_T.h \
+ $(WRAPPER_ROOT)/ace/Malloc_T.cpp \
+ $(WRAPPER_ROOT)/ace/Malloc_T.i \
+ $(WRAPPER_ROOT)/ace/Memory_Pool.h \
+ $(WRAPPER_ROOT)/ace/Signal.h \
+ $(WRAPPER_ROOT)/ace/Mem_Map.h \
+ $(WRAPPER_ROOT)/ace/Timer_Queue.h \
+ $(WRAPPER_ROOT)/ace/Timer_Queue.i \
+ $(WRAPPER_ROOT)/ace/ReactorEx.h \
+ $(WRAPPER_ROOT)/ace/Token.h \
+ $(WRAPPER_ROOT)/ace/Reactor.h \
+ $(WRAPPER_ROOT)/ace/Handle_Set.h \
+ $(WRAPPER_ROOT)/ace/Pipe.h \
+ $(WRAPPER_ROOT)/ace/Pipe.i \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.h \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.h \
+ $(WRAPPER_ROOT)/ace/SOCK.h \
+ $(WRAPPER_ROOT)/ace/Addr.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.i \
+ $(WRAPPER_ROOT)/ace/SOCK.i \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.i \
+ $(WRAPPER_ROOT)/ace/INET_Addr.h \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.i \
+ $(WRAPPER_ROOT)/ace/Reactor.i \
+ $(WRAPPER_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(WRAPPER_ROOT)/ace/Service_Record.h \
+ $(WRAPPER_ROOT)/ace/Stream.h \
+ $(WRAPPER_ROOT)/ace/IO_Cntl_Msg.h \
+ $(WRAPPER_ROOT)/ace/Module.h \
+ $(WRAPPER_ROOT)/ace/Task.h \
+ $(WRAPPER_ROOT)/ace/Message_Queue.h \
+ $(WRAPPER_ROOT)/ace/Message_Queue.cpp \
+ $(WRAPPER_ROOT)/ace/Message_Queue.i \
+ $(WRAPPER_ROOT)/ace/Task.cpp \
+ $(WRAPPER_ROOT)/ace/Task.i \
+ $(WRAPPER_ROOT)/ace/Module.cpp \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.h \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.cpp \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.i \
+ $(WRAPPER_ROOT)/ace/Module.i \
+ $(WRAPPER_ROOT)/ace/Stream.cpp \
+ $(WRAPPER_ROOT)/ace/Stream.i \
+ $(WRAPPER_ROOT)/ace/SPIPE_Acceptor.h \
+ $(WRAPPER_ROOT)/ace/SPIPE_Stream.h \
+ $(WRAPPER_ROOT)/ace/SPIPE.h \
+ $(WRAPPER_ROOT)/ace/SPIPE_Addr.h \
+ $(WRAPPER_ROOT)/ace/SPIPE.i \
+ $(WRAPPER_ROOT)/ace/SPIPE_Stream.i \
+ Handle_L_SPIPE.i \
+ $(WRAPPER_ROOT)/ace/Get_Opt.h
+.obj/Handle_Thr_Stream.o .shobj/Handle_Thr_Stream.so: Handle_Thr_Stream.cpp \
+ $(WRAPPER_ROOT)/ace/Get_Opt.h \
+ $(WRAPPER_ROOT)/ace/ACE.h \
+ $(WRAPPER_ROOT)/ace/OS.h \
+ $(WRAPPER_ROOT)/ace/Time_Value.h \
+ $(WRAPPER_ROOT)/ace/config.h \
+ $(WRAPPER_ROOT)/ace/Trace.h \
+ $(WRAPPER_ROOT)/ace/ACE.i \
+ $(WRAPPER_ROOT)/ace/Log_Msg.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.h \
+ $(WRAPPER_ROOT)/ace/Log_Priority.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.i \
+ $(WRAPPER_ROOT)/ace/INET_Addr.h \
+ $(WRAPPER_ROOT)/ace/Addr.h \
+ Handle_Thr_Stream.h \
+ $(WRAPPER_ROOT)/ace/Acceptor.h \
+ $(WRAPPER_ROOT)/ace/Service_Config.h \
+ $(WRAPPER_ROOT)/ace/Service_Object.h \
+ $(WRAPPER_ROOT)/ace/Shared_Object.h \
+ $(WRAPPER_ROOT)/ace/Event_Handler.h \
+ $(WRAPPER_ROOT)/ace/Thread_Manager.h \
+ $(WRAPPER_ROOT)/ace/Thread.h \
+ $(WRAPPER_ROOT)/ace/Synch.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(WRAPPER_ROOT)/ace/Synch_T.h \
+ $(WRAPPER_ROOT)/ace/Synch_T.cpp \
+ $(WRAPPER_ROOT)/ace/Synch_T.i \
+ $(WRAPPER_ROOT)/ace/Set.h \
+ $(WRAPPER_ROOT)/ace/Set.cpp \
+ $(WRAPPER_ROOT)/ace/Set.i \
+ $(WRAPPER_ROOT)/ace/Proactor.h \
+ $(WRAPPER_ROOT)/ace/Message_Block.h \
+ $(WRAPPER_ROOT)/ace/Malloc.h \
+ $(WRAPPER_ROOT)/ace/Malloc_T.h \
+ $(WRAPPER_ROOT)/ace/Malloc_T.cpp \
+ $(WRAPPER_ROOT)/ace/Malloc_T.i \
+ $(WRAPPER_ROOT)/ace/Memory_Pool.h \
+ $(WRAPPER_ROOT)/ace/Signal.h \
+ $(WRAPPER_ROOT)/ace/Mem_Map.h \
+ $(WRAPPER_ROOT)/ace/Timer_Queue.h \
+ $(WRAPPER_ROOT)/ace/Timer_Queue.i \
+ $(WRAPPER_ROOT)/ace/ReactorEx.h \
+ $(WRAPPER_ROOT)/ace/Token.h \
+ $(WRAPPER_ROOT)/ace/Reactor.h \
+ $(WRAPPER_ROOT)/ace/Handle_Set.h \
+ $(WRAPPER_ROOT)/ace/Pipe.h \
+ $(WRAPPER_ROOT)/ace/Pipe.i \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.h \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.h \
+ $(WRAPPER_ROOT)/ace/SOCK.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.i \
+ $(WRAPPER_ROOT)/ace/SOCK.i \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.i \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.i \
+ $(WRAPPER_ROOT)/ace/Reactor.i \
+ $(WRAPPER_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(WRAPPER_ROOT)/ace/Svc_Handler.h \
+ $(WRAPPER_ROOT)/ace/Synch_Options.h \
+ $(WRAPPER_ROOT)/ace/Task.h \
+ $(WRAPPER_ROOT)/ace/Message_Queue.h \
+ $(WRAPPER_ROOT)/ace/IO_Cntl_Msg.h \
+ $(WRAPPER_ROOT)/ace/Message_Queue.cpp \
+ $(WRAPPER_ROOT)/ace/Message_Queue.i \
+ $(WRAPPER_ROOT)/ace/Task.cpp \
+ $(WRAPPER_ROOT)/ace/Module.h \
+ $(WRAPPER_ROOT)/ace/Module.cpp \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.h \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.cpp \
+ $(WRAPPER_ROOT)/ace/Stream_Modules.i \
+ $(WRAPPER_ROOT)/ace/Module.i \
+ $(WRAPPER_ROOT)/ace/Task.i \
+ $(WRAPPER_ROOT)/ace/Svc_Handler.cpp \
+ $(WRAPPER_ROOT)/ace/Dynamic.h \
+ $(WRAPPER_ROOT)/ace/Svc_Handler.i \
+ $(WRAPPER_ROOT)/ace/Strategies.h \
+ $(WRAPPER_ROOT)/ace/Strategies.cpp \
+ $(WRAPPER_ROOT)/ace/Acceptor.i \
+ $(WRAPPER_ROOT)/ace/Acceptor.cpp \
+ $(WRAPPER_ROOT)/ace/Service_Record.h \
+ $(WRAPPER_ROOT)/ace/Stream.h \
+ $(WRAPPER_ROOT)/ace/Stream.cpp \
+ $(WRAPPER_ROOT)/ace/Stream.i \
+ Handle_Thr_Stream.cpp Handle_Thr_Stream.i \
+ $(WRAPPER_ROOT)/ace/TLI_Stream.h \
+ $(WRAPPER_ROOT)/ace/TLI.h \
+ $(WRAPPER_ROOT)/ace/TLI.i \
+ $(WRAPPER_ROOT)/ace/TLI_Stream.i \
+ $(WRAPPER_ROOT)/ace/TLI_Acceptor.h \
+ $(WRAPPER_ROOT)/ace/TLI_Acceptor.i
+.obj/server_test.o .shobj/server_test.so: server_test.cpp \
+ $(WRAPPER_ROOT)/ace/Service_Config.h \
+ $(WRAPPER_ROOT)/ace/Service_Object.h \
+ $(WRAPPER_ROOT)/ace/Shared_Object.h \
+ $(WRAPPER_ROOT)/ace/ACE.h \
+ $(WRAPPER_ROOT)/ace/OS.h \
+ $(WRAPPER_ROOT)/ace/Time_Value.h \
+ $(WRAPPER_ROOT)/ace/config.h \
+ $(WRAPPER_ROOT)/ace/Trace.h \
+ $(WRAPPER_ROOT)/ace/ACE.i \
+ $(WRAPPER_ROOT)/ace/Log_Msg.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.h \
+ $(WRAPPER_ROOT)/ace/Log_Priority.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.i \
+ $(WRAPPER_ROOT)/ace/Event_Handler.h \
+ $(WRAPPER_ROOT)/ace/Thread_Manager.h \
+ $(WRAPPER_ROOT)/ace/Thread.h \
+ $(WRAPPER_ROOT)/ace/Synch.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(WRAPPER_ROOT)/ace/Synch_T.h \
+ $(WRAPPER_ROOT)/ace/Synch_T.cpp \
+ $(WRAPPER_ROOT)/ace/Synch_T.i \
+ $(WRAPPER_ROOT)/ace/Set.h \
+ $(WRAPPER_ROOT)/ace/Set.cpp \
+ $(WRAPPER_ROOT)/ace/Set.i \
+ $(WRAPPER_ROOT)/ace/Proactor.h \
+ $(WRAPPER_ROOT)/ace/Message_Block.h \
+ $(WRAPPER_ROOT)/ace/Malloc.h \
+ $(WRAPPER_ROOT)/ace/Malloc_T.h \
+ $(WRAPPER_ROOT)/ace/Malloc_T.cpp \
+ $(WRAPPER_ROOT)/ace/Malloc_T.i \
+ $(WRAPPER_ROOT)/ace/Memory_Pool.h \
+ $(WRAPPER_ROOT)/ace/Signal.h \
+ $(WRAPPER_ROOT)/ace/Mem_Map.h \
+ $(WRAPPER_ROOT)/ace/Timer_Queue.h \
+ $(WRAPPER_ROOT)/ace/Timer_Queue.i \
+ $(WRAPPER_ROOT)/ace/ReactorEx.h \
+ $(WRAPPER_ROOT)/ace/Token.h \
+ $(WRAPPER_ROOT)/ace/Reactor.h \
+ $(WRAPPER_ROOT)/ace/Handle_Set.h \
+ $(WRAPPER_ROOT)/ace/Pipe.h \
+ $(WRAPPER_ROOT)/ace/Pipe.i \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.h \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.h \
+ $(WRAPPER_ROOT)/ace/SOCK.h \
+ $(WRAPPER_ROOT)/ace/Addr.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.i \
+ $(WRAPPER_ROOT)/ace/SOCK.i \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.i \
+ $(WRAPPER_ROOT)/ace/INET_Addr.h \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.i \
+ $(WRAPPER_ROOT)/ace/Reactor.i \
+ $(WRAPPER_ROOT)/ace/Svc_Conf_Tokens.h
+
+# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/examples/Service_Configurator/IPC-tests/server/server_test.cpp b/examples/Service_Configurator/IPC-tests/server/server_test.cpp
new file mode 100644
index 00000000000..3c93ca704f9
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/server_test.cpp
@@ -0,0 +1,31 @@
+/* The main test driver for the dynamically configured server. */
+// @(#)server_test.cpp 1.1 10/18/96
+
+
+#include "ace/Service_Config.h"
+
+sig_atomic_t finished = 0;
+
+static void
+handler (int)
+{
+ finished = 1;
+}
+
+int
+main (int argc, char *argv[])
+{
+ ACE_Service_Config server_test;
+
+ ACE_Sig_Action sig ((ACE_SignalHandler) handler, SIGINT);
+
+ if (server_test.open (argc, argv) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "server_test.open"), -1);
+
+ for (;;)
+ if (server_test.run_reactor_event_loop () == -1 && finished)
+ break;
+
+ /* NOTREACHED */
+ return 0;
+}
diff --git a/examples/Service_Configurator/IPC-tests/server/svc.conf b/examples/Service_Configurator/IPC-tests/server/svc.conf
new file mode 100644
index 00000000000..47092c3d030
--- /dev/null
+++ b/examples/Service_Configurator/IPC-tests/server/svc.conf
@@ -0,0 +1,19 @@
+# To configure different services, simply uncomment the appropriate lines in this file!
+#static ACE_Service_Manager "-d -p 3911"
+dynamic Remote_Brdcast Service_Object * .shobj/Handle_Broadcast.so:remote_broadcast "-p 10001"
+#dynamic Remote_Stream Service_Object * .shobj/Handle_R_Stream.so:remote_stream "-p 20002"
+#dynamic Remote_Dgram Service_Object * .shobj/Handle_R_Dgram.so:remote_dgram "-p 15001"
+#dynamic Timer_1 Service_Object * .shobj/Handle_Timeout.so:timer_1 "-d 5 -i 1 -a 100"
+#dynamic Local_Stream Service_Object * .shobj/Handle_L_Stream.so:local_stream "-r /tmp/foo_stream"
+#dynamic Local_Pipe Service_Object * .shobj/Handle_L_Pipe.so:local_pipe "-r /tmp/foo_pipe"
+#dynamic Local_Fifo Service_Object * .shobj/Handle_L_FIFO.so:local_fifo "-r /tmp/foo_fifo"
+#dynamic Local_Dgram Service_Object * .shobj/Handle_L_Dgram.so:local_dgram "-r /tmp/foo_dgram"
+#dynamic Local_CODgram Service_Object * .shobj/Handle_L_CODgram.so:local_codgram "-r /tmp/foo_codgram"
+#dynamic Local_Spipe Service_Object * .shobj/Handle_L_SPIPE.so:local_spipe "-r /tmp/foo_spipe"
+#dynamic Remote_Thr_Stream Service_Object * .shobj/Handle_Thr_Stream.so:remote_thr_stream "-p 10001"
+#suspend Remote_Stream
+#resume Local_SPIPE
+#resume Remote_Stream
+#remove Remote_Stream
+#remove Local_Stream
+
diff --git a/examples/Service_Configurator/Makefile b/examples/Service_Configurator/Makefile
new file mode 100644
index 00000000000..86ad57b73ef
--- /dev/null
+++ b/examples/Service_Configurator/Makefile
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# @(#)Makefile 1.1 10/18/96
+#
+# Makefile for the Service Configurator tests
+#----------------------------------------------------------------------------
+
+#----------------------------------------------------------------------------
+# Local macros
+#----------------------------------------------------------------------------
+
+DIRS = IPC-tests \
+ Misc
+
+#----------------------------------------------------------------------------
+# Include macros and targets
+#----------------------------------------------------------------------------
+
+include $(WRAPPER_ROOT)/include/makeinclude/wrapper_macros.GNU
+include $(WRAPPER_ROOT)/include/makeinclude/macros.GNU
+include $(WRAPPER_ROOT)/include/makeinclude/rules.common.GNU
+include $(WRAPPER_ROOT)/include/makeinclude/rules.nested.GNU
+include $(WRAPPER_ROOT)/include/makeinclude/rules.nolocal.GNU
diff --git a/examples/Service_Configurator/Misc/Makefile b/examples/Service_Configurator/Misc/Makefile
new file mode 100644
index 00000000000..e9364dace7a
--- /dev/null
+++ b/examples/Service_Configurator/Misc/Makefile
@@ -0,0 +1,105 @@
+#----------------------------------------------------------------------------
+# @(#)Makefile 1.1 10/18/96
+#
+# Makefile for a test of the miscellaneous Service_Config examples
+#----------------------------------------------------------------------------
+
+#----------------------------------------------------------------------------
+# Local macros
+#----------------------------------------------------------------------------
+
+BIN = main
+
+FILES = Timer_Service
+
+LSRC = $(addsuffix .cpp,$(FILES))
+LOBJ = $(addsuffix .o,$(FILES))
+SHOBJ = $(addsuffix .so,$(FILES))
+
+LDLIBS = $(addprefix .shobj/,$(SHOBJ))
+
+VLDLIBS = $(LDLIBS:%=%$(VAR))
+
+BUILD = $(VBIN)
+
+#----------------------------------------------------------------------------
+# Include macros and targets
+#----------------------------------------------------------------------------
+
+include $(WRAPPER_ROOT)/include/makeinclude/wrapper_macros.GNU
+include $(WRAPPER_ROOT)/include/makeinclude/macros.GNU
+include $(WRAPPER_ROOT)/include/makeinclude/rules.common.GNU
+include $(WRAPPER_ROOT)/include/makeinclude/rules.nonested.GNU
+include $(WRAPPER_ROOT)/include/makeinclude/rules.lib.GNU
+include $(WRAPPER_ROOT)/include/makeinclude/rules.bin.GNU
+include $(WRAPPER_ROOT)/include/makeinclude/rules.local.GNU
+
+#----------------------------------------------------------------------------
+# Local targets
+#----------------------------------------------------------------------------
+
+#----------------------------------------------------------------------------
+# Dependencies
+#----------------------------------------------------------------------------
+# DO NOT DELETE THIS LINE -- g++dep uses it.
+# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
+
+.obj/Timer_Service.o .shobj/Timer_Service.so: Timer_Service.cpp Timer_Service.h \
+ $(WRAPPER_ROOT)/ace/Service_Config.h \
+ $(WRAPPER_ROOT)/ace/Service_Object.h \
+ $(WRAPPER_ROOT)/ace/Shared_Object.h \
+ $(WRAPPER_ROOT)/ace/ACE.h \
+ $(WRAPPER_ROOT)/ace/OS.h \
+ $(WRAPPER_ROOT)/ace/Time_Value.h \
+ $(WRAPPER_ROOT)/ace/config.h \
+ $(WRAPPER_ROOT)/ace/Trace.h \
+ $(WRAPPER_ROOT)/ace/ACE.i \
+ $(WRAPPER_ROOT)/ace/Log_Msg.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.h \
+ $(WRAPPER_ROOT)/ace/Log_Priority.h \
+ $(WRAPPER_ROOT)/ace/Log_Record.i \
+ $(WRAPPER_ROOT)/ace/Event_Handler.h \
+ $(WRAPPER_ROOT)/ace/Thread_Manager.h \
+ $(WRAPPER_ROOT)/ace/Thread.h \
+ $(WRAPPER_ROOT)/ace/Synch.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(WRAPPER_ROOT)/ace/Synch_T.h \
+ $(WRAPPER_ROOT)/ace/Synch_T.cpp \
+ $(WRAPPER_ROOT)/ace/Synch_T.i \
+ $(WRAPPER_ROOT)/ace/Set.h \
+ $(WRAPPER_ROOT)/ace/Set.cpp \
+ $(WRAPPER_ROOT)/ace/Set.i \
+ $(WRAPPER_ROOT)/ace/Proactor.h \
+ $(WRAPPER_ROOT)/ace/Message_Block.h \
+ $(WRAPPER_ROOT)/ace/Malloc.h \
+ $(WRAPPER_ROOT)/ace/Malloc_T.h \
+ $(WRAPPER_ROOT)/ace/Malloc_T.cpp \
+ $(WRAPPER_ROOT)/ace/Malloc_T.i \
+ $(WRAPPER_ROOT)/ace/Memory_Pool.h \
+ $(WRAPPER_ROOT)/ace/Signal.h \
+ $(WRAPPER_ROOT)/ace/Mem_Map.h \
+ $(WRAPPER_ROOT)/ace/Timer_Queue.h \
+ $(WRAPPER_ROOT)/ace/Timer_Queue.i \
+ $(WRAPPER_ROOT)/ace/ReactorEx.h \
+ $(WRAPPER_ROOT)/ace/Token.h \
+ $(WRAPPER_ROOT)/ace/Reactor.h \
+ $(WRAPPER_ROOT)/ace/Handle_Set.h \
+ $(WRAPPER_ROOT)/ace/Pipe.h \
+ $(WRAPPER_ROOT)/ace/Pipe.i \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.h \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.h \
+ $(WRAPPER_ROOT)/ace/SOCK.h \
+ $(WRAPPER_ROOT)/ace/Addr.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.h \
+ $(WRAPPER_ROOT)/ace/IPC_SAP.i \
+ $(WRAPPER_ROOT)/ace/SOCK.i \
+ $(WRAPPER_ROOT)/ace/SOCK_IO.i \
+ $(WRAPPER_ROOT)/ace/INET_Addr.h \
+ $(WRAPPER_ROOT)/ace/SOCK_Stream.i \
+ $(WRAPPER_ROOT)/ace/Reactor.i \
+ $(WRAPPER_ROOT)/ace/Svc_Conf_Tokens.h
+
+# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/examples/Service_Configurator/Misc/Timer_Service.cpp b/examples/Service_Configurator/Misc/Timer_Service.cpp
new file mode 100644
index 00000000000..8c377da53f5
--- /dev/null
+++ b/examples/Service_Configurator/Misc/Timer_Service.cpp
@@ -0,0 +1,40 @@
+#include "Timer_Service.h"
+// @(#)Timer_Service.cpp 1.1 10/18/96
+
+
+int
+Timer_Service::init (int argc, char *argv[])
+{
+ char *prog = argc > 0 ? argv[0] : "Timer_Service";
+ int interval = argc > 1 ? ACE_OS::atoi (argv[1]) : 4;
+ if (argc > 2)
+ ACE_Trace::start_tracing ();
+ else
+ ACE_Trace::stop_tracing ();
+
+ ACE_DEBUG ((LM_DEBUG, "in Timer_Service::init, argv[0] = %s, argc == %d\n",
+ argv[0], argc));
+
+
+ ACE_Service_Config::reactor ()->schedule_timer
+ (this, 0, ACE_Time_Value (1), ACE_Time_Value (interval));
+ return 0;
+}
+
+int
+Timer_Service::handle_timeout (const ACE_Time_Value &tv,
+ const void *)
+{
+ ACE_DEBUG ((LM_DEBUG, "in Timer_Service::handle_timeout sec = %d, usec = %d\n",
+ tv.sec (), tv.usec ()));
+ return 0;
+}
+
+// Define the factory function.
+ACE_SVC_FACTORY_DEFINE (Timer_Service)
+
+// Define the object that describes the service.
+ACE_STATIC_SVC_DEFINE (Timer_Service,
+ "Timer_Service", ACE_SVC_OBJ_T, &ACE_SVC_NAME (Timer_Service),
+ ACE_Service_Type::DELETE_THIS | ACE_Service_Type::DELETE_OBJ, 0)
+
diff --git a/examples/Service_Configurator/Misc/Timer_Service.h b/examples/Service_Configurator/Misc/Timer_Service.h
new file mode 100644
index 00000000000..b002cd6fddb
--- /dev/null
+++ b/examples/Service_Configurator/Misc/Timer_Service.h
@@ -0,0 +1,16 @@
+/* -*- C++ -*- */
+// @(#)Timer_Service.h 1.1 10/18/96
+
+#include "ace/Service_Config.h"
+
+class Timer_Service : public ACE_Service_Object
+{
+public:
+ virtual int init (int argc, char *argv[]);
+
+ virtual int handle_timeout (const ACE_Time_Value &,
+ const void *);
+};
+
+ACE_STATIC_SVC_DECLARE (Timer_Service)
+
diff --git a/examples/Service_Configurator/Misc/main.cpp b/examples/Service_Configurator/Misc/main.cpp
new file mode 100644
index 00000000000..945465bf2ef
--- /dev/null
+++ b/examples/Service_Configurator/Misc/main.cpp
@@ -0,0 +1,24 @@
+#include "ace/Service_Config.h"
+// @(#)main.cpp 1.1 10/18/96
+
+#include "Timer_Service.h"
+
+// Create an object that will insert the Timer_Service into the list
+// of statically linked services that the ACE_Service_Config will
+// process at run-time.
+ACE_STATIC_SVC_REQUIRE(Timer_Service)
+
+int
+main (int argc, char *argv[])
+{
+ ACE_Service_Config daemon;
+
+ if (daemon.open (argc, argv) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), 1);
+
+ // Run forever, performing the configured services until we receive
+ // a SIGINT.
+
+ daemon.run_reactor_event_loop ();
+ return 0;
+}
diff --git a/examples/Service_Configurator/Misc/svc.conf b/examples/Service_Configurator/Misc/svc.conf
new file mode 100644
index 00000000000..c3eb2fc6cea
--- /dev/null
+++ b/examples/Service_Configurator/Misc/svc.conf
@@ -0,0 +1 @@
+static Timer_Service "timer $TIME $TRACE"