summaryrefslogtreecommitdiff
path: root/docs/tutorials/022/page02.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/tutorials/022/page02.html')
-rw-r--r--docs/tutorials/022/page02.html98
1 files changed, 0 insertions, 98 deletions
diff --git a/docs/tutorials/022/page02.html b/docs/tutorials/022/page02.html
deleted file mode 100644
index 144a28112fd..00000000000
--- a/docs/tutorials/022/page02.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<!-- $Id$ -->
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
- <head>
- <title>ACE Tutorial 022</title>
- </head>
-
- <BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 022</FONT></B></CENTER>
- We begin with <a href="server.cpp">server.cpp</a>
- <UL>
- <P>Abstract:
-
- We begin with the server and the acceptor which we developed in
- our ACE Tutorial 005. We modify these and add new
- implementation files so as to make the acceptor service dynamically
- (un)loadable. What we want to do is separate the implementation
- of the service from its configuration. So, our server will
- now just act as a daemon waiting for requests.
- We again enroll the services of the ACE_Reactor to handle
- events. Everything occurs in a single thread. <P>
-
- This tutorial helps us learn apply the service configurator
- pattern and make services dynamically configurable. In that
- process, we are trying to make the acceptor we have developed
- previously as a dynamically configurable service.
- </UL>
- <P>
- <HR WIDTH="100%">
- <P>
- <PRE>
- <font color=red>/* We try to keep the server much simpler than before and
- remove any thing related to the acceptor from the main ().
- This lets keep the server running irrespective of the
- state of the acceptor service. */
- </font>
- <font color=red>/* As always, we would need the
- ACE_Service_Config to help run the server as a daemon. */ </font>
- <font color=blue>#include </font><font color=green>"ace/Service_Config.h"</font>
-
- <font color=red>/* Since we are seperating the acceptor service class from the
- server, we need to declare our Acceptor_Service */ </font>
- <font color=blue>#include </font><font color=green>"Acceptor_Service.h"</font>
-
- int
- main (int argc, char *argv [])
- {
- <font color=red>
- /* Perform daemon services update ... this opens the svc.conf
- file and reads the entries present in the svc.conf
- file. We will later learn the syntax of making an entry
- into a svc.conf file. But for now, remember that this is a
- file which has the entries to load or unload a service
- dynamically or statically. */
-
- In case, the function call returns a (-1), which is
- indicative of an error, we print out a debug statement
- and return (-1) to indicate an failure.</font>
- if (ACE_Service_Config::open (argc,
- argv,
- ACE_DEFAULT_LOGGER_KEY,
- 0) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "ACE_Service_Config::open"),
- -1);
-
- <font color=red>
- /* Install our signal handler. As we already know, you can actually
- register signal handlers with the reactor. You might do that
- when the signal handler is responsible for performing "real"
- work. Our simple flag-setter doesn't justify deriving from
- ACE_Event_Handler and providing a callback function
- though. */ </font>
- ACE_Sig_Action sa ((ACE_SignalHandler) handler, SIGHUP);
-
- <font color=red>
- /* Start running the event loop so that it
- listens for events and acts accordingly. This event loop will run
- either the event loop is ended explicitly or an error
- occurs. */ </font>
- ACE_Reactor::run_event_loop ();
-
- <font color=red>/* NOT REACHED */</font>
- }
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page03.html">Continue This Tutorial</A>]</CENTER>
-
- <hr>
- <address><a href="mailto:pgontla@ece.uci.edu">Priyanka Gontla</a></address>
-<!-- Created: Thu Dec 28 15:17:34 PST 2000 -->
-<!-- hhmts start -->
-Last modified: Sat Jan 20 10:19:22 CST 2001
-<!-- hhmts end -->
- </body>
-</html>