summaryrefslogtreecommitdiff
path: root/ace/POSIX_Proactor.cpp
diff options
context:
space:
mode:
authorSteve Huston <shuston@riverace.com>2002-11-09 23:54:06 +0000
committerSteve Huston <shuston@riverace.com>2002-11-09 23:54:06 +0000
commit0262a1c21bf331830d9ec8b8213042ec13710cc5 (patch)
treebb2fabe45bafd455feaaf5ca63166383a47e43ef /ace/POSIX_Proactor.cpp
parent4e4b6d4dd03f77bd3ffe2064290a9d2a1f6a1616 (diff)
downloadATCD-0262a1c21bf331830d9ec8b8213042ec13710cc5.tar.gz
ChangeLogTag:Sat Nov 9 18:49:11 2002 Steve Huston <shuston@riverace.com>
Diffstat (limited to 'ace/POSIX_Proactor.cpp')
-rw-r--r--ace/POSIX_Proactor.cpp218
1 files changed, 113 insertions, 105 deletions
diff --git a/ace/POSIX_Proactor.cpp b/ace/POSIX_Proactor.cpp
index 63e7c1ea193..91785d36877 100644
--- a/ace/POSIX_Proactor.cpp
+++ b/ace/POSIX_Proactor.cpp
@@ -138,6 +138,16 @@ ACE_POSIX_Proactor::get_handle (void) const
return ACE_INVALID_HANDLE;
}
+ACE_Asynch_Read_Stream_Impl *
+ACE_POSIX_Proactor::create_asynch_read_stream (void)
+{
+ ACE_Asynch_Read_Stream_Impl *implementation = 0;
+ ACE_NEW_RETURN (implementation,
+ ACE_POSIX_Asynch_Read_Stream (this),
+ 0);
+ return implementation;
+}
+
ACE_Asynch_Read_Stream_Result_Impl *
ACE_POSIX_Proactor::create_asynch_read_stream_result (ACE_Handler &handler,
ACE_HANDLE handle,
@@ -162,6 +172,17 @@ ACE_POSIX_Proactor::create_asynch_read_stream_result (ACE_Handler &handler,
return implementation;
}
+
+ACE_Asynch_Write_Stream_Impl *
+ACE_POSIX_Proactor::create_asynch_write_stream (void)
+{
+ ACE_Asynch_Write_Stream_Impl *implementation = 0;
+ ACE_NEW_RETURN (implementation,
+ ACE_POSIX_Asynch_Write_Stream (this),
+ 0);
+ return implementation;
+}
+
ACE_Asynch_Write_Stream_Result_Impl *
ACE_POSIX_Proactor::create_asynch_write_stream_result (ACE_Handler &handler,
ACE_HANDLE handle,
@@ -186,6 +207,17 @@ ACE_POSIX_Proactor::create_asynch_write_stream_result (ACE_Handler &handler,
return implementation;
}
+
+ACE_Asynch_Read_File_Impl *
+ACE_POSIX_Proactor::create_asynch_read_file (void)
+{
+ ACE_Asynch_Read_File_Impl *implementation = 0;
+ ACE_NEW_RETURN (implementation,
+ ACE_POSIX_Asynch_Read_File (this),
+ 0);
+ return implementation;
+}
+
ACE_Asynch_Read_File_Result_Impl *
ACE_POSIX_Proactor::create_asynch_read_file_result (ACE_Handler &handler,
ACE_HANDLE handle,
@@ -214,6 +246,17 @@ ACE_POSIX_Proactor::create_asynch_read_file_result (ACE_Handler &handler,
return implementation;
}
+
+ACE_Asynch_Write_File_Impl *
+ACE_POSIX_Proactor::create_asynch_write_file (void)
+{
+ ACE_Asynch_Write_File_Impl *implementation = 0;
+ ACE_NEW_RETURN (implementation,
+ ACE_POSIX_Asynch_Write_File (this),
+ 0);
+ return implementation;
+}
+
ACE_Asynch_Write_File_Result_Impl *
ACE_POSIX_Proactor::create_asynch_write_file_result (ACE_Handler &handler,
ACE_HANDLE handle,
@@ -242,6 +285,17 @@ ACE_POSIX_Proactor::create_asynch_write_file_result (ACE_Handler &handler,
return implementation;
}
+
+ACE_Asynch_Read_Dgram_Impl *
+ACE_POSIX_Proactor::create_asynch_read_dgram (void)
+{
+ ACE_Asynch_Read_Dgram_Impl *implementation = 0;
+ ACE_NEW_RETURN (implementation,
+ ACE_POSIX_Asynch_Read_Dgram (this),
+ 0);
+ return implementation;
+}
+
ACE_Asynch_Read_Dgram_Result_Impl *
ACE_POSIX_Proactor::create_asynch_read_dgram_result (ACE_Handler &handler,
ACE_HANDLE handle,
@@ -271,6 +325,18 @@ ACE_POSIX_Proactor::create_asynch_read_dgram_result (ACE_Handler &handler,
return implementation;
}
+
+ACE_Asynch_Write_Dgram_Impl *
+ACE_POSIX_Proactor::create_asynch_write_dgram (void)
+{
+ ACE_Asynch_Write_Dgram_Impl *implementation = 0;
+ ACE_NEW_RETURN (implementation,
+ ACE_POSIX_Asynch_Write_Dgram (this),
+ 0);
+
+ return implementation;
+}
+
ACE_Asynch_Write_Dgram_Result_Impl *
ACE_POSIX_Proactor::create_asynch_write_dgram_result (ACE_Handler &handler,
ACE_HANDLE handle,
@@ -298,6 +364,18 @@ ACE_POSIX_Proactor::create_asynch_write_dgram_result (ACE_Handler &handler,
return implementation;
}
+
+ACE_Asynch_Accept_Impl *
+ACE_POSIX_Proactor::create_asynch_accept (void)
+{
+ ACE_Asynch_Accept_Impl *implementation = 0;
+ ACE_NEW_RETURN (implementation,
+ ACE_POSIX_Asynch_Accept (this),
+ 0);
+
+ return implementation;
+}
+
ACE_Asynch_Accept_Result_Impl *
ACE_POSIX_Proactor::create_asynch_accept_result (ACE_Handler &handler,
ACE_HANDLE listen_handle,
@@ -324,6 +402,18 @@ ACE_POSIX_Proactor::create_asynch_accept_result (ACE_Handler &handler,
return implementation;
}
+
+ACE_Asynch_Connect_Impl *
+ACE_POSIX_Proactor::create_asynch_connect (void)
+{
+ ACE_Asynch_Connect_Impl *implementation = 0;
+ ACE_NEW_RETURN (implementation,
+ ACE_POSIX_Asynch_Connect (this),
+ 0);
+
+ return implementation;
+}
+
ACE_Asynch_Connect_Result_Impl *
ACE_POSIX_Proactor::create_asynch_connect_result (ACE_Handler &handler,
ACE_HANDLE connect_handle,
@@ -344,6 +434,17 @@ ACE_POSIX_Proactor::create_asynch_connect_result (ACE_Handler &handler,
return implementation;
}
+
+ACE_Asynch_Transmit_File_Impl *
+ACE_POSIX_Proactor::create_asynch_transmit_file (void)
+{
+ ACE_Asynch_Transmit_File_Impl *implementation = 0;
+ ACE_NEW_RETURN (implementation,
+ ACE_POSIX_Asynch_Transmit_File (this),
+ 0);
+ return implementation;
+}
+
ACE_Asynch_Transmit_File_Result_Impl *
ACE_POSIX_Proactor::create_asynch_transmit_file_result (ACE_Handler &handler,
ACE_HANDLE socket,
@@ -1027,99 +1128,6 @@ int ACE_POSIX_AIOCB_Proactor::process_result_queue (void)
return ret_val;
}
-ACE_Asynch_Read_Stream_Impl *
-ACE_POSIX_AIOCB_Proactor::create_asynch_read_stream (void)
-{
- ACE_Asynch_Read_Stream_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_POSIX_Asynch_Read_Stream (this),
- 0);
- return implementation;
-}
-
-ACE_Asynch_Write_Stream_Impl *
-ACE_POSIX_AIOCB_Proactor::create_asynch_write_stream (void)
-{
- ACE_Asynch_Write_Stream_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_POSIX_Asynch_Write_Stream (this),
- 0);
- return implementation;
-}
-
-ACE_Asynch_Read_Dgram_Impl *
-ACE_POSIX_AIOCB_Proactor::create_asynch_read_dgram (void)
-{
- ACE_Asynch_Read_Dgram_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_POSIX_Asynch_Read_Dgram (this),
- 0);
- return implementation;
-}
-
-ACE_Asynch_Write_Dgram_Impl *
-ACE_POSIX_AIOCB_Proactor::create_asynch_write_dgram (void)
-{
- ACE_Asynch_Write_Dgram_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_POSIX_Asynch_Write_Dgram (this),
- 0);
-
- return implementation;
-}
-
-ACE_Asynch_Read_File_Impl *
-ACE_POSIX_AIOCB_Proactor::create_asynch_read_file (void)
-{
- ACE_Asynch_Read_File_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_POSIX_Asynch_Read_File (this),
- 0);
- return implementation;
-}
-
-ACE_Asynch_Write_File_Impl *
-ACE_POSIX_AIOCB_Proactor::create_asynch_write_file (void)
-{
- ACE_Asynch_Write_File_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_POSIX_Asynch_Write_File (this),
- 0);
- return implementation;
-}
-
-ACE_Asynch_Accept_Impl *
-ACE_POSIX_AIOCB_Proactor::create_asynch_accept (void)
-{
- ACE_Asynch_Accept_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_POSIX_Asynch_Accept (this),
- 0);
-
- return implementation;
-}
-
-ACE_Asynch_Connect_Impl *
-ACE_POSIX_AIOCB_Proactor::create_asynch_connect (void)
-{
- ACE_Asynch_Connect_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_POSIX_Asynch_Connect (this),
- 0);
-
- return implementation;
-}
-
-ACE_Asynch_Transmit_File_Impl *
-ACE_POSIX_AIOCB_Proactor::create_asynch_transmit_file (void)
-{
- ACE_Asynch_Transmit_File_Impl *implementation = 0;
- ACE_NEW_RETURN (implementation,
- ACE_POSIX_Asynch_Transmit_File (this),
- 0);
- return implementation;
-}
-
int
ACE_POSIX_AIOCB_Proactor::handle_events (u_long milli_seconds)
{
@@ -1258,10 +1266,10 @@ ACE_POSIX_AIOCB_Proactor::find_completed_aio (int &error_status,
int
-ACE_POSIX_AIOCB_Proactor::register_and_start_aio (ACE_POSIX_Asynch_Result *result,
- int op)
+ACE_POSIX_AIOCB_Proactor::start_aio (ACE_POSIX_Asynch_Result *result,
+ ACE_POSIX_Proactor::Opcode op)
{
- ACE_TRACE ("ACE_POSIX_AIOCB_Proactor::register_and_start_aio");
+ ACE_TRACE ("ACE_POSIX_AIOCB_Proactor::start_aio");
ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->mutex_, -1));
@@ -1273,18 +1281,18 @@ ACE_POSIX_AIOCB_Proactor::register_and_start_aio (ACE_POSIX_Asynch_Result *resul
// Save operation code in the aiocb
switch (op)
{
- case 0 :
+ case ACE_POSIX_Proactor::READ :
result->aio_lio_opcode = LIO_READ;
break;
- case 1 :
+ case ACE_POSIX_Proactor::WRITE :
result->aio_lio_opcode = LIO_WRITE;
break;
default:
ACE_ERROR_RETURN ((LM_ERROR,
"%N:%l:(%P | %t)::\n"
- "register_and_start_aio: Invalid operation code\n"),
+ "start_aio: Invalid operation code\n"),
-1);
}
@@ -1306,7 +1314,7 @@ ACE_POSIX_AIOCB_Proactor::register_and_start_aio (ACE_POSIX_Asynch_Result *resul
result_list_[index] = result; //Store result ptr anyway
aiocb_list_cur_size_++;
- ret_val = start_aio (result);
+ ret_val = start_aio_i (result);
switch (ret_val)
{
case 0 : // started OK
@@ -1326,7 +1334,7 @@ ACE_POSIX_AIOCB_Proactor::register_and_start_aio (ACE_POSIX_Asynch_Result *resul
ACE_ERROR ((LM_ERROR,
"%N:%l:(%P | %t)::%p\n",
- "register_and_start_aio: Invalid request to start <aio>\n"));
+ "start_aio: Invalid request to start <aio>\n"));
return -1;
}
@@ -1370,15 +1378,15 @@ ACE_POSIX_AIOCB_Proactor::allocate_aio_slot (ACE_POSIX_Asynch_Result *result)
return ACE_static_cast (ssize_t, i);
}
-// start_aio has new return codes
+// start_aio_i has new return codes
// 0 AIO was started successfully
// 1 AIO was not started, OS AIO queue overflow
// -1 AIO was not started, other errors
int
-ACE_POSIX_AIOCB_Proactor::start_aio (ACE_POSIX_Asynch_Result *result)
+ACE_POSIX_AIOCB_Proactor::start_aio_i (ACE_POSIX_Asynch_Result *result)
{
- ACE_TRACE ("ACE_POSIX_AIOCB_Proactor::start_aio");
+ ACE_TRACE ("ACE_POSIX_AIOCB_Proactor::start_aio_i");
int ret_val;
const ACE_TCHAR *ptype;
@@ -1450,7 +1458,7 @@ ACE_POSIX_AIOCB_Proactor::start_deferred_aio ()
ACE_POSIX_Asynch_Result *result = result_list_[i];
- int ret_val = start_aio (result);
+ int ret_val = start_aio_i (result);
switch (ret_val)
{