sockpp
Modern C++ socket library wrapper
platform.h
Go to the documentation of this file.
1
13
// --------------------------------------------------------------------------
14
// This file is part of the "sockpp" C++ socket library.
15
//
16
// Copyright (c) 2014-2017 Frank Pagliughi
17
// All rights reserved.
18
//
19
// Redistribution and use in source and binary forms, with or without
20
// modification, are permitted provided that the following conditions are
21
// met:
22
//
23
// 1. Redistributions of source code must retain the above copyright notice,
24
// this list of conditions and the following disclaimer.
25
//
26
// 2. Redistributions in binary form must reproduce the above copyright
27
// notice, this list of conditions and the following disclaimer in the
28
// documentation and/or other materials provided with the distribution.
29
//
30
// 3. Neither the name of the copyright holder nor the names of its
31
// contributors may be used to endorse or promote products derived from this
32
// software without specific prior written permission.
33
//
34
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
35
// IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
36
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
37
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
38
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
39
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
40
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
41
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
42
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
43
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
44
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
45
// --------------------------------------------------------------------------
46
47
#ifndef __sockpp_platform_h
48
#define __sockpp_platform_h
49
50
#include <cstdint>
51
52
#if defined(_WIN32)
53
//#pragma warning(4 : 4996) // Deprecated functions (CRT & all)
54
//#pragma warning(4 : 4250) // Inheritance via dominance
55
56
#if !defined(WIN32_LEAN_AND_MEAN)
57
#define WIN32_LEAN_AND_MEAN
58
#endif
59
60
#if !defined(_CRT_SECURE_NO_DEPRECATE)
61
#define _CRT_SECURE_NO_DEPRECATE
62
#endif
63
64
//#include <cstddef>
65
//#include <windows.h>
66
#include <winsock2.h>
67
#include <ws2tcpip.h>
68
69
#define SOCKPP_SOCKET_T_DEFINED
70
using
socket_t
= SOCKET;
71
72
using
socklen_t = int;
73
using
in_port_t = uint16_t;
74
using
in_addr_t = uint32_t;
75
76
using
sa_family_t = u_short;
77
78
#ifndef _SSIZE_T_DEFINED
79
#define _SSIZE_T_DEFINED
80
#undef ssize_t
81
using
ssize_t = SSIZE_T;
82
#endif // _SSIZE_T_DEFINED
83
84
#ifndef _SUSECONDS_T
85
#define _SUSECONDS_T
86
typedef
long
suseconds_t;
// signed # of microseconds in timeval
87
#endif // _SUSECONDS_T
88
89
#define SHUT_RD SD_RECEIVE
90
#define SHUT_WR SD_SEND
91
#define SHUT_RDWR SD_BOTH
92
93
struct
iovec
94
{
95
void
* iov_base;
96
size_t
iov_len;
97
};
98
99
#else
100
#include <unistd.h>
101
#include <sys/socket.h>
102
#include <sys/uio.h>
103
#include <arpa/inet.h>
104
#ifdef __FreeBSD__
105
#include <netinet/in.h>
106
#endif
107
#include <netdb.h>
108
#include <signal.h>
109
#include <cerrno>
110
#endif
111
112
#endif
113
sockpp::socket_t
int socket_t
The OS socket handle.
Definition:
socket.h:60
Generated on Sat Apr 24 2021 13:59:37 for sockpp by
1.8.13