summaryrefslogtreecommitdiff
path: root/docs/tutorials/Chap_6/ex07.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/tutorials/Chap_6/ex07.html')
-rw-r--r--docs/tutorials/Chap_6/ex07.html174
1 files changed, 0 insertions, 174 deletions
diff --git a/docs/tutorials/Chap_6/ex07.html b/docs/tutorials/Chap_6/ex07.html
deleted file mode 100644
index 60053887cf5..00000000000
--- a/docs/tutorials/Chap_6/ex07.html
+++ /dev/null
@@ -1,174 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 7</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter:&nbsp; "The Acceptor/Connector"&nbsp;
-(Connection Initialization)</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#CC0000">//Example 7</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Reactor.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Svc_Handler.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT><FONT COLOR="#006600"> "ace/Acceptor.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT><FONT COLOR="#006600"> "ace/Synch.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/SOCK_Acceptor.h"</FONT>
-<BR><FONT COLOR="#000099">#include </FONT><FONT COLOR="#006600">"ace/Thread.h"</FONT>
-<BR><FONT COLOR="#000099">#define</FONT> <FONT COLOR="#663366">NETWORK_SPEED
-3</FONT>
-<BR>class MyServiceHandler;<FONT COLOR="#FF0000"> //forward declaration</FONT>
-<BR>typedef ACE_Singleton&lt;ACE_Reactor,ACE_Null_Mutex> Reactor;
-<BR>typedef ACE_Acceptor&lt;MyServiceHandler,ACE_SOCK_ACCEPTOR> Acceptor;
-
-<P>class MyServiceHandler:
-<BR>public ACE_Svc_Handler&lt;ACE_SOCK_STREAM,ACE_MT_SYNCH>{
-<BR><FONT COLOR="#FF0000">// The message sender and creator threads are
-handled here.</FONT>
-<BR>ACE_thread_t thread_names[2];
-
-<P>public:
-<BR>int open(void*){
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG, "Acceptor: received new connection \n"));
-
-<P><FONT COLOR="#FF0000">&nbsp;//Register with the reactor to remember
-this handler..</FONT>
-<BR>&nbsp;Reactor::instance() ->register_handler(this,ACE_Event_Handler::READ_MASK);
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"Acceptor: ThreadID:(%t) open\n"));
-
-<P><FONT COLOR="#CC0000">&nbsp;//Create two new threads to create and send
-messages to the</FONT>
-<BR><FONT COLOR="#CC0000">&nbsp;//remote machine.</FONT>
-<BR>&nbsp;activate(THR_NEW_LWP,
-<BR>&nbsp;&nbsp; 2, <FONT COLOR="#FF0000">//2 new threads</FONT>
-<BR>&nbsp;&nbsp; 0,
-<BR>&nbsp;&nbsp; ACE_DEFAULT_THREAD_PRIORITY,
-<BR>&nbsp;&nbsp; -1,
-<BR>&nbsp;&nbsp; this,
-<BR>&nbsp;&nbsp; 0,
-<BR>&nbsp;&nbsp; 0,
-<BR>&nbsp;&nbsp; 0,
-<BR>&nbsp;&nbsp; thread_names); <FONT COLOR="#FF0000">// identifiers in
-thread_handles</FONT>
-<BR>&nbsp;
-<BR>&nbsp;<FONT COLOR="#FF0000">//keep the service handler registered with
-the acceptor.</FONT>
-<BR>&nbsp;return 0;
-<BR>&nbsp;}
-
-<P>void send_message(void){
-<BR><FONT COLOR="#FF0000">&nbsp;//Dequeue the message and send it off</FONT>
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"(%t)Sending message >>"));
-
-<P><FONT COLOR="#FF0000">&nbsp;//dequeue the message from the message queue</FONT>
-<BR>&nbsp;ACE_Message_Block *mb;
-<BR>&nbsp;ACE_ASSERT(this->getq(mb)!=-1);
-<BR>&nbsp;int length=mb->length();
-<BR>&nbsp;char *data =mb->rd_ptr();
-
-<P>&nbsp;
-<BR><FONT COLOR="#FF0000">&nbsp;//Send the data to the remote peer</FONT>
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"%s \n",data,length));
-<BR>&nbsp;peer().send_n(data,length);
-
-<P>&nbsp;<FONT COLOR="#FF0000">//Simulate very SLOW network.</FONT>
-<BR>&nbsp;ACE_OS::sleep(NETWORK_SPEED);
-
-<P><FONT COLOR="#FF0000">&nbsp;//release the message block</FONT>
-<BR>&nbsp;mb->release();
-<BR>&nbsp;} <FONT COLOR="#FF0000">//end send_message</FONT>
-
-<P>int construct_message(void){
-<BR><FONT COLOR="#FF0000">&nbsp;// A very fast message creation algorithm</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;// would lead to the need for queuing messages..</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;// here. These messages are created and
-then sent</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;// using the SLOW send_message() routine
-which is</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;// running in a different thread so that
-the message</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;//construction thread isn?t blocked.</FONT>
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"(%t)Constructing message >> "));
-
-<P>&nbsp; <FONT COLOR="#FF0000">// Create a new message to send</FONT>
-<BR>&nbsp;ACE_Message_Block *mb;
-<BR>&nbsp;char *data="Hello Connector";
-<BR>&nbsp;ACE_NEW_RETURN (mb,ACE_Message_Block (16,<FONT COLOR="#FF0000">//Message
-16 bytes long</FONT>
-<BR>&nbsp;&nbsp; ACE_Message_Block::MB_DATA,<FONT COLOR="#FF0000">//Set
-header to data</FONT>
-<BR>&nbsp;&nbsp; 0,<FONT COLOR="#FF0000">//No continuations</FONT>.
-<BR>&nbsp;&nbsp; data<FONT COLOR="#FF0000">//The data we want to send</FONT>
-<BR>&nbsp;&nbsp; ), 0);
-<BR>&nbsp;mb->wr_ptr(16); <FONT COLOR="#FF0000">//Set the write pointer.</FONT>
-<BR>&nbsp;
-<BR>&nbsp;<FONT COLOR="#FF0000">// Enqueue the message into the message
-queue</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;// we COULD have done a timed wait for
-enqueuing in case</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;// someone else holds the lock to the queue
-so it doesn?t block</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;//forever..</FONT>
-<BR>&nbsp;ACE_ASSERT(this->putq(mb)!=-1);
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"Enqueued msg successfully\n"));
-<BR>}
-<BR>&nbsp;
-<BR>int svc(void){
-<BR>&nbsp;ACE_DEBUG( (LM_DEBUG,?(%t) Svc thread \n?));
-<BR>&nbsp;
-<BR><FONT COLOR="#FF0000">&nbsp;//call the message creator thread</FONT>
-<BR>&nbsp;if(ACE_Thread::self()== thread_names[0])
-<BR>&nbsp; while(1) construct_message(); <FONT COLOR="#FF0000">//create
-messages forever</FONT>
-<BR>&nbsp;else
-<BR>&nbsp; while(1) send_message(); <FONT COLOR="#FF0000">//send messages
-forever</FONT>
-<BR>&nbsp;return 0; <FONT COLOR="#FF0000">// keep the compiler happy.</FONT>
-<BR>}
-<BR>&nbsp;
-<BR>int handle_input(ACE_HANDLE){
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"(%t) handle_input "));
-<BR>&nbsp;char* data= new char[13];
-<BR>&nbsp;
-<BR>&nbsp;<FONT COLOR="#FF0000">//Check if peer aborted the connection</FONT>
-<BR>&nbsp;if(peer().recv_n(data,12)==0){
-<BR>&nbsp; ACE_OS::printf("Peer probably aborted connection");
-<BR>&nbsp; return -1; <FONT COLOR="#FF0000">//de-register from the Reactor.</FONT>
-<BR>&nbsp; }
-<BR>&nbsp;
-<BR><FONT COLOR="#FF0000">&nbsp;//Show what you got..</FONT>
-<BR>&nbsp;ACE_OS::printf("&lt;&lt; %s\n",data);
-<BR>&nbsp;
-<BR><FONT COLOR="#FF0000">&nbsp;//keep yourself registered</FONT>
-<BR>&nbsp;return 0;
-<BR>&nbsp;
-<BR>&nbsp;}
-<BR>};
-
-<P>int main(int argc, char* argv[]){
-<BR>&nbsp;ACE_INET_Addr addr(10101);
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"Thread: (%t) main\n"));
-
-<P>&nbsp;<FONT COLOR="#FF0000">//Prepare to accept connections</FONT>
-<BR>&nbsp;Acceptor myacceptor(addr,Reactor::instance());
-
-<P><FONT COLOR="#FF0000">&nbsp;// wait for something to happen.</FONT>
-<BR>&nbsp;while(1)
-<BR>&nbsp; Reactor::instance()->handle_events();
-<BR>&nbsp;
-<BR>&nbsp;return 0;
-<BR>}
-
-<P>&nbsp;<A HREF="ex08.html">Next Example</A>
-</BODY>
-</HTML>