cutelyst
4.3.0
A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.
Toggle main menu visibility
Main Page
Related Pages
Topics
Namespaces
Namespace List
Namespace Members
All
Functions
Typedefs
Classes
Class List
Class Hierarchy
Class Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
~
Functions
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
~
Variables
Typedefs
Enumerations
Enumerator
a
b
c
d
e
f
h
i
l
m
n
o
p
q
r
s
t
u
v
w
Properties
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
u
w
Related Symbols
Files
File List
socket.h
1
/*
2
* SPDX-FileCopyrightText: (C) 2016-2018 Daniel Nicoletti <dantti12@gmail.com>
3
* SPDX-License-Identifier: BSD-3-Clause
4
*/
5
#ifndef SOCKET_H
6
#define SOCKET_H
7
8
#include "
Cutelyst/enginerequest.h
"
9
#include "protocol.h"
10
#include "serverengine.h"
11
12
#include <Cutelyst/Headers>
13
14
#include <QHostAddress>
15
#include <QLocalSocket>
16
#include <QSslSocket>
17
#include <QTcpSocket>
18
19
class
QIODevice
;
20
21
namespace
Cutelyst
{
22
23
class
Engine;
24
class
Socket
25
{
26
Q_GADGET
27
public
:
28
Socket
(
bool
secure,
Engine
*_engine);
29
virtual
~Socket
();
30
31
virtual
void
connectionClose() = 0;
32
33
// Returns false if disconnected
34
virtual
bool
requestFinished() = 0;
35
virtual
bool
flush() = 0;
36
37
inline
void
resetSocket()
38
{
39
if
(protoData->upgradedFrom) {
40
ProtocolData
*data = protoData->upgradedFrom;
41
delete
protoData;
42
protoData = data;
43
}
44
processing = 0;
45
46
protoData->resetData();
47
}
48
49
QByteArray
serverAddress;
50
QHostAddress
remoteAddress;
51
quint16 remotePort = 0;
52
Engine
*engine;
53
Protocol
*proto =
nullptr
;
54
ProtocolData
*protoData =
nullptr
;
55
qint8 processing = 0;
56
bool
isSecure;
57
bool
timeout =
false
;
58
};
24
class
Socket
{
…
};
59
60
class
TcpSocket
final
61
:
public
QTcpSocket
62
,
public
Socket
63
{
64
Q_OBJECT
65
public
:
66
explicit
TcpSocket
(
Cutelyst::Engine
*engine,
QObject
*
parent
=
nullptr
);
67
68
void
connectionClose()
override
final
;
69
bool
requestFinished()
override
final
;
70
bool
flush()
override
final
;
71
void
socketDisconnected();
72
73
Q_SIGNALS
:
74
// Always connect this in queued mode as the client might have
75
// triggered the disconnect event like websocket close, and deleting
76
// it's context from this event will crash
77
void
finished();
78
};
60
class
TcpSocket
final {
…
};
79
80
#ifndef QT_NO_SSL
81
82
class
SslSocket
final
83
:
public
QSslSocket
84
,
public
Socket
85
{
86
Q_OBJECT
87
public
:
88
explicit
SslSocket
(
Cutelyst::Engine
*engine,
QObject
*
parent
=
nullptr
);
89
90
void
connectionClose()
override
final
;
91
bool
requestFinished()
override
final
;
92
bool
flush()
override
final
;
93
void
socketDisconnected();
94
95
Q_SIGNALS
:
96
// See TcpSocket note
97
void
finished();
98
};
82
class
SslSocket
final {
…
};
99
100
#endif
// QT_NO_SSL
101
102
class
LocalSocket
final
103
:
public
QLocalSocket
104
,
public
Socket
105
{
106
Q_OBJECT
107
public
:
108
explicit
LocalSocket
(
Cutelyst::Engine
*engine,
QObject
*
parent
=
nullptr
);
109
110
void
connectionClose()
override
final
;
111
bool
requestFinished()
override
final
;
112
bool
flush()
override
final
;
113
void
socketDisconnected();
114
115
Q_SIGNALS
:
116
// See TcpSocket note
117
void
finished();
118
};
102
class
LocalSocket
final {
…
};
119
120
}
// namespace Cutelyst
121
122
#endif
// SOCKET_H
Cutelyst::Engine
The Cutelyst Engine.
Definition
engine.h:20
Cutelyst::LocalSocket
Definition
socket.h:105
Cutelyst::ProtocolData
Definition
protocol.h:19
Cutelyst::Protocol
Definition
protocol.h:70
Cutelyst::Socket
Definition
socket.h:25
Cutelyst::SslSocket
Definition
socket.h:85
Cutelyst::TcpSocket
Definition
socket.h:63
enginerequest.h
Cutelyst
The Cutelyst namespace holds all public Cutelyst API.
Definition
group-core-actions.dox:1
QByteArray
QHostAddress
QIODevice
QLocalSocket
QObject
QObject::Q_OBJECT
Q_OBJECTQ_OBJECT
QObject::Q_SIGNALS
Q_SIGNALSQ_SIGNALS
QObject::parent
QObject * parent() const const
QSslSocket
QTcpSocket
Cutelyst
Server
socket.h
Generated by
1.9.8