summaryrefslogtreecommitdiffstats
path: root/src/network/access/qtcpkeepaliveconfiguration_p.h
blob: b8bd96666ef968a68d71a9501cba42f2aa49bf97 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// Copyright (C) 2025 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
// Qt-Security score:significant reason:default

#ifndef QTCPKEEPALIVECONFIGURATION_P_H
#define QTCPKEEPALIVECONFIGURATION_P_H

//
//  W A R N I N G
//  -------------
//
// This file is not part of the Qt API.  It exists for the convenience
// of the Network Access API.  This header file may change from
// version to version without notice, or even be removed.
//
// We mean it.
//

#include <QtCore/private/qglobal_p.h>
#include <QtNetwork/qtnetworkglobal.h>

#include <chrono>

QT_BEGIN_NAMESPACE

struct QTcpKeepAliveConfiguration
{
    std::chrono::duration<int> idleTimeBeforeProbes;
    std::chrono::duration<int> intervalBetweenProbes;
    int probeCount;

    bool isEqual(const QTcpKeepAliveConfiguration &other) const noexcept
    {
           return idleTimeBeforeProbes == other.idleTimeBeforeProbes
           && intervalBetweenProbes == other.intervalBetweenProbes
           && probeCount == other.probeCount;
    }

    friend bool operator==(const QTcpKeepAliveConfiguration &lhs, const QTcpKeepAliveConfiguration &rhs) noexcept
    { return lhs.isEqual(rhs); }
    friend bool operator!=(const QTcpKeepAliveConfiguration &lhs, const QTcpKeepAliveConfiguration &rhs) noexcept
    { return !lhs.isEqual(rhs); }

};

Q_DECLARE_TYPEINFO(QTcpKeepAliveConfiguration, Q_PRIMITIVE_TYPE);

QT_END_NAMESPACE

#endif // QTCPKEEPALIVECONFIGURATION_P_H