78 lines
1.7 KiB
C++
78 lines
1.7 KiB
C++
//----------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) Intel Corporation, 2006 - 2007.
|
|
//
|
|
// File: Acceptor.h
|
|
//
|
|
// Contents: Acceptor accepts connections as a server socket.
|
|
//
|
|
// Notes:
|
|
//----------------------------------------------------------------------------
|
|
#ifndef _MPS_ACCEPTOR__H__
|
|
#define _MPS_ACCEPTOR__H__
|
|
|
|
//===================================================
|
|
// INCLUDES
|
|
//===================================================
|
|
//ace headers:
|
|
#include <ace/ACE.h>
|
|
#if !defined (ACE_LACKS_PRAGMA_ONCE)
|
|
# pragma once
|
|
#endif /* ACE_LACKS_PRAGMA_ONCE */
|
|
|
|
|
|
#include <ace/INET_Addr.h>
|
|
#include <ace/SOCK_Acceptor.h>
|
|
#include <ace/SOCK_Connector.h>
|
|
#include <ace/SOCK_Stream.h>
|
|
#include <ace/Acceptor.h>
|
|
#include <ace/Connector.h>
|
|
#include <ace/Svc_Handler.h>
|
|
#include <ace/Recursive_Thread_Mutex.h>
|
|
//mps headers
|
|
|
|
|
|
//================================================================
|
|
// class Acceptor
|
|
//
|
|
//
|
|
//
|
|
//================================================================
|
|
template <class T>
|
|
class Acceptor : public ACE_Acceptor<T,ACE_SOCK_ACCEPTOR>
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
Acceptor (void) : ACE_Acceptor<T,ACE_SOCK_ACCEPTOR> ((ACE_Reactor *) 0){}
|
|
virtual ~Acceptor (void){ this->reactor (0);}
|
|
|
|
// void stop (void);
|
|
int start (const ACE_INET_Addr & addr)
|
|
{
|
|
if (ACE_Acceptor<T,ACE_SOCK_ACCEPTOR>::open (addr,
|
|
ACE_Reactor::instance (),
|
|
ACE_NONBLOCK) < 0)
|
|
{
|
|
ACE_ERROR_RETURN ((MY_ERROR "%p\n","Acceptor::start () - open failed"),
|
|
-1);
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
// virtual from ACE_Acceptor<Receiver,ACE_SOCK_ACCEPTOR>
|
|
virtual int make_svc_handler (T * & sh)
|
|
{
|
|
ACE_NEW_RETURN (sh, T, -1);
|
|
return 0;
|
|
}
|
|
private:
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif //_MPS_ACCEPTOR__H__
|