📄 connection_handler.h
字号:
/* -*- C++ -*- */// Connection_Handler.h,v 4.5 2005/12/30 11:16:47 jwillemsen Exp// ============================================================================//// = LIBRARY// gateway//// = FILENAME// Connection_Handler.h//// = AUTHOR// Doug Schmidt//// ============================================================================#ifndef _CONNECTION_HANDLER#define _CONNECTION_HANDLER#include "ace/Service_Config.h"#if !defined (ACE_LACKS_PRAGMA_ONCE)# pragma once#endif /* ACE_LACKS_PRAGMA_ONCE */#include "ace/SOCK_Connector.h"#include "ace/Svc_Handler.h"#include "Config_Files.h"#include "Options.h"#include "Event.h"// Forward declaration.class Event_Channel;class Connection_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_SYNCH>{ // = TITLE // <Connection_Handler> contains info about connection state and // addressing. // // = DESCRIPTION // The <Connection_Handler> classes process events sent to the // Event Channel from Suppliers and forward them to Consumers.public: Connection_Handler (void); // Default constructor (needed to make <ACE_Connector> happy). Connection_Handler (const Connection_Config_Info &); // Real constructor. virtual int open (void * = 0); // Initialize and activate a single-threaded <Connection_Handler> // (called by <ACE_Connector::handle_output>). // = The current state of the Connection_Handler. enum State { IDLE = 1, // Prior to initialization. CONNECTING, // During connection establishment. ESTABLISHED, // Connection_Handler is established and active. DISCONNECTING, // Connection_Handler is in the process of connecting. FAILED // Connection_Handler has failed. }; // = Set/get the current state. void state (State); State state (void) const; // = Set/get remote INET addr. void remote_addr (ACE_INET_Addr &); const ACE_INET_Addr &remote_addr (void) const; // = Set/get local INET addr. void local_addr (ACE_INET_Addr &); const ACE_INET_Addr &local_addr (void) const; // = Set/get connection id. void connection_id (CONNECTION_ID); CONNECTION_ID connection_id (void) const; // = Set/get the current retry timeout delay. void timeout (long); long timeout (void); // = Set/get the maximum retry timeout delay. void max_timeout (long); long max_timeout (void) const; // = Set/get proxy role (i.e., 'S' for Supplier and 'C' for Consumer // (necessary for error checking). void connection_role (char); char connection_role (void) const; // = Set/get the <Event_Channel> *. void event_channel (Event_Channel *); Event_Channel *event_channel (void) const; // = The total number of bytes sent/received on this proxy. void total_bytes (size_t bytes); // Increment count by <bytes>. size_t total_bytes (void) const; // Return the current byte count. virtual int handle_timeout (const ACE_Time_Value &, const void *arg); // Perform timer-based Connection_Handler reconnection. virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE, ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK); // Perform Connection_Handler termination.protected: ACE_INET_Addr remote_addr_; // Address of peer. ACE_INET_Addr local_addr_; // Address of us. CONNECTION_ID connection_id_; // The assigned connection ID of this entry. size_t total_bytes_; // The total number of bytes sent/received on this proxy. State state_; // The current state of the proxy. long timeout_; // Amount of time to wait between reconnection attempts. long max_timeout_; // Maximum amount of time to wait between reconnection attempts. char connection_role_; // Indicates which role the proxy plays ('S' == Supplier and 'C' == // Consumer). Event_Channel *event_channel_; // Reference to the <Event_Channel> that we use to forward all // the events from Consumers and Suppliers.};class Connection_Handler_Factory{ // = TITLE // Creates the appropriate type of <Connection_Handler>. // // = DESCRIPTION // <Connection_Handler>s can include <Consumer_Handler>, // <Supplier_Handler>, <Thr_Consumer_Handler>, or // <Thr_Supplier_Handler>).public: Connection_Handler *make_connection_handler (const Connection_Config_Info &); // Make the appropriate type of <Connection_Handler>, based on the // <Connection_Config_Info> parameter.};#endif /* _CONNECTION_HANDLER */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -