summaryrefslogtreecommitdiff
path: root/examples/Reactor/Proactor
diff options
context:
space:
mode:
Diffstat (limited to 'examples/Reactor/Proactor')
-rw-r--r--examples/Reactor/Proactor/test_multiple_loops.cpp119
-rw-r--r--examples/Reactor/Proactor/test_multiple_loops.dsp71
-rw-r--r--examples/Reactor/Proactor/test_proactor.cpp578
-rw-r--r--examples/Reactor/Proactor/test_proactor.dsp66
-rw-r--r--examples/Reactor/Proactor/test_proactor.dsw53
-rw-r--r--examples/Reactor/Proactor/test_proactor.mak536
-rw-r--r--examples/Reactor/Proactor/test_proactor.mdpbin52736 -> 0 bytes
-rw-r--r--examples/Reactor/Proactor/test_timeout.cpp96
-rw-r--r--examples/Reactor/Proactor/test_timeout.dsp70
9 files changed, 0 insertions, 1589 deletions
diff --git a/examples/Reactor/Proactor/test_multiple_loops.cpp b/examples/Reactor/Proactor/test_multiple_loops.cpp
deleted file mode 100644
index 9ffbf72f596..00000000000
--- a/examples/Reactor/Proactor/test_multiple_loops.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-// $Id: test_timeout.cpp
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// test_multiple_loops.cpp
-//
-// = DESCRIPTION
-//
-// This example application shows how to write programs that
-// combine the Proactor and Reactor event loops
-//
-// = AUTHOR
-// Irfan Pyarali
-//
-// ============================================================================
-
-#include "ace/Proactor.h"
-#include "ace/Synch.h"
-#include "ace/Task.h"
-
-class Timeout_Handler : public ACE_Handler, public ACE_Event_Handler
- // = TITLE
- // Generic timeout handler.
-{
-public:
- Timeout_Handler (void)
- {
- }
-
- virtual void handle_time_out (const ACE_Time_Value &tv,
- const void *arg)
- // Print out when timeouts occur.
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) %d timeout occurred for %s @ %d.\n",
- ++count_,
- (char *) arg,
- tv.sec ()));
-
- // Since there is only one thread that can do the timeouts in
- // Reactor, lets keep the handle_timeout short for that
- // thread.
- if (ACE_OS::strcmp ((char *) arg, "Proactor") == 0)
- // Sleep for a while
- ACE_OS::sleep (1);
- }
- virtual int handle_timeout (const ACE_Time_Value &tv,
- const void *arg)
- {
- this->handle_time_out (tv, arg);
- return 0;
- }
-
-private:
- ACE_Atomic_Op <ACE_Thread_Mutex, int> count_;
-};
-
-class Worker : public ACE_Task <ACE_NULL_SYNCH>
-{
-public:
- int svc (void)
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) Worker started\n"));
-
- // Handle events for 13 seconds.
- ACE_Time_Value run_time (13);
-
- // Try to become the owner
- ACE_Reactor::instance ()->owner (ACE_Thread::self ());
-
- if (ACE_Reactor::run_event_loop (run_time) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p.\n", "Worker::svc"), -1);
- else
- ACE_DEBUG ((LM_DEBUG, "(%t) work complete\n"));
-
- return 0;
- }
-};
-
-int
-main (int, char *[])
-{
- Timeout_Handler handler;
- ACE_Proactor proactor (0, 0, 1);
-
- ACE_Reactor::instance ()->register_handler (&proactor);
-
- // Register a 2 second timer.
- ACE_Time_Value foo_tv (2);
- if (proactor.schedule_timer (handler,
- (void *) "Proactor",
- ACE_Time_Value::zero,
- foo_tv) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "schedule_timer"), -1);
-
- // Register a 3 second timer.
- ACE_Time_Value bar_tv (3);
- if (ACE_Reactor::instance ()->schedule_timer (&handler,
- (void *) "Reactor",
- ACE_Time_Value::zero,
- bar_tv) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "schedule_timer"), -1);
-
- Worker worker;
-
- if (worker.activate (THR_NEW_LWP, 10) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p.\n", "main"), -1);
-
- ACE_Thread_Manager::instance ()->wait ();
-
- // Remove from reactor
- ACE_Reactor::instance ()->remove_handler (&proactor,
- ACE_Event_Handler::DONT_CALL);
-
- return 0;
-}
diff --git a/examples/Reactor/Proactor/test_multiple_loops.dsp b/examples/Reactor/Proactor/test_multiple_loops.dsp
deleted file mode 100644
index 032c8b4d46d..00000000000
--- a/examples/Reactor/Proactor/test_multiple_loops.dsp
+++ /dev/null
@@ -1,71 +0,0 @@
-# Microsoft Developer Studio Project File - Name="test_multiple_loops" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 5.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=test_multiple_loops - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "test_multiple_loops.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "test_multiple_loops.mak"\
- CFG="test_multiple_loops - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "test_multiple_loops - Win32 Debug" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ".\test_multiple_loops\Debug"
-# PROP BASE Intermediate_Dir ".\test_multiple_loops\Debug"
-# PROP BASE Target_Dir ".\test_multiple_loops"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir ".\Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ".\test_multiple_loops"
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# ADD LINK32 aced.lib /nologo /subsystem:console /debug /machine:I386 /libpath:"..\..\..\ace"
-# Begin Target
-
-# Name "test_multiple_loops - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
-# Begin Source File
-
-SOURCE=.\test_multiple_loops.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/examples/Reactor/Proactor/test_proactor.cpp b/examples/Reactor/Proactor/test_proactor.cpp
deleted file mode 100644
index f6ebed26c53..00000000000
--- a/examples/Reactor/Proactor/test_proactor.cpp
+++ /dev/null
@@ -1,578 +0,0 @@
-// $Id: test_proactor.cpp,v
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// test_proactor.cpp
-//
-// = DESCRIPTION
-// This program illustrates how the ACE_Proactor can be used to
-// implement an application that does various asynchronous
-// operations.
-//
-// = AUTHOR
-// Irfan Pyarali (irfan@cs.wustl.edu)
-//
-// ============================================================================
-
-#include "ace/Service_Config.h"
-#include "ace/Proactor.h"
-#include "ace/Asynch_IO.h"
-#include "ace/Asynch_Acceptor.h"
-#include "ace/INET_Addr.h"
-#include "ace/SOCK_Connector.h"
-#include "ace/SOCK_Acceptor.h"
-#include "ace/SOCK_Stream.h"
-#include "ace/Message_Block.h"
-#include "ace/Get_Opt.h"
-
-static char *host = 0;
-static u_short port = ACE_DEFAULT_SERVER_PORT;
-static char *file = "test_proactor.cpp";
-static char *dump_file = "output";
-static int done = 0;
-static int initial_read_size = BUFSIZ;
-
-class Receiver : public ACE_Service_Handler
- //
- // = TITLE
- //
- // Receiver
- //
- // = DESCRIPTION
- //
- // The class will be created by ACE_Asynch_Acceptor when new
- // connections arrive. This class will then receive data from
- // the network connection and dump it to a file.
-{
-public:
- Receiver (void);
- ~Receiver (void);
-
- virtual void open (ACE_HANDLE handle,
- ACE_Message_Block &message_block);
- // This is called after the new connection has been accepted.
-
-protected:
- // These methods are called by the framework
-
- virtual void handle_read_stream (const ACE_Asynch_Read_Stream::Result &result);
- // This is called when asynchronous read from the socket complete
-
- virtual void handle_write_file (const ACE_Asynch_Write_File::Result &result);
- // This is called when asynchronous writes to the file complete
-
-private:
- int initiate_read_stream (void);
-
- ACE_Asynch_Read_Stream rs_;
- // rs (read stream): for reading from a socket
-
- ACE_HANDLE dump_file_;
- // File for dumping data
-
- ACE_Asynch_Write_File wf_;
- // wf (write file): for writing to a file
-
- u_long file_offset_;
- // Offset for the file
-
- ACE_HANDLE handle_;
- // Handle for IO to remote peer
-};
-
-Receiver::Receiver (void)
- : handle_ (ACE_INVALID_HANDLE),
- dump_file_ (ACE_INVALID_HANDLE)
-{
-}
-
-Receiver::~Receiver (void)
-{
- ACE_OS::close (this->dump_file_);
- ACE_OS::closesocket (this->handle_);
-}
-
-void
-Receiver::open (ACE_HANDLE handle,
- ACE_Message_Block &message_block)
-{
- // New connection, initiate stuff
-
- // Cache the new connection
- this->handle_ = handle;
-
- // File offset starts at zero
- this->file_offset_ = 0;
-
- // Open dump file (in OVERLAPPED mode)
- this->dump_file_ = ACE_OS::open (dump_file, _O_CREAT | O_RDWR | _O_TRUNC | FILE_FLAG_OVERLAPPED);
- if (this->dump_file_ == ACE_INVALID_HANDLE)
- {
- ACE_ERROR ((LM_ERROR, "%p\n", "ACE_OS::open"));
- return;
- }
-
- // Initiate ACE_Asynch_Write_File
- if (this->wf_.open (*this, this->dump_file_) == -1)
- {
- ACE_ERROR ((LM_ERROR, "%p\n", "ACE_Asynch_Write_File::open"));
- return;
- }
-
- // Initiate ACE_Asynch_Read_Stream
- if (this->rs_.open (*this, this->handle_) == -1)
- {
- ACE_ERROR ((LM_ERROR, "%p\n", "ACE_Asynch_Read_Stream::open"));
- return;
- }
-
- // Duplicate the message block so that we can keep it around
- ACE_Message_Block &duplicate = *message_block.duplicate ();
-
- // Initial data (data which came with the AcceptEx call)
- ACE_Asynch_Read_Stream::Result fake_result (*this,
- this->handle_,
- duplicate,
- initial_read_size,
- 0,
- ACE_INVALID_HANDLE);
- // This will call the callback
- fake_result.complete (message_block.length (), 1, 0);
-}
-
-int
-Receiver::initiate_read_stream (void)
-{
- // Create Message_Block
- ACE_Message_Block *mb = 0;
- ACE_NEW_RETURN (mb, ACE_Message_Block (BUFSIZ + 1), -1);
-
- // Inititiate read
- if (this->rs_.read (*mb,
- mb->size () - 1) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "ACE_Asynch_Read_Stream::read"), -1);
-
- return 0;
-}
-
-void
-Receiver::handle_read_stream (const ACE_Asynch_Read_Stream::Result &result)
-{
- ACE_DEBUG ((LM_DEBUG, "handle_read_stream called\n"));
-
- // Reset pointers
- result.message_block ().rd_ptr ()[result.bytes_transferred ()] = '\0';
-
- ACE_DEBUG ((LM_DEBUG, "********************\n"));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "bytes_to_read", result.bytes_to_read ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "handle", result.handle ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "bytes_transfered", result.bytes_transferred ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "act", (u_long) result.act ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "success", result.success ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "completion_key", (u_long) result.completion_key ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "error", result.error ()));
- ACE_DEBUG ((LM_DEBUG, "********************\n"));
- ACE_DEBUG ((LM_DEBUG, "%s = %s\n", "message_block", result.message_block ().rd_ptr ()));
-
- if (result.success () && result.bytes_transferred () != 0)
- {
- // Successful read: Write the data to the file.
- if (this->wf_.write (result.message_block (),
- result.bytes_transferred (),
- this->file_offset_) == -1)
- {
- ACE_ERROR ((LM_ERROR, "%p\n", "ACE_Asynch_Write_File::write"));
- return;
- }
-
- // Initiate new read from the stream
- if (this->initiate_read_stream () == -1)
- return;
- }
- else
- done = 1;
-}
-
-void
-Receiver::handle_write_file (const ACE_Asynch_Write_File::Result &result)
-{
- ACE_DEBUG ((LM_DEBUG, "handle_write_file called\n"));
-
- ACE_DEBUG ((LM_DEBUG, "********************\n"));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "bytes_to_write", result.bytes_to_write ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "handle", result.handle ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "bytes_transfered", result.bytes_transferred ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "act", (u_long) result.act ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "success", result.success ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "completion_key", (u_long) result.completion_key ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "error", result.error ()));
- ACE_DEBUG ((LM_DEBUG, "********************\n"));
-
- result.message_block ().release ();
-
- if (result.success ())
- // Write successful: Increment file offset
- this->file_offset_ += result.bytes_transferred ();
-
- // This code is not robust enough to deal with short file writes
- // (which hardly ever happen) ;-)
- ACE_ASSERT (result.bytes_to_write () == result.bytes_transferred ());
-}
-
-class Sender : public ACE_Handler
- //
- // = TITLE
- //
- // Sender
- //
- // = DESCRIPTION
- //
- // The class will be created by main(). After connecting to the
- // host, this class will then read data from a file and send it
- // to the network connection.
-{
-public:
- Sender (void);
- ~Sender (void);
- int open (const char *host,
- u_short port);
- ACE_HANDLE handle (void) const;
-
-protected:
- // These methods are called by the freamwork
-
- virtual void handle_transmit_file (const ACE_Asynch_Transmit_File::Result &result);
- // This is called when asynchronous transmit files complete
- virtual void handle_write_stream (const ACE_Asynch_Write_Stream::Result &result);
- // This is called when asynchronous writes from the socket complete
- virtual void handle_read_file (const ACE_Asynch_Read_File::Result &result);
- // This is called when asynchronous reads from the socket complete
-
-private:
- int transmit_file (void);
-
- int initiate_read_file (void);
-
- ACE_SOCK_Stream stream_;
- // Network I/O handle
-
- ACE_Asynch_Write_Stream ws_;
- // ws (write stream): for writing to the socket
-
- ACE_Asynch_Read_File rf_;
- // rf (read file): for writing from the file
-
- ACE_HANDLE input_file_;
- // File to read from
-
- u_long file_offset_;
- // Current file offset
-
- u_long file_size_;
- // File size
-
- ACE_Message_Block welcome_message_;
- // Welcome message
-
- ACE_Asynch_Transmit_File::Header_And_Trailer header_and_trailer_;
- // Header and trailer which goes with transmit_file
-
- int stream_write_done_;
- int transmit_file_done_;
- // These flags help to determine when to close down the event loop
-};
-
-
-Sender::Sender (void)
- : input_file_ (ACE_INVALID_HANDLE),
- file_offset_ (0),
- file_size_ (0),
- stream_write_done_ (0),
- transmit_file_done_ (0)
-{
- // Moment of inspiration :-)
- static char *data = "Welcome to Irfan World! Irfan RULES here !!";
- this->welcome_message_.init (data, ACE_OS::strlen (data));
- this->welcome_message_.wr_ptr (ACE_OS::strlen (data));
-}
-
-Sender::~Sender (void)
-{
- this->stream_.close ();
-}
-
-ACE_HANDLE
-Sender::handle (void) const
-{
- return this->stream_.get_handle ();
-}
-
-int
-Sender::open (const char *host,
- u_short port)
-{
- // Initialize stuff
-
- // Open input file (in OVERLAPPED mode)
- this->input_file_ = ACE_OS::open (file, GENERIC_READ | FILE_FLAG_OVERLAPPED);
- if (this->input_file_ == ACE_INVALID_HANDLE)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "ACE_OS::open"), -1);
-
- // Find file size
- this->file_size_ = ACE_OS::filesize (this->input_file_);
-
- // Connect to remote host
- ACE_INET_Addr address (port, host);
- ACE_SOCK_Connector connector;
- if (connector.connect (this->stream_,
- address) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "ACE_SOCK_Connector::connect"), -1);
-
- // Open ACE_Asynch_Write_Stream
- if (this->ws_.open (*this) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "ACE_Asynch_Write_Stream::open"), -1);
-
- // Open ACE_Asynch_Read_File
- if (this->rf_.open (*this, this->input_file_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "ACE_Asynch_Read_File::open"), -1);
-
- // Start an asynchronous transmit file
- if (this->transmit_file () == -1)
- return -1;
-
- // Start an asynchronous read file
- if (initiate_read_file () == -1)
- return -1;
-
- return 0;
-}
-
-int
-Sender::transmit_file (void)
-{
- // Open file (in SEQUENTIAL_SCAN mode)
- ACE_HANDLE file_handle = ACE_OS::open (file, GENERIC_READ | FILE_FLAG_SEQUENTIAL_SCAN);
- if (file_handle == ACE_INVALID_HANDLE)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "ACE_OS::open"), -1);
-
- // Open ACE_Asynch_Transmit_File
- ACE_Asynch_Transmit_File tf;
- if (tf.open (*this) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "ACE_Asynch_Transmit_File::open"), -1);
-
- // Header and trailer data for the file
- this->header_and_trailer_.header_and_trailer (&this->welcome_message_,
- this->welcome_message_.length (),
- &this->welcome_message_,
- this->welcome_message_.length ());
-
- // Starting position
- cerr << "Staring position: " << ACE_OS::lseek (file_handle, 0L, SEEK_CUR) << endl;
-
- // Send it
- if (tf.transmit_file (file_handle,
- &this->header_and_trailer_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "ACE_Asynch_Transmit_File::transmit_file"), -1);
-
- return 0;
-}
-
-void
-Sender::handle_transmit_file (const ACE_Asynch_Transmit_File::Result &result)
-{
- ACE_DEBUG ((LM_DEBUG, "handle_transmit_file called\n"));
-
- ACE_DEBUG ((LM_DEBUG, "********************\n"));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "socket", result.socket ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "file", result.file ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "bytes_to_write", result.bytes_to_write ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "bytes_per_send", result.bytes_per_send ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "flags", result.flags ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "bytes_transfered", result.bytes_transferred ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "act", (u_long) result.act ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "success", result.success ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "completion_key", (u_long) result.completion_key ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "error", result.error ()));
- ACE_DEBUG ((LM_DEBUG, "********************\n"));
-
- // Ending position
- cerr << "Ending position: " << ACE_OS::lseek (result.file (), 0L, SEEK_CUR) << endl;
-
- // Done with file
- ACE_OS::close (result.file ());
-
- this->transmit_file_done_ = 1;
- if (this->stream_write_done_)
- done = 1;
-}
-
-int
-Sender::initiate_read_file (void)
-{
- // Create Message_Block
- ACE_Message_Block *mb = 0;
- ACE_NEW_RETURN (mb, ACE_Message_Block (BUFSIZ + 1), -1);
-
- // Inititiate an asynchronous read from the file
- if (this->rf_.read (*mb,
- mb->size () - 1,
- this->file_offset_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "ACE_Asynch_Read_File::read"), -1);
-
- return 0;
-}
-
-void
-Sender::handle_read_file (const ACE_Asynch_Read_File::Result &result)
-{
- ACE_DEBUG ((LM_DEBUG, "handle_read_file called\n"));
-
- result.message_block ().rd_ptr ()[result.bytes_transferred ()] = '\0';
-
- ACE_DEBUG ((LM_DEBUG, "********************\n"));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "bytes_to_read", result.bytes_to_read ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "handle", result.handle ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "bytes_transfered", result.bytes_transferred ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "act", (u_long) result.act ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "success", result.success ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "completion_key", (u_long) result.completion_key ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "error", result.error ()));
- ACE_DEBUG ((LM_DEBUG, "********************\n"));
- //ACE_DEBUG ((LM_DEBUG, "%s = %s\n", "message_block", result.message_block ().rd_ptr ()));
-
- if (result.success ())
- {
- // Read successful: increment offset and write data to network
- this->file_offset_ += result.bytes_transferred ();
- if (this->ws_.write (result.message_block (),
- result.bytes_transferred ()) == -1)
- {
- ACE_ERROR ((LM_ERROR, "%p\n", "ACE_Asynch_Write_Stream::write"));
- return;
- }
-
- if (this->file_size_ > this->file_offset_)
- {
- // Start an asynchronous read file
- if (initiate_read_file () == -1)
- return;
- }
- }
-}
-
-void
-Sender::handle_write_stream (const ACE_Asynch_Write_Stream::Result &result)
-{
- ACE_DEBUG ((LM_DEBUG, "handle_write_stream called\n"));
-
- // Reset pointers
- result.message_block ().rd_ptr (-result.bytes_transferred ());
-
- ACE_DEBUG ((LM_DEBUG, "********************\n"));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "bytes_to_write", result.bytes_to_write ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "handle", result.handle ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "bytes_transfered", result.bytes_transferred ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "act", (u_long) result.act ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "success", result.success ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "completion_key", (u_long) result.completion_key ()));
- ACE_DEBUG ((LM_DEBUG, "%s = %d\n", "error", result.error ()));
- ACE_DEBUG ((LM_DEBUG, "********************\n"));
- ACE_DEBUG ((LM_DEBUG, "%s = %s\n", "message_block", result.message_block ().rd_ptr ()));
-
- if (result.success ())
- {
- // Partial write to socket
- int unsent_data = result.bytes_to_write () - result.bytes_transferred ();
- if (unsent_data != 0)
- {
- // Reset pointers
- result.message_block ().rd_ptr (result.bytes_transferred ());
-
- // Duplicate the message block and retry remaining data
- if (this->ws_.write (*result.message_block ().duplicate (),
- unsent_data) == -1)
- {
- ACE_ERROR ((LM_ERROR, "%p\n", "ACE_Asynch_Write_Stream::write"));
- return;
- }
- }
- else if (!(this->file_size_ > this->file_offset_))
- {
- this->stream_write_done_ = 1;
- if (this->transmit_file_done_)
- done = 1;
- }
- }
-
- // Release message block
- result.message_block ().release ();
-}
-
-static int
-parse_args (int argc, char *argv[])
-{
- ACE_Get_Opt get_opt (argc, argv, "h:p:f:d:");
- int c;
-
- while ((c = get_opt ()) != EOF)
- switch (c)
- {
- case 'h':
- host = get_opt.optarg;
- break;
- case 'p':
- port = ACE_OS::atoi (get_opt.optarg);
- break;
- case 'f':
- file = get_opt.optarg;
- break;
- case 'd':
- dump_file = get_opt.optarg;
- break;
- default:
- ACE_ERROR ((LM_ERROR, "%p.\n",
- "usage :\n"
- "-h <host>\n"
- "-p <port>\n"
- "-f <file>\n"));
- return -1;
- }
-
- return 0;
-}
-
-int
-main (int argc, char *argv[])
-{
- if (parse_args (argc, argv) == -1)
- return -1;
-
- Sender sender;
-
- // Note: acceptor parameterized by the Receiver
- ACE_Asynch_Acceptor <Receiver> acceptor;
-
- // If passive side
- if (host == 0)
- {
- if (acceptor.open (ACE_INET_Addr (port),
- initial_read_size,
- 1) == -1)
- return -1;
- }
- // If active side
- else if (sender.open (host, port) == -1)
- return -1;
-
- int error = 0;
-
- while (!error && !done)
- // dispatch events
- error = ACE_Proactor::instance ()->handle_events ();
-
- return 0;
-}
diff --git a/examples/Reactor/Proactor/test_proactor.dsp b/examples/Reactor/Proactor/test_proactor.dsp
deleted file mode 100644
index 68a1e923e98..00000000000
--- a/examples/Reactor/Proactor/test_proactor.dsp
+++ /dev/null
@@ -1,66 +0,0 @@
-# Microsoft Developer Studio Project File - Name="test_proactor" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 5.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=test_proactor - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "test_proactor.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "test_proactor.mak" CFG="test_proactor - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "test_proactor - Win32 Debug" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir ".\debug"
-# PROP Ignore_Export_Lib 0
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# ADD LINK32 wsock32.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /libpath:"..\..\..\ace"
-# Begin Target
-
-# Name "test_proactor - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
-# Begin Source File
-
-SOURCE=.\test_proactor.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/examples/Reactor/Proactor/test_proactor.dsw b/examples/Reactor/Proactor/test_proactor.dsw
deleted file mode 100644
index 6cd42d5d909..00000000000
--- a/examples/Reactor/Proactor/test_proactor.dsw
+++ /dev/null
@@ -1,53 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 5.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "test_multiple_loops"=.\test_multiple_loops.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "test_proactor"=.\test_proactor.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "test_timeout"=.\test_timeout.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/examples/Reactor/Proactor/test_proactor.mak b/examples/Reactor/Proactor/test_proactor.mak
deleted file mode 100644
index 6a77e8c8547..00000000000
--- a/examples/Reactor/Proactor/test_proactor.mak
+++ /dev/null
@@ -1,536 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Format Version 4.20
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-!IF "$(CFG)" == ""
-CFG=test_multiple_loops - Win32 Debug
-!MESSAGE No configuration specified. Defaulting to test_multiple_loops - Win32\
- Debug.
-!ENDIF
-
-!IF "$(CFG)" != "test_proactor - Win32 Debug" && "$(CFG)" !=\
- "test_timeout - Win32 Debug" && "$(CFG)" != "test_multiple_loops - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE on this makefile
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "test_proactor.mak" CFG="test_multiple_loops - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "test_proactor - Win32 Debug" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "test_timeout - Win32 Debug" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "test_multiple_loops - Win32 Debug" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-################################################################################
-# Begin Project
-# PROP Target_Last_Scanned "test_multiple_loops - Win32 Debug"
-RSC=rc.exe
-CPP=cl.exe
-
-!IF "$(CFG)" == "test_proactor - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "debug"
-OUTDIR=.\.
-INTDIR=.\debug
-
-ALL : "$(OUTDIR)\test_proactor.exe"
-
-CLEAN :
- -@erase "$(INTDIR)\test_proactor.obj"
- -@erase "$(INTDIR)\vc40.idb"
- -@erase "$(INTDIR)\vc40.pdb"
- -@erase "$(OUTDIR)\test_proactor.exe"
- -@erase "$(OUTDIR)\test_proactor.ilk"
- -@erase "$(OUTDIR)\test_proactor.pdb"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-"$(INTDIR)" :
- if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-CPP_OBJS=.\debug/
-CPP_SBRS=.\.
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/test_proactor.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# ADD LINK32 wsock32.lib aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-LINK32_FLAGS=wsock32.lib aced.lib kernel32.lib user32.lib gdi32.lib\
- winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib\
- uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:yes\
- /pdb:"$(OUTDIR)/test_proactor.pdb" /debug /machine:I386\
- /out:"$(OUTDIR)/test_proactor.exe"
-LINK32_OBJS= \
- "$(INTDIR)\test_proactor.obj"
-
-"$(OUTDIR)\test_proactor.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "test_timeout - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "test_timeout\Debug"
-# PROP BASE Intermediate_Dir "test_timeout\Debug"
-# PROP BASE Target_Dir "test_timeout"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "Debug"
-# PROP Target_Dir "test_timeout"
-OUTDIR=.\.
-INTDIR=.\Debug
-
-ALL : "$(OUTDIR)\test_timeout.exe"
-
-CLEAN :
- -@erase "$(INTDIR)\test_timeout.obj"
- -@erase "$(INTDIR)\vc40.idb"
- -@erase "$(INTDIR)\vc40.pdb"
- -@erase "$(OUTDIR)\test_timeout.exe"
- -@erase "$(OUTDIR)\test_timeout.ilk"
- -@erase "$(OUTDIR)\test_timeout.pdb"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-"$(INTDIR)" :
- if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-CPP_OBJS=.\Debug/
-CPP_SBRS=.\.
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/test_timeout.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# ADD LINK32 aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-LINK32_FLAGS=aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib\
- comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib\
- odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:yes\
- /pdb:"$(OUTDIR)/test_timeout.pdb" /debug /machine:I386\
- /out:"$(OUTDIR)/test_timeout.exe"
-LINK32_OBJS= \
- "$(INTDIR)\test_timeout.obj"
-
-"$(OUTDIR)\test_timeout.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "test_multiple_loops - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "test_multiple_loops\Debug"
-# PROP BASE Intermediate_Dir "test_multiple_loops\Debug"
-# PROP BASE Target_Dir "test_multiple_loops"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir "Debug"
-# PROP Target_Dir "test_multiple_loops"
-OUTDIR=.\.
-INTDIR=.\Debug
-
-ALL : "$(OUTDIR)\test_multiple_loops.exe"
-
-CLEAN :
- -@erase "$(INTDIR)\test_multiple_loops.obj"
- -@erase "$(INTDIR)\vc40.idb"
- -@erase "$(INTDIR)\vc40.pdb"
- -@erase "$(OUTDIR)\test_multiple_loops.exe"
- -@erase "$(OUTDIR)\test_multiple_loops.ilk"
- -@erase "$(OUTDIR)\test_multiple_loops.pdb"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-"$(INTDIR)" :
- if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-CPP_OBJS=.\Debug/
-CPP_SBRS=.\.
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/test_multiple_loops.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# ADD LINK32 aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-LINK32_FLAGS=aced.lib kernel32.lib user32.lib gdi32.lib winspool.lib\
- comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib\
- odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:yes\
- /pdb:"$(OUTDIR)/test_multiple_loops.pdb" /debug /machine:I386\
- /out:"$(OUTDIR)/test_multiple_loops.exe"
-LINK32_OBJS= \
- "$(INTDIR)\test_multiple_loops.obj"
-
-"$(OUTDIR)\test_multiple_loops.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE"\
- /Fp"$(INTDIR)/test_proactor.pch" /YX /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-################################################################################
-# Begin Target
-
-# Name "test_proactor - Win32 Debug"
-################################################################################
-# Begin Source File
-
-SOURCE=.\test_proactor.cpp
-DEP_CPP_TEST_=\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\Asynch_Acceptor.h"\
- {$(INCLUDE)}"\ace\Asynch_Acceptor.i"\
- {$(INCLUDE)}"\ace\Asynch_IO.h"\
- {$(INCLUDE)}"\ace\Get_Opt.h"\
- {$(INCLUDE)}"\ace\Get_Opt.i"\
- {$(INCLUDE)}"\ace\INET_Addr.h"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\Proactor.h"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\
- {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\
- {$(INCLUDE)}"\ace\SOCK_Connector.h"\
- {$(INCLUDE)}"\ace\SOCK_Stream.h"\
- {$(INCLUDE)}"\ace\Time_Value.h"\
-
-
-"$(INTDIR)\test_proactor.obj" : $(SOURCE) $(DEP_CPP_TEST_) "$(INTDIR)"
-
-
-# End Source File
-# End Target
-################################################################################
-# Begin Target
-
-# Name "test_timeout - Win32 Debug"
-################################################################################
-# Begin Source File
-
-SOURCE=.\test_timeout.cpp
-DEP_CPP_TEST_T=\
- "..\..\..\ace\config-win32.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Asynch_IO.h"\
- {$(INCLUDE)}"\ace\Asynch_IO.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Proactor.h"\
- {$(INCLUDE)}"\ace\Proactor.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Reactor_Impl.h"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Service_Types.h"\
- {$(INCLUDE)}"\ace\Service_Types.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\stdcpp.h"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Timer_Heap.h"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.h"\
- {$(INCLUDE)}"\ace\Timer_List.h"\
- {$(INCLUDE)}"\ace\Timer_List_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_List_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Timer_Wheel.h"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.h"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.i"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
-
-
-"$(INTDIR)\test_timeout.obj" : $(SOURCE) $(DEP_CPP_TEST_T) "$(INTDIR)"
-
-
-# End Source File
-# End Target
-################################################################################
-# Begin Target
-
-# Name "test_multiple_loops - Win32 Debug"
-################################################################################
-# Begin Source File
-
-SOURCE=.\test_multiple_loops.cpp
-DEP_CPP_TEST_M=\
- "..\..\..\ace\config-win32.h"\
- {$(INCLUDE)}"\ace\ACE.h"\
- {$(INCLUDE)}"\ace\ACE.i"\
- {$(INCLUDE)}"\ace\Asynch_IO.h"\
- {$(INCLUDE)}"\ace\Asynch_IO.i"\
- {$(INCLUDE)}"\ace\Atomic_Op.i"\
- {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\
- {$(INCLUDE)}"\ace\Auto_Ptr.h"\
- {$(INCLUDE)}"\ace\Auto_Ptr.i"\
- {$(INCLUDE)}"\ace\config-win32-common.h"\
- {$(INCLUDE)}"\ace\config.h"\
- {$(INCLUDE)}"\ace\Containers.cpp"\
- {$(INCLUDE)}"\ace\Containers.h"\
- {$(INCLUDE)}"\ace\Containers.i"\
- {$(INCLUDE)}"\ace\Event_Handler.h"\
- {$(INCLUDE)}"\ace\Event_Handler.i"\
- {$(INCLUDE)}"\ace\Free_List.cpp"\
- {$(INCLUDE)}"\ace\Free_List.h"\
- {$(INCLUDE)}"\ace\Free_List.i"\
- {$(INCLUDE)}"\ace\Handle_Set.h"\
- {$(INCLUDE)}"\ace\Handle_Set.i"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\
- {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.h"\
- {$(INCLUDE)}"\ace\High_Res_Timer.i"\
- {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Msg.h"\
- {$(INCLUDE)}"\ace\Log_Priority.h"\
- {$(INCLUDE)}"\ace\Log_Record.h"\
- {$(INCLUDE)}"\ace\Log_Record.i"\
- {$(INCLUDE)}"\ace\Malloc.h"\
- {$(INCLUDE)}"\ace\Malloc.i"\
- {$(INCLUDE)}"\ace\Malloc_T.cpp"\
- {$(INCLUDE)}"\ace\Malloc_T.h"\
- {$(INCLUDE)}"\ace\Malloc_T.i"\
- {$(INCLUDE)}"\ace\Managed_Object.cpp"\
- {$(INCLUDE)}"\ace\Managed_Object.h"\
- {$(INCLUDE)}"\ace\Managed_Object.i"\
- {$(INCLUDE)}"\ace\Mem_Map.h"\
- {$(INCLUDE)}"\ace\Mem_Map.i"\
- {$(INCLUDE)}"\ace\Memory_Pool.h"\
- {$(INCLUDE)}"\ace\Memory_Pool.i"\
- {$(INCLUDE)}"\ace\Message_Block.h"\
- {$(INCLUDE)}"\ace\Message_Block.i"\
- {$(INCLUDE)}"\ace\Message_Queue.cpp"\
- {$(INCLUDE)}"\ace\Message_Queue.h"\
- {$(INCLUDE)}"\ace\Message_Queue.i"\
- {$(INCLUDE)}"\ace\Module.cpp"\
- {$(INCLUDE)}"\ace\Module.h"\
- {$(INCLUDE)}"\ace\Module.i"\
- {$(INCLUDE)}"\ace\Object_Manager.h"\
- {$(INCLUDE)}"\ace\Object_Manager.i"\
- {$(INCLUDE)}"\ace\OS.h"\
- {$(INCLUDE)}"\ace\OS.i"\
- {$(INCLUDE)}"\ace\Proactor.h"\
- {$(INCLUDE)}"\ace\Proactor.i"\
- {$(INCLUDE)}"\ace\Reactor.h"\
- {$(INCLUDE)}"\ace\Reactor.i"\
- {$(INCLUDE)}"\ace\Reactor_Impl.h"\
- {$(INCLUDE)}"\ace\Service_Config.h"\
- {$(INCLUDE)}"\ace\Service_Config.i"\
- {$(INCLUDE)}"\ace\Service_Object.h"\
- {$(INCLUDE)}"\ace\Service_Object.i"\
- {$(INCLUDE)}"\ace\Service_Types.h"\
- {$(INCLUDE)}"\ace\Service_Types.i"\
- {$(INCLUDE)}"\ace\Shared_Object.h"\
- {$(INCLUDE)}"\ace\Shared_Object.i"\
- {$(INCLUDE)}"\ace\Signal.h"\
- {$(INCLUDE)}"\ace\Signal.i"\
- {$(INCLUDE)}"\ace\SString.h"\
- {$(INCLUDE)}"\ace\SString.i"\
- {$(INCLUDE)}"\ace\stdcpp.h"\
- {$(INCLUDE)}"\ace\Strategies.h"\
- {$(INCLUDE)}"\ace\Strategies_T.cpp"\
- {$(INCLUDE)}"\ace\Strategies_T.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.cpp"\
- {$(INCLUDE)}"\ace\Stream_Modules.h"\
- {$(INCLUDE)}"\ace\Stream_Modules.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\
- {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\
- {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\
- {$(INCLUDE)}"\ace\Synch.h"\
- {$(INCLUDE)}"\ace\Synch.i"\
- {$(INCLUDE)}"\ace\Synch_Options.h"\
- {$(INCLUDE)}"\ace\Synch_T.cpp"\
- {$(INCLUDE)}"\ace\Synch_T.h"\
- {$(INCLUDE)}"\ace\Synch_T.i"\
- {$(INCLUDE)}"\ace\Task.h"\
- {$(INCLUDE)}"\ace\Task.i"\
- {$(INCLUDE)}"\ace\Task_T.cpp"\
- {$(INCLUDE)}"\ace\Task_T.h"\
- {$(INCLUDE)}"\ace\Task_T.i"\
- {$(INCLUDE)}"\ace\Thread.h"\
- {$(INCLUDE)}"\ace\Thread.i"\
- {$(INCLUDE)}"\ace\Thread_Manager.h"\
- {$(INCLUDE)}"\ace\Thread_Manager.i"\
- {$(INCLUDE)}"\ace\Timer_Heap.h"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Heap_T.h"\
- {$(INCLUDE)}"\ace\Timer_List.h"\
- {$(INCLUDE)}"\ace\Timer_List_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_List_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.h"\
- {$(INCLUDE)}"\ace\Timer_Queue_T.i"\
- {$(INCLUDE)}"\ace\Timer_Wheel.h"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.cpp"\
- {$(INCLUDE)}"\ace\Timer_Wheel_T.h"\
- {$(INCLUDE)}"\ace\Trace.h"\
- {$(INCLUDE)}"\ace\Version.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.h"\
- {$(INCLUDE)}"\ace\WFMO_Reactor.i"\
- {$(INCLUDE)}"\ace\ws2tcpip.h"\
-
-
-"$(INTDIR)\test_multiple_loops.obj" : $(SOURCE) $(DEP_CPP_TEST_M) "$(INTDIR)"
-
-
-# End Source File
-# End Target
-# End Project
-################################################################################
diff --git a/examples/Reactor/Proactor/test_proactor.mdp b/examples/Reactor/Proactor/test_proactor.mdp
deleted file mode 100644
index 2518187c3b9..00000000000
--- a/examples/Reactor/Proactor/test_proactor.mdp
+++ /dev/null
Binary files differ
diff --git a/examples/Reactor/Proactor/test_timeout.cpp b/examples/Reactor/Proactor/test_timeout.cpp
deleted file mode 100644
index 94a8915d777..00000000000
--- a/examples/Reactor/Proactor/test_timeout.cpp
+++ /dev/null
@@ -1,96 +0,0 @@
-// $Id: test_timeout.cpp
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// test_timeout.cpp
-//
-// = DESCRIPTION
-//
-// This example application shows how to write event loops that
-// handle events for some fixed amount of time. Note that any
-// thread in the Proactor thread pool can call back the handler
-//
-// = AUTHOR
-// Irfan Pyarali
-//
-// ============================================================================
-
-#include "ace/Proactor.h"
-#include "ace/Synch.h"
-#include "ace/Task.h"
-
-class Timeout_Handler : public ACE_Handler
- // = TITLE
- // Generic timeout handler.
-{
-public:
- Timeout_Handler (void)
- {
- }
-
- virtual void handle_time_out (const ACE_Time_Value &tv,
- const void *arg)
- // Print out when timeouts occur.
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) %d timeout occurred for %s @ %d.\n",
- ++count_,
- (char *) arg,
- tv.sec ()));
- // Sleep for a while
- ACE_OS::sleep (4);
- }
-
-private:
- ACE_Atomic_Op <ACE_Thread_Mutex, int> count_;
-};
-
-class Worker : public ACE_Task <ACE_NULL_SYNCH>
-{
-public:
- int svc (void)
- {
- // Handle events for 13 seconds.
- ACE_Time_Value run_time (13);
-
- if (ACE_Proactor::run_event_loop(run_time) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p.\n", "Worker::svc"), -1);
- else
- ACE_DEBUG ((LM_DEBUG, "(%t) work complete\n"));
-
- return 0;
- }
-};
-
-int
-main (int, char *[])
-{
- Timeout_Handler handler;
-
- // Register a 2 second timer.
- ACE_Time_Value foo_tv (2);
- if (ACE_Proactor::instance ()->schedule_timer (handler,
- (void *) "Foo",
- ACE_Time_Value::zero,
- foo_tv) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "schedule_timer"), -1);
-
- // Register a 3 second timer.
- ACE_Time_Value bar_tv (3);
- if (ACE_Proactor::instance ()->schedule_timer (handler,
- (void *) "Bar",
- ACE_Time_Value::zero,
- bar_tv) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "schedule_timer"), -1);
-
- Worker worker;
-
- if (worker.activate (THR_NEW_LWP, 10) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p.\n", "main"), -1);
-
- ACE_Thread_Manager::instance ()->wait ();
- return 0;
-}
diff --git a/examples/Reactor/Proactor/test_timeout.dsp b/examples/Reactor/Proactor/test_timeout.dsp
deleted file mode 100644
index 938ff7927d8..00000000000
--- a/examples/Reactor/Proactor/test_timeout.dsp
+++ /dev/null
@@ -1,70 +0,0 @@
-# Microsoft Developer Studio Project File - Name="test_timeout" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 5.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=test_timeout - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "test_timeout.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "test_timeout.mak" CFG="test_timeout - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "test_timeout - Win32 Debug" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ".\test_timeout\Debug"
-# PROP BASE Intermediate_Dir ".\test_timeout\Debug"
-# PROP BASE Target_Dir ".\test_timeout"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "."
-# PROP Intermediate_Dir ".\Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ".\test_timeout"
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
-# ADD LINK32 aced.lib /nologo /subsystem:console /debug /machine:I386 /libpath:"..\..\..\ace"
-# Begin Target
-
-# Name "test_timeout - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
-# Begin Source File
-
-SOURCE=.\test_timeout.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project