diff options
Diffstat (limited to 'chromium/net/socket/server_socket.h')
-rw-r--r-- | chromium/net/socket/server_socket.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/chromium/net/socket/server_socket.h b/chromium/net/socket/server_socket.h new file mode 100644 index 00000000000..11151eea153 --- /dev/null +++ b/chromium/net/socket/server_socket.h @@ -0,0 +1,40 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef NET_SOCKET_SERVER_SOCKET_H_ +#define NET_SOCKET_SERVER_SOCKET_H_ + +#include "base/memory/scoped_ptr.h" +#include "net/base/completion_callback.h" +#include "net/base/net_export.h" + +namespace net { + +class IPEndPoint; +class StreamSocket; + +class NET_EXPORT ServerSocket { + public: + ServerSocket() { } + virtual ~ServerSocket() { } + + // Bind the socket and start listening. Destroy the socket to stop + // listening. + virtual int Listen(const net::IPEndPoint& address, int backlog) = 0; + + // Gets current address the socket is bound to. + virtual int GetLocalAddress(IPEndPoint* address) const = 0; + + // Accept connection. Callback is called when new connection is + // accepted. + virtual int Accept(scoped_ptr<StreamSocket>* socket, + const CompletionCallback& callback) = 0; + + private: + DISALLOW_COPY_AND_ASSIGN(ServerSocket); +}; + +} // namespace net + +#endif // NET_SOCKET_SERVER_SOCKET_H_ |