]> git.sesse.net Git - casparcg/blob - dependencies64/sfml/include/SFML/Network/Win32/SocketHelper.hpp
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches...
[casparcg] / dependencies64 / sfml / include / SFML / Network / Win32 / SocketHelper.hpp
1 ////////////////////////////////////////////////////////////\r
2 //\r
3 // SFML - Simple and Fast Multimedia Library\r
4 // Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@gmail.com)\r
5 //\r
6 // This software is provided 'as-is', without any express or implied warranty.\r
7 // In no event will the authors be held liable for any damages arising from the use of this software.\r
8 //\r
9 // Permission is granted to anyone to use this software for any purpose,\r
10 // including commercial applications, and to alter it and redistribute it freely,\r
11 // subject to the following restrictions:\r
12 //\r
13 // 1. The origin of this software must not be misrepresented;\r
14 //    you must not claim that you wrote the original software.\r
15 //    If you use this software in a product, an acknowledgment\r
16 //    in the product documentation would be appreciated but is not required.\r
17 //\r
18 // 2. Altered source versions must be plainly marked as such,\r
19 //    and must not be misrepresented as being the original software.\r
20 //\r
21 // 3. This notice may not be removed or altered from any source distribution.\r
22 //\r
23 ////////////////////////////////////////////////////////////\r
24 \r
25 #ifndef SFML_SOCKETHELPERWIN32_HPP\r
26 #define SFML_SOCKETHELPERWIN32_HPP\r
27 \r
28 ////////////////////////////////////////////////////////////\r
29 // Headers\r
30 ////////////////////////////////////////////////////////////\r
31 #include <winsock2.h>\r
32 \r
33 \r
34 namespace sf\r
35 {\r
36 ////////////////////////////////////////////////////////////\r
37 /// This class defines helper functions to do all the\r
38 /// non-portable socket stuff. This class is meant for internal\r
39 /// use only\r
40 ////////////////////////////////////////////////////////////\r
41 class SFML_API SocketHelper\r
42 {\r
43 public :\r
44 \r
45     ////////////////////////////////////////////////////////////\r
46     // Define some socket types\r
47     ////////////////////////////////////////////////////////////\r
48     typedef SOCKET SocketType;\r
49     typedef int    LengthType;\r
50 \r
51     ////////////////////////////////////////////////////////////\r
52     /// Return the value of the invalid socket\r
53     ///\r
54     /// \return Unique value of the invalid socket\r
55     ///\r
56     ////////////////////////////////////////////////////////////\r
57     static SocketType InvalidSocket();\r
58 \r
59     ////////////////////////////////////////////////////////////\r
60     /// Close / destroy a socket\r
61     ///\r
62     /// \param Socket : Socket to close\r
63     ///\r
64     /// \return True on success\r
65     ///\r
66     ////////////////////////////////////////////////////////////\r
67     static bool Close(SocketType Socket);\r
68 \r
69     ////////////////////////////////////////////////////////////\r
70     /// Set a socket as blocking or non-blocking\r
71     ///\r
72     /// \param Socket : Socket to modify\r
73     /// \param Block :  New blocking state of the socket\r
74     ///\r
75     ////////////////////////////////////////////////////////////\r
76     static void SetBlocking(SocketType Socket, bool Block);\r
77 \r
78     ////////////////////////////////////////////////////////////\r
79     /// Get the last socket error status\r
80     ///\r
81     /// \return Status corresponding to the last socket error\r
82     ///\r
83     ////////////////////////////////////////////////////////////\r
84     static Socket::Status GetErrorStatus();\r
85 };\r
86 \r
87 } // namespace sf\r
88 \r
89 \r
90 #endif // SFML_SOCKETHELPERWIN32_HPP\r