OpenDaVINCI  4.16.0
POSIXTCPAcceptor.h
Go to the documentation of this file.
1 
20 #ifndef OPENDAVINCI_CORE_WRAPPER_POSIXTCPACCEPTOR_H_
21 #define OPENDAVINCI_CORE_WRAPPER_POSIXTCPACCEPTOR_H_
22 
23 #include <memory>
24 
28 
29 namespace odcore { namespace io { namespace tcp { class TCPAcceptorListener; } } }
30 namespace odcore { namespace io { namespace tcp { class TCPConnection; } } }
31 namespace odcore { namespace wrapper { class Mutex; } }
32 namespace odcore { namespace wrapper { class Thread; } }
33 
34 namespace odcore {
35  namespace wrapper {
36  namespace POSIX {
37 
38  using namespace std;
39 
41  private:
42  static const int32_t BACKLOG = 100;
43 
44  private:
51 
57  POSIXTCPAcceptor& operator=(const POSIXTCPAcceptor &);
58 
59  public:
60  POSIXTCPAcceptor(const uint32_t& port);
61  virtual ~POSIXTCPAcceptor();
62 
63  virtual void setAcceptorListener(odcore::io::tcp::TCPAcceptorListener* listener);
64 
65  virtual void start();
66  virtual void stop();
67 
68  virtual bool isRunning();
69  virtual void run();
70 
71  protected:
72  void invokeAcceptorListener(std::shared_ptr<odcore::io::tcp::TCPConnection> connection);
73 
74  unique_ptr<Thread> m_thread;
75 
76  unique_ptr<Mutex> m_listenerMutex;
78 
80  int32_t m_port;
81  };
82 
83  }
84  }
85 }
86 #endif /* OPENDAVINCI_CORE_WRAPPER_POSIXTCPACCEPTOR_H_ */
Definition: TCPAcceptorListener.h:33
Definition: TCPAcceptor.h:31
int32_t m_port
Definition: POSIXTCPAcceptor.h:80
Definition: Runnable.h:35
odcore::io::tcp::TCPAcceptorListener * m_listener
Definition: POSIXTCPAcceptor.h:77
int32_t m_fileDescriptor
Definition: POSIXTCPAcceptor.h:79
unique_ptr< Thread > m_thread
Definition: POSIXTCPAcceptor.h:74
Definition: POSIXTCPAcceptor.h:40
unique_ptr< Mutex > m_listenerMutex
Definition: POSIXTCPAcceptor.h:76