summaryrefslogtreecommitdiffstats
path: root/src/jsonstream/doc/src/index.qdoc
blob: fa76ecb972d058846658d5deef24483600f852fe (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
/****************************************************************************
**
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the QtAddOn.JsonStream module of the Qt.
**
** $QT_BEGIN_LICENSE:FDL$
** GNU Free Documentation License Usage
** This file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: http://www.gnu.org/copyleft/fdl.html.
** $QT_END_LICENSE$
**
****************************************************************************/

/*!
\title JSON Stream Reference
\page index.html

\section1 Introduction

QML and Javascript programs often need a way of communicating with a
server on the same machine or different machines.  There are many
protocols available, but the easiest for
Javascript-based programming languages is to use \l
{http://www.json.org} {JSON} data-interchange format.
The JSON Stream classes implement a client/server framework.

\b{Discussion and examples}
\list
 \li \l{Stream serialization}
 \li \l{Using JSON stream classes}
 \li \l{Multiplexing Using QJsonConnection and QJsonEndpoint}
 \li \l{Authority notes}
\endlist

\section1 Interfaces

Conceptually, the JSON Stream classes are divided into a generic client (JsonClient),
a generic server (JsonServer), a stream transport shared by the client and the server (JsonStream),
and an optional authentication agent (JsonAuthority) which can be installed on the server.
Each connection to the JsonServer is given a unique \e{identifier} so that the different
connections can be disambiguated.

\image classes.png

When a new socket connection is opened to the server, the authentication agent "absorbs" all
communication over that socket until the connection has been properly authenticated.
The authentication agent is also responsible for setting the \e{identifier} of the connection.
For example, an authentication agent that matches the process ID (PID) of the connecting
client to an appropriate user and permission writes may set the \e{identifier} of the
connection to the Unix name of the UID of the connecting process.

\section2 C++ API

\generatelist annotatedclasses

*/

/*!
  \page classes.html
  \title All Classes

  \brief If you know the name of the class, it should be here

  This is a list of all of the classes provided by JSON Stream Manager.

  \generatelist classes


    \generatelist{namespaces}

*/