www.pudn.com > ACEProactor.rar > acceptor.h, change:2006-01-23,size:2170b
// Acceptor.h: interface for the Acceptor class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_ACCEPTOR_H__AFC004F9_A5AF_49BA_A20D_AA01E75C78BB__INCLUDED_)
#define AFX_ACCEPTOR_H__AFC004F9_A5AF_49BA_A20D_AA01E75C78BB__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "ace/Signal.h"
#include "ace/Service_Config.h"
#include "ace/INET_Addr.h"
#include "ace/SOCK_Connector.h"
#include "ace/SOCK_Acceptor.h"
#include "ace/SOCK_Stream.h"
#include "ace/Object_Manager.h"
#include "ace/Get_Opt.h"
#include "ace/Proactor.h"
#include "ace/Asynch_Acceptor.h"
#include "ace/Asynch_Connector.h"
#include "ace/Task.h"
#include "ace/Thread_Semaphore.h"
#include "ace/OS_NS_signal.h"
#include "ace/OS_NS_errno.h"
#include "ace/os_include/netinet/os_tcp.h"
#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)
# include "ace/WIN32_Proactor.h"
#elif defined (ACE_HAS_AIO_CALLS)
# include "ace/POSIX_Proactor.h"
# include "ace/POSIX_CB_Proactor.h"
# include "ace/SUN_Proactor.h"
#endif /* defined (ACE_WIN32) && !defined (ACE_HAS_WINCE) */
// Proactor Type (UNIX only, Win32 ignored)
class Receiver;
const size_t MAX_RECEIVERS = 1000;
class Acceptor : public ACE_Asynch_Acceptor<Receiver>
{
friend class Receiver;
public:
int get_number_sessions (void) { return this->sessions_; }
size_t get_total_snd (void) { return this->total_snd_; }
size_t get_total_rcv (void) { return this->total_rcv_; }
long get_total_w (void) { return this->total_w_; }
long get_total_r (void) { return this->total_r_; }
Acceptor (void);
virtual ~Acceptor (void);
void stop (void);
void cancel_all (void);
// Virtual from ACE_Asynch_Acceptor
Receiver *make_handler (void);
private:
void on_new_receiver (Receiver &rcvr);
void on_delete_receiver (Receiver &rcvr);
ACE_SYNCH_RECURSIVE_MUTEX lock_;
int sessions_;
Receiver *list_receivers_[MAX_RECEIVERS];
size_t total_snd_;
size_t total_rcv_;
long total_w_;
long total_r_;
};
#endif // !defined(AFX_ACCEPTOR_H__AFC004F9_A5AF_49BA_A20D_AA01E75C78BB__INCLUDED_)