diff options
Diffstat (limited to 'examples/Service_Configurator')
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" |