summaryrefslogtreecommitdiff
path: root/ace/Asynch_IO_Impl.h
diff options
context:
space:
mode:
authorirfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-02-22 23:40:11 +0000
committerirfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-02-22 23:40:11 +0000
commit322e4923fed3a0d506f9a60217cf2891bf1d0304 (patch)
treeda70e0122360e164ca9e653d8a142dcdcea3fc0a /ace/Asynch_IO_Impl.h
parentdd2ca983e8d788e6c78fa0b508c9a294f0ee4965 (diff)
downloadATCD-322e4923fed3a0d506f9a60217cf2891bf1d0304.tar.gz
*** empty log message ***
Diffstat (limited to 'ace/Asynch_IO_Impl.h')
-rw-r--r--ace/Asynch_IO_Impl.h104
1 files changed, 55 insertions, 49 deletions
diff --git a/ace/Asynch_IO_Impl.h b/ace/Asynch_IO_Impl.h
index 21b8a9e245c..55708209fc4 100644
--- a/ace/Asynch_IO_Impl.h
+++ b/ace/Asynch_IO_Impl.h
@@ -4,21 +4,21 @@
// ============================================================================
//
// = LIBRARY
-//
+//
// ace
//
// = FILENAME
-//
+//
// Asynch_IO_Impl.h
//
// = DESCRIPTION
-//
+//
// This class contains asbtract base classes for all the concrete
// implementation classes for the various asynchronous operations
// that are used with the Praoctor.
//
// = AUTHOR
-//
+//
// Irfan Pyarali (irfan@cs.wustl.edu),
// Tim Harrison (harrison@cs.wustl.edu) and
// Alexander Babu Arulanthu <alex@cs.wustl.edu>
@@ -34,19 +34,22 @@
#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) || (defined (ACE_HAS_AIO_CALLS))
// This only works on Win32 platforms and on Unix platforms supporting
-// aio calls.
+// aio calls.
#include "ace/Asynch_IO.h"
+// Forward declaration.
+class ACE_Proactor_Impl;
+
class ACE_Export ACE_Asynch_Result_Impl
{
// = TITLE
//
// Abstract base class for the all the classes that provide
// concrete implementations for ACE_Asynch_Result.
- //
+ //
// = DESCRIPTION
- //
+ //
public:
virtual ~ACE_Asynch_Result_Impl (void) {}
@@ -61,7 +64,7 @@ public:
virtual const void *completion_key (void) const = 0;
// This ACT is not the same as the ACT associated with the
- // asynchronous operation.
+ // asynchronous operation.
virtual u_long error (void) const = 0;
// Error value if the operation fail.
@@ -75,7 +78,7 @@ public:
virtual int priority (void) const = 0;
// Priority of the operation.
-
+
// protected:
//
// These two should really be protected. But sometimes it
@@ -86,6 +89,9 @@ public:
u_long error = 0) = 0;
// This is called when the asynchronous operation completes.
+ virtual int post_completion (ACE_Proactor_Impl *proactor) = 0;
+ // Post <this> to the Proactor's completion port.
+
protected:
ACE_Asynch_Result_Impl (void);
// Do-nothing constructor.
@@ -94,16 +100,16 @@ protected:
class ACE_Export ACE_Asynch_Operation_Impl
{
// = TITLE
- //
+ //
// Abstract base class for all the concrete implementation
// classes that provide different implementations for the
// ACE_Asynch_Operation.
- //
+ //
// = DESCRIPTION
//
public:
virtual ~ACE_Asynch_Operation_Impl () {}
-
+
virtual int open (ACE_Handler &handler,
ACE_HANDLE handle,
const void *completion_key,
@@ -131,16 +137,16 @@ protected:
class ACE_Export ACE_Asynch_Read_Stream_Impl : public virtual ACE_Asynch_Operation_Impl
{
// = TITLE
- //
+ //
// Abstract base class for all the concrete implementation
// classes that provide different implementations for the
// ACE_Asynch_Read_Stream
- //
+ //
// = DESCRIPTION
//
public:
virtual ~ACE_Asynch_Read_Stream_Impl (void) {}
-
+
virtual int read (ACE_Message_Block &message_block,
u_long bytes_to_read,
const void *act,
@@ -156,11 +162,11 @@ protected:
class ACE_Export ACE_Asynch_Read_Stream_Result_Impl : public virtual ACE_Asynch_Result_Impl
{
// = TITLE
- //
+ //
// Abstract base class for all the concrete implementation
// classes that provide different implementations for the
// ACE_Asynch_Read_Stream::Result class.
- //
+ //
// = DESCRIPTION
//
public:
@@ -169,10 +175,10 @@ public:
virtual u_long bytes_to_read (void) const = 0;
// The number of bytes which were requested at the start of the
// asynchronous read.
-
+
virtual ACE_Message_Block &message_block (void) const = 0;
// Message block which contains the read data.
-
+
virtual ACE_HANDLE handle (void) const = 0;
// I/O handle used for reading.
@@ -184,16 +190,16 @@ protected:
class ACE_Export ACE_Asynch_Write_Stream_Impl : public virtual ACE_Asynch_Operation_Impl
{
// = TITLE
- //
+ //
// Abstract base class for all the concrete implementation
// classes that provide different implementations for the
// ACE_Asynch_Write_Stream class.
- //
+ //
// = DESCRIPTION
//
public:
virtual ~ACE_Asynch_Write_Stream_Impl (void) {}
-
+
virtual int write (ACE_Message_Block &message_block,
u_long bytes_to_write,
const void *act,
@@ -209,11 +215,11 @@ protected:
class ACE_Export ACE_Asynch_Write_Stream_Result_Impl : public virtual ACE_Asynch_Result_Impl
{
// = TITLE
- //
+ //
// Abstract base class for all the concrete implementation
// classes that provide different implementations for the
// ACE_Asynch_Write_Stream::Result.
- //
+ //
// = DESCRIPTION
//
public:
@@ -237,16 +243,16 @@ protected:
class ACE_Export ACE_Asynch_Read_File_Impl : public virtual ACE_Asynch_Read_Stream_Impl
{
// = TITLE
- //
+ //
// Abstract base class for all the concrete implementation
// classes that provide different implementations for the
// ACE_Asynch_Read_File::Result.
- //
+ //
// = DESCRIPTION
//
public:
virtual ~ACE_Asynch_Read_File_Impl () {}
-
+
virtual int read (ACE_Message_Block &message_block,
u_long bytes_to_read,
u_long offset,
@@ -269,7 +275,7 @@ class ACE_Export ACE_Asynch_Read_File_Result_Impl : public virtual ACE_Asynch_Re
// implementation classes for ACE_Asynch_Read_File::Result.
//
// = DESCRIPTION
- //
+ //
public:
virtual ~ACE_Asynch_Read_File_Result_Impl () {}
// Destructor.
@@ -282,16 +288,16 @@ protected:
class ACE_Export ACE_Asynch_Write_File_Impl : public virtual ACE_Asynch_Write_Stream_Impl
{
// = TITLE
- //
+ //
// Abstract base class for all the concrete implementation
// classes that provide different implementations for the
// ACE_Asynch_Write_File.
- //
+ //
// = DESCRIPTION
//
public:
virtual ~ACE_Asynch_Write_File_Impl (void) {}
-
+
virtual int write (ACE_Message_Block &message_block,
u_long bytes_to_write,
u_long offset,
@@ -310,13 +316,13 @@ protected:
class ACE_Export ACE_Asynch_Write_File_Result_Impl : public virtual ACE_Asynch_Write_Stream_Result_Impl
{
// = TITLE
- //
+ //
// This is the abstract base class for all the concrete
// implementation classes that provide different implementations
// for the ACE_Asynch_Write_File::Result.
//
// = DESCRIPTION
- //
+ //
public:
virtual ~ACE_Asynch_Write_File_Result_Impl () {}
@@ -328,11 +334,11 @@ protected:
class ACE_Export ACE_Asynch_Accept_Impl : public virtual ACE_Asynch_Operation_Impl
{
// = TITLE
- //
+ //
// Abstract base class for all the concrete implementation
// classes that provide different implementations for the
// ACE_Asynch_Accept.
- //
+ //
// = DESCRIPTION
//
public:
@@ -361,18 +367,18 @@ protected:
class ACE_Export ACE_Asynch_Accept_Result_Impl : public virtual ACE_Asynch_Result_Impl
{
// = TITLE
- //
+ //
// Abstract base class for all the concrete implementation
// classes that provide different implementations for the
// ACE_Asynch_Accept.
- //
+ //
// = DESCRIPTION
//
public:
virtual ~ACE_Asynch_Accept_Result_Impl () {}
virtual u_long bytes_to_read (void) const = 0;
- // The number of bytes which were requested at the start of the
+ // The number of bytes which were requested at the start of the
// asynchronous accept.
virtual ACE_Message_Block &message_block (void) const = 0;
@@ -392,16 +398,16 @@ protected:
class ACE_Asynch_Transmit_File_Impl : public virtual ACE_Asynch_Operation_Impl
{
// = TITLE
- //
+ //
// Abstract base class for all the concrete implementation
// classes that provide different implementations for the
// ACE_Asynch_Transmit_File.
- //
+ //
// = DESCRIPTION
//
public:
virtual ~ACE_Asynch_Transmit_File_Impl () {}
-
+
virtual int transmit_file (ACE_HANDLE file,
ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer,
u_long bytes_to_write,
@@ -421,33 +427,33 @@ protected:
class ACE_Export ACE_Asynch_Transmit_File_Result_Impl : public virtual ACE_Asynch_Result_Impl
{
// = TITLE
- //
+ //
// Abstract base class for all the concrete implementation
// classes that provide different implementations for the
// ACE_Asynch_Transmit_File::Result.
- //
+ //
// = DESCRIPTION
//
public:
virtual ~ACE_Asynch_Transmit_File_Result_Impl () {}
-
+
virtual ACE_HANDLE socket (void) const = 0;
// Socket used for transmitting the file.
-
+
virtual ACE_HANDLE file (void) const = 0;
// File from which the data is read.
-
+
virtual ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer (void) const = 0;
// Header and trailer data associated with this transmit file.
-
+
virtual u_long bytes_to_write (void) const = 0;
// The number of bytes which were requested at the start of the
// asynchronous transmit file.
-
+
virtual u_long bytes_per_send (void) const = 0;
// Number of bytes per send requested at the start of the transmit
// file.
-
+
virtual u_long flags (void) const = 0;
// Flags which were passed into transmit file.