#include <SSL_Asynch_Stream.h>
Inheritance diagram for ACE_SSL_Asynch_Stream:
Public Types | |
enum | Stream_Type { ST_CLIENT = 0x0001, ST_SERVER = 0x0002 } |
Public Member Functions | |
ACE_SSL_Asynch_Stream (Stream_Type s_type=ST_SERVER, ACE_SSL_Context *context=0) | |
The constructor. | |
virtual | ~ACE_SSL_Asynch_Stream (void) |
Destructor. | |
int | cancel (void) |
int | close (void) |
int | open (ACE_Handler &handler, ACE_HANDLE handle=ACE_INVALID_HANDLE, const void *completion_key=0, ACE_Proactor *proactor=0) |
void | open (ACE_HANDLE new_handle, ACE_Message_Block &message_block) |
int | read (ACE_Message_Block &message_block, size_t num_bytes_to_read, const void *act=0, int priority=0, int signal_number=ACE_SIGRTMIN) |
int | write (ACE_Message_Block &message_block, size_t bytes_to_write, const void *act=0, int priority=0, int signal_number=ACE_SIGRTMIN) |
Protected Types | |
enum | Stream_Flag { SF_STREAM_OPEN = 0x0001, SF_REQ_SHUTDOWN = 0x0002, SF_SHUTDOWN_DONE = 0x0004, SF_CLOSE_NTF_SENT = 0x0008, SF_DELETE_ENABLE = 0x0010 } |
Stream state/flags. More... | |
enum | BIO_Flag { BF_EOS = 0x01, BF_AIO = 0x02 } |
Protected Member Functions | |
virtual void | handle_write_stream (const ACE_Asynch_Write_Stream::Result &result) |
virtual from ACE_Service_Handler | |
virtual void | handle_read_stream (const ACE_Asynch_Read_Stream::Result &result) |
virtual void | handle_wakeup (void) |
void | print_error (int err_ssl, const ACE_TCHAR *pText) |
int | pending_BIO_count (void) |
int | notify_read (int bytes_transferred, int error) |
int | notify_write (int bytes_transferred, int error) |
int | notify_close (void) |
SSL State Machine | |
int | do_SSL_state_machine (void) |
int | do_SSL_handshake (void) |
int | do_SSL_read (void) |
int | do_SSL_write (void) |
int | do_SSL_shutdown (void) |
BIO Helpers | |
int | ssl_bio_read (char *buf, size_t len, int &errval) |
int | ssl_bio_write (const char *buf, size_t len, int &errval) |
Protected Attributes | |
Stream_Type | type_ |
Stream Type ST_CLIENT/ST_SERVER. | |
ACE_HANDLE | handle_ |
The real file/socket handle. | |
ACE_Proactor * | proactor_ |
The proactor. | |
ACE_Handler * | ext_handler_ |
External,i.e user handler. | |
ACE_SSL_Asynch_Read_Stream_Result * | ext_read_result_ |
External, i.e. read result faked for user. | |
ACE_SSL_Asynch_Write_Stream_Result * | ext_write_result_ |
External, i.e. write result faked for user. | |
int | flags_ |
SSL * | ssl_ |
The SSL session. | |
BIO * | bio_ |
The BIO implementation. | |
ACE_SYNCH_MUTEX | mutex_ |
Mutex to protect work. | |
Internal stream, buffer and info for BIO read | |
ACE_Asynch_Read_Stream | bio_istream_ |
ACE_Message_Block | bio_inp_msg_ |
int | bio_inp_errno_ |
int | bio_inp_flag_ |
Internal stream, buffer and info for BIO write | |
ACE_Asynch_Write_Stream | bio_ostream_ |
ACE_Message_Block | bio_out_msg_ |
int | bio_out_errno_ |
int | bio_out_flag_ |
Friends | |
int | ACE_Asynch_BIO_read (BIO *pBIO, char *buf, int len) |
int | ACE_Asynch_BIO_write (BIO *pBIO, const char *buf, int len) |
handler | when the asynchronous reads completes through the ACE_Handler::handle_read_stream callback. |
|
The real streams which work under the ssl connection. BIO performs I/O via this streams |
|
Stream state/flags.
|
|
|
|
The constructor.
|
|
Destructor.
|
|
Reimplemented from ACE_Asynch_Operation. |
|
|
|
|
|
|
|
|
|
|
|
|
|
This method is called when BIO read request is completed. It processes the IO completion and calls do_SSL_state_machine(). Reimplemented from ACE_Handler. |
|
This method is called when all SSL sessions are closed and no more pending AIOs exist. It also calls users handle_wakeup(). Reimplemented from ACE_Handler. |
|
virtual from ACE_Service_Handler This method is called when BIO write request is completed. It processes the IO completion and calls do_SSL_state_machine(). Reimplemented from ACE_Handler. |
|
This method is called to notify ourself that SSL session is shutdown and that there is no more I/O activity now and in the future. |
|
This method is called to notify user handler when user's read in done. |
|
This method is called to notify user handler when user's write in done. |
|
NOTE: This method has been specifically put in place so that compilers like the borland doesnt get confused between the above open () call with the one in the ACE_Service_Handler, from which this class is derived from.. Reimplemented from ACE_Service_Handler. |
|
Reimplemented from ACE_Asynch_Operation. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The BIO implementation.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
External,i.e user handler.
|
|
External, i.e. read result faked for user.
|
|
External, i.e. write result faked for user.
|
|
|
|
The real file/socket handle.
Reimplemented from ACE_Handler. |
|
Mutex to protect work.
|
|
The proactor.
Reimplemented from ACE_Handler. |
|
The SSL session.
|
|
Stream Type ST_CLIENT/ST_SERVER.
|