summaryrefslogtreecommitdiffstats
path: root/src/jsonstream/qjsonauthority.cpp
blob: 0e0f2031b56592067d149beff811911110f45cbe (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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
/****************************************************************************
**
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the QtAddOn.JsonStream module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** GNU Lesser General Public License Usage
** This file may be used under the terms of the GNU Lesser General Public
** License version 2.1 as published by the Free Software Foundation and
** appearing in the file LICENSE.LGPL included in the packaging of this
** file. Please review the following information to ensure the GNU Lesser
** General Public License version 2.1 requirements will be met:
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU General
** Public License version 3.0 as published by the Free Software Foundation
** and appearing in the file LICENSE.GPL included in the packaging of this
** file. Please review the following information to ensure the GNU General
** Public License version 3.0 requirements will be met:
** http://www.gnu.org/copyleft/gpl.html.
**
** Other Usage
** Alternatively, this file may be used in accordance with the terms and
** conditions contained in a signed written agreement between you and Nokia.
**
**
**
**
**
** $QT_END_LICENSE$
**
****************************************************************************/

#include "qjsonauthority.h"

QT_BEGIN_NAMESPACE_JSONSTREAM

/**************************************************************************************************/
/*!
  \class QJsonAuthority
  \inmodule QtJsonStream
  \brief The QJsonAuthority class is an abstract class used to authorize new QJson client connections.

  The QJsonAuthority class authorizes QJson client connections.

  Note: Do I need an asynchronous way so that a QJsonAuthority can drop a client connection
  after a timeout?
 */

/*!
  \enum QJsonAuthority::AuthorizationState

  This enum is returned from clientConnected() and messageReceived() calls to change the
  authorization state of the connection.

  \value StateAuthorized    The connection is authorized.  All future messages are send to the \c QJsonServer clients.
  \value StateNotAuthorized The connection is not authorized.  The \c QJsonServer must shut down the connection.
  \value StatePending       The connection has not yet been authorized.  New messages will be send to the \c QJsonAuthority
                            until the connection is authorized by the QJsonAuthority.
*/

/*!
  Constructs a \c QJsonAuthority object with the given \a parent.
 */

QJsonAuthority::QJsonAuthority(QObject *parent)
    : QObject(parent)
{
}

/*!
    Destructs the QJsonAuthority object.
*/
QJsonAuthority::~QJsonAuthority()
{

}

/*!
  Will only be called if a non-authorized client disconnects.
  The \a stream object should not be used to send messages.
 */
void QJsonAuthority::clientDisconnected( QJsonStream *stream )
{
    Q_UNUSED(stream);
}

/*!
  Returns an AuthorizationRecord based on initial client connection.  If the authorization state is \c Authorized,
  the record's identifier must be initialized to a unique value.  The \a stream object may be used to send
  messages; for example, the \c QJsonAuthority object may participate in a challenge-response exchange before
  authorizing the connection.
 */

AuthorizationRecord QJsonAuthority::clientConnected( QJsonStream *stream )
{
    Q_UNUSED(stream);
    return AuthorizationRecord( StateNotAuthorized );
}

/*!
  Returns an AuthorizationState based on a received \a message.  If the authorization state is \c Authorized,
  the record's identifier must be initialized to a unique value.  The \a stream may be used to send additional
  messages to the client.
 */

AuthorizationRecord QJsonAuthority::messageReceived(QJsonStream *stream, const QJsonObject& message)
{
    Q_UNUSED(stream);
    Q_UNUSED(message);
    return AuthorizationRecord( StateNotAuthorized );
}

#include "moc_qjsonauthority.cpp"

QT_END_NAMESPACE_JSONSTREAM