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__