/**************************************************************************** ** ** 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$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and Digia. For licensing terms and ** conditions see http://qt.digia.com/licensing. For further information ** use the contact form at http://qt.digia.com/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, 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} */