include
simple_message
socket
tcp_socket.h
Go to the documentation of this file.
1
/*
2
* Software License Agreement (BSD License)
3
*
4
* Copyright (c) 2011, Southwest Research Institute
5
* All rights reserved.
6
*
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions are met:
9
*
10
* * Redistributions of source code must retain the above copyright
11
* notice, this list of conditions and the following disclaimer.
12
* * Redistributions in binary form must reproduce the above copyright
13
* notice, this list of conditions and the following disclaimer in the
14
* documentation and/or other materials provided with the distribution.
15
* * Neither the name of the Southwest Research Institute, nor the names
16
* of its contributors may be used to endorse or promote products derived
17
* from this software without specific prior written permission.
18
*
19
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
* POSSIBILITY OF SUCH DAMAGE.
30
*/
31
32
#ifndef TCP_SOCKET_H
33
#define TCP_SOCKET_H
34
35
#ifndef FLATHEADERS
36
#include "
simple_message/socket/simple_socket.h
"
37
#include "
simple_message/shared_types.h
"
38
#else
39
#include "
simple_socket.h
"
40
#include "
shared_types.h
"
41
#endif
42
43
// remove LINUXSOCKETS after Melodic (bw compat for #262)
44
#if defined(SIMPLE_MESSAGE_LINUX) || defined(LINUXSOCKETS)
45
#ifndef WIN32
46
#include "sys/socket.h"
47
#include "netdb.h"
48
#include "arpa/inet.h"
49
#include "unistd.h"
50
#else
51
#include <ws2tcpip.h>
52
#endif
53
#include "string.h"
54
#endif
55
56
#ifdef SIMPLE_MESSAGE_MOTOPLUS
57
#include "motoPlus.h"
58
#endif
59
60
61
namespace
industrial
62
{
63
namespace
tcp_socket
64
{
65
66
class
TcpSocket
:
public
industrial::simple_socket::SimpleSocket
67
{
68
public
:
69
70
TcpSocket
();
71
virtual
~TcpSocket
();
72
73
private
:
74
75
// Virtual
76
int
rawSendBytes
(
char
*buffer,
77
industrial::shared_types::shared_int
num_bytes);
78
int
rawReceiveBytes
(
char
*buffer,
79
industrial::shared_types::shared_int
num_bytes);
80
bool
rawPoll
(
int
timeout,
bool
& ready,
bool
& error);
81
82
};
83
84
}
//tcp_socket
85
}
//industrial
86
87
#endif
/* TCP_SOCKET_H */
industrial::tcp_socket::TcpSocket::rawPoll
bool rawPoll(int timeout, bool &ready, bool &error)
polls socket for data or error
Definition:
tcp_socket.cpp:83
industrial::tcp_socket::TcpSocket
Definition:
tcp_socket.h:66
industrial
Definition:
byte_array.h:45
industrial::tcp_socket::TcpSocket::rawReceiveBytes
int rawReceiveBytes(char *buffer, industrial::shared_types::shared_int num_bytes)
Definition:
tcp_socket.cpp:74
industrial::tcp_socket::TcpSocket::~TcpSocket
virtual ~TcpSocket()
Definition:
tcp_socket.cpp:58
simple_socket.h
industrial::tcp_socket::TcpSocket::rawSendBytes
int rawSendBytes(char *buffer, industrial::shared_types::shared_int num_bytes)
Definition:
tcp_socket.cpp:65
industrial::tcp_socket::TcpSocket::TcpSocket
TcpSocket()
Definition:
tcp_socket.cpp:54
shared_types.h
industrial::shared_types::shared_int
int shared_int
Definition:
shared_types.h:62
industrial::simple_socket::SimpleSocket
Defines socket functions required for a simple connection type.
Definition:
simple_socket.h:149
simple_message
Author(s): Shaun Edwards
autogenerated on Wed Mar 2 2022 00:24:53