xref: /haiku/headers/os/net/Socket.h (revision 899e0ef82b5624ace2ccfa5f5a58c8ebee54aaef)
1 /*
2  * Copyright 2011-2016, Haiku, Inc. All Rights Reserved.
3  * Distributed under the terms of the MIT License.
4  */
5 #ifndef _SOCKET_H
6 #define _SOCKET_H
7 
8 
9 #include <AbstractSocket.h>
10 
11 
12 class BSocket : public BAbstractSocket {
13 public:
14 								BSocket();
15 								BSocket(const BNetworkAddress& peer,
16 									bigtime_t timeout = B_INFINITE_TIMEOUT);
17 								BSocket(const BSocket& other);
18 	virtual						~BSocket();
19 
20 	virtual	status_t			Bind(const BNetworkAddress& peer,
21 									bool reuseAddr = true);
22 
23 	virtual	status_t			Accept(BAbstractSocket*& _socket);
24 
25 	virtual	status_t			Connect(const BNetworkAddress& peer,
26 									bigtime_t timeout = B_INFINITE_TIMEOUT);
27 
28 	// BDataIO implementation
29 
30 	virtual ssize_t				Read(void* buffer, size_t size);
31 	virtual ssize_t				Write(const void* buffer, size_t size);
32 
33 protected:
34 
35 			void				_SetTo(int fd, const BNetworkAddress& local,
36 									const BNetworkAddress& peer);
37 };
38 
39 
40 #endif	// _SOCKET_H
41