summaryrefslogtreecommitdiff
path: root/docs/tutorials/012/page04.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/tutorials/012/page04.html')
-rw-r--r--docs/tutorials/012/page04.html124
1 files changed, 0 insertions, 124 deletions
diff --git a/docs/tutorials/012/page04.html b/docs/tutorials/012/page04.html
deleted file mode 100644
index b83dd9e6ca2..00000000000
--- a/docs/tutorials/012/page04.html
+++ /dev/null
@@ -1,124 +0,0 @@
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 012</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 012</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Passing classes through ACE_Message_Queue</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-<P>
-Ok, finally we get to main(). Sorry for the diversion but it was
-important to lay some of that groundwork before getting here.
-<P>
-<HR WIDTH="100%">
-<PRE>
-/*
- I want to be sure that our Task object gets destructed correctly, so
- I'll do most of the application 'work' in run_test() instead of
- main()
-*/
-int run_test (int iterations, int threads)
-{
- /*
- Create the Task which is our thread pool for doing work
- */
- Task task;
-
- if (task.open (threads) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), -1);
- }
-
- /*
- Give the Task a chance to enter it's svc() method. This isn't
- really necessary and you probably wouldn't do it in a real
- application but it makes the output more interesting.
- */
- ACE_OS::sleep (ACE_Time_Value (1));
-
- for (int i = 0; i < iterations; ++i)
- {
- /*
- Construct a Work object that we'll put into the Queue. Give it
- the iteration number so that it can identify itself in the output.
- */
- Work * data = new Work(i);
-
- /*
- Create a block that contains our Work object but also has
- enough room for a text message.
- */
- Message_Block *message = new Message_Block (128, data);
-
- /*
- As before, put a text message into the block.
- */
- ACE_OS::sprintf (message->wr_ptr (), "This is message %d.", i);
- message->wr_ptr (strlen (message->rd_ptr ())+1);
-
- /*
- Add the work to our thread pool
- */
- if (task.putq (message) == -1)
- {
- break;
- }
- }
-
- /*
- Insert a HANGUP message block to tell the thread pool to shut
- itself down.
- */
- Message_Block *message = new Message_Block (0,0);
- message->msg_type (ACE_Message_Block::MB_HANGUP);
- task.putq (message);
-
- /*
- Wait for the all threads of the Task to exit. It is rather rude
- to let the Task go out of scope without doing this first.
- */
- task.wait ();
-
- return (0);
-}
-
-int main (int argc, char *argv[])
-{
- /*
- Give the user a chance to override the default number of
- iterations and pool threads.
- */
- int iterations = argc > 1 ? atoi (argv[1]) : 4;
- int threads = argc > 2 ? atoi (argv[2]) : 2;
-
- /*
- Use the function above to do the actual test. As I said, this
- lets us see the Task go out of scope and destruct before our
- "exiting" message below.
- */
- (void) run_test (iterations, threads);
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Application exiting\n"));
-
- exit (0);
-}
-</PRE>
-<HR WIDTH="100%">
-<P>
-That certainly looks cleaner than the previous approach! If you
-blink, you'll miss the part where the Work object goes into the Queue.
-<P>
-<HR WIDTH="100%">
-<P>
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page05.html">Continue
-This Tutorial</A>]</CENTER>
-
-</BODY>
-</HTML>