| Index: libraries/nacl-mounts/net/TcpServerSocket.h
|
| ===================================================================
|
| --- libraries/nacl-mounts/net/TcpServerSocket.h (revision 0)
|
| +++ libraries/nacl-mounts/net/TcpServerSocket.h (revision 0)
|
| @@ -0,0 +1,56 @@
|
| +// Copyright (c) 2012 The Chromium OS 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 TCP_SERVER_SOCKET_H
|
| +#define TCP_SERVER_SOCKET_H
|
| +
|
| +#include <string>
|
| +#include "base/PthreadHelpers.h"
|
| +#include "include/ppapi/cpp/private/tcp_server_socket_private.h"
|
| +#include "net/SocketSubSystem.h"
|
| +#include "ppapi/cpp/completion_callback.h"
|
| +
|
| +class TCPServerSocket : public FileStream {
|
| + public:
|
| + TCPServerSocket(int oflag, const char* host, uint16_t port);
|
| + virtual ~TCPServerSocket();
|
| +
|
| + bool is_open() { return socket_ != NULL; }
|
| +
|
| + virtual void addref();
|
| + virtual void release();
|
| + virtual FileStream* dup(int fd);
|
| +
|
| + virtual int read(char* buf, size_t count, size_t* nread);
|
| + virtual int write(const char* buf, size_t count, size_t* nwrote);
|
| + virtual void close();
|
| +
|
| + virtual int fcntl(int cmd, va_list ap);
|
| +
|
| + virtual bool is_read_ready();
|
| + virtual bool is_write_ready();
|
| + virtual bool is_exception();
|
| +
|
| + bool listen(int backlog);
|
| + PP_Resource accept();
|
| +
|
| + private:
|
| + void Listen(int32_t result, int backlog, int32_t* pres);
|
| + void Accept(int32_t result, int32_t* pres);
|
| + void OnAccept(int32_t result);
|
| + void Close(int32_t result, int32_t* pres);
|
| +
|
| + int ref_;
|
| + int oflag_;
|
| + pp::CompletionCallbackFactory<TCPServerSocket, ThreadSafeRefCount> factory_;
|
| + pp::TCPServerSocketPrivate* socket_;
|
| + std::string host_;
|
| + uint16_t port_;
|
| + PP_Resource resource_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(TCPServerSocket);
|
| +};
|
| +
|
| +#endif // TCP_SERVER_SOCKET_H
|
| +
|
|
|