PdCom
5.3
Process data communication client
Toggle main menu visibility
Loading...
Searching...
No Matches
include
pdcom5
PosixProcess.h
Go to the documentation of this file.
1
/*****************************************************************************
2
* vim:tw=78
3
*
4
* Copyright (C) 2021 Bjarne von Horn (vh at igh dot de).
5
*
6
* This file is part of the PdCom library.
7
*
8
* The PdCom library is free software: you can redistribute it and/or modify
9
* it under the terms of the GNU Lesser General Public License as published by
10
* the Free Software Foundation, either version 3 of the License, or (at your
11
* option) any later version.
12
*
13
* The PdCom library is distributed in the hope that it will be useful, but
14
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
16
* License for more details.
17
*
18
* You should have received a copy of the GNU Lesser General Public License
19
* along with the PdCom library. If not, see <http://www.gnu.org/licenses/>.
20
*
21
*****************************************************************************/
22
24
25
#ifndef PDCOM5_POSIXPROCESS_H
26
#define PDCOM5_POSIXPROCESS_H
27
28
#include <chrono>
29
#include <memory>
30
#include <pdcom5_export.h>
31
#include <string>
32
33
namespace
PdCom {
34
35
42
43
class
PDCOM5_PUBLIC
PosixProcess
44
{
45
public
:
52
PosixProcess
(
const
char
*host,
unsigned
short
port);
53
58
explicit
PosixProcess
(
int
fd);
59
60
61
virtual
~PosixProcess
();
62
63
PosixProcess
(
PosixProcess
&&o) =
delete
;
64
PosixProcess
(
PosixProcess
const
&) =
delete
;
65
66
PosixProcess
&operator=(
PosixProcess
&&o) =
delete
;
67
PosixProcess
&operator=(
PosixProcess
const
&) =
delete
;
68
69
protected
:
71
int
fd_
;
72
87
void
posixWriteBuffered
(
const
char
*buf,
size_t
count);
88
103
void
posixWriteDirect
(
const
char
*buf,
size_t
count);
104
105
113
int
posixRead
(
char
*buf,
int
count);
114
122
void
posixFlush
();
123
128
void
setWriteTimeout
(std::chrono::milliseconds ms);
129
138
void
reconnect
(
const
char
*host,
unsigned
short
port);
139
140
private
:
141
class
Impl;
142
std::shared_ptr<Impl> impl_;
143
};
144
145
}
// namespace PdCom
146
147
#endif
// PDCOM5_POSIXPROCESS_H
PdCom::PosixProcess::PosixProcess
PosixProcess(int fd)
Constructor.
PdCom::PosixProcess::PosixProcess
PosixProcess(const char *host, unsigned short port)
Constructor.
PdCom::PosixProcess::posixFlush
void posixFlush()
Flush internal buffer to socket.
PdCom::PosixProcess::posixWriteBuffered
void posixWriteBuffered(const char *buf, size_t count)
Buffered Wrapper for write().
PdCom::PosixProcess::fd_
int fd_
File descriptior of the socket.
Definition
PosixProcess.h:71
PdCom::PosixProcess::setWriteTimeout
void setWriteTimeout(std::chrono::milliseconds ms)
Timeout for posixWriteDirect() in non-blocking mode.
PdCom::PosixProcess::posixWriteDirect
void posixWriteDirect(const char *buf, size_t count)
Unbuffered Wrapper for write().
PdCom::PosixProcess::posixRead
int posixRead(char *buf, int count)
Wrapper for read().
PdCom::PosixProcess::reconnect
void reconnect(const char *host, unsigned short port)
Establish a new connection.
Documentation automatically created on
by
. - PdCom developed by
Ingenieurgemeinschaft IgH GmbH
. All rights reserved.