summaryrefslogtreecommitdiffstats
path: root/src/corelib/doc/src/datastreamformat.qdoc
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/doc/src/datastreamformat.qdoc')
-rw-r--r--src/corelib/doc/src/datastreamformat.qdoc373
1 files changed, 373 insertions, 0 deletions
diff --git a/src/corelib/doc/src/datastreamformat.qdoc b/src/corelib/doc/src/datastreamformat.qdoc
new file mode 100644
index 0000000000..8ff31371a2
--- /dev/null
+++ b/src/corelib/doc/src/datastreamformat.qdoc
@@ -0,0 +1,373 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** GNU Free Documentation License
+** 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.
+**
+** 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$
+**
+****************************************************************************/
+
+/*!
+ \page datastreamformat.html
+ \title Serializing Qt Data Types
+ \ingroup qt-network
+ \brief Representations of data types that can be serialized by QDataStream.
+
+ The \l QDataStream allows you to serialize some of the Qt data types.
+ The table below lists the data types that QDataStream can serialize
+ and how they are represented. The format described below is
+ \l{QDataStream::setVersion()}{version 12}.
+
+ It is always best to cast integers to a Qt integer type, such as
+ qint16 or quint32, when reading and writing. This ensures that
+ you always know exactly what size integers you are reading and
+ writing, no matter what the underlying platform and architecture
+ the application happens to be running on.
+
+ \table
+ \row \li bool
+ \li \list
+ \li boolean
+ \endlist
+ \row \li qint8
+ \li \list
+ \li signed byte
+ \endlist
+ \row \li qint16
+ \li \list
+ \li signed 16-bit integer
+ \endlist
+ \row \li qint32
+ \li \list
+ \li signed 32-bit integer
+ \endlist
+ \row \li qint64
+ \li \list
+ \li signed 64-bit integer
+ \endlist
+ \row \li quint8
+ \li \list
+ \li unsigned byte
+ \endlist
+ \row \li quint16
+ \li \list
+ \li unsigned 16-bit integer
+ \endlist
+ \row \li quint32
+ \li \list
+ \li unsigned 32-bit integer
+ \endlist
+ \row \li quint64
+ \li \list
+ \li unsigned 64-bit integer
+ \endlist
+ \row \li \c float
+ \li \list
+ \li 32-bit floating point number using the standard IEEE 754 format
+ \endlist
+ \row \li \c double
+ \li \list
+ \li 64-bit floating point number using the standard IEEE 754 format
+ \endlist
+ \row \li \c {const char *}
+ \li \list
+ \li The string length (quint32)
+ \li The string bytes, excluding the terminating 0
+ \endlist
+ \row \li QBitArray
+ \li \list
+ \li The array size (quint32)
+ \li The array bits, i.e. (size + 7)/8 bytes
+ \endlist
+ \row \li QBrush
+ \li \list
+ \li The brush style (quint8)
+ \li The brush color (QColor)
+ \li If style is CustomPattern, the brush pixmap (QPixmap)
+ \endlist
+ \row \li QByteArray
+ \li \list
+ \li If the byte array is null: 0xFFFFFFFF (quint32)
+ \li Otherwise: the array size (quint32) followed by the array bytes, i.e. size bytes
+ \endlist
+ \row \li \l QColor
+ \li \list
+ \li Color spec (qint8)
+ \li Alpha value (quint16)
+ \li Red value (quint16)
+ \li Green value (quint16)
+ \li Blue value (quint16)
+ \li Pad value (quint16)
+ \endlist
+ \row \li QCursor
+ \li \list
+ \li Shape ID (qint16)
+ \li If shape is BitmapCursor: The bitmap (QPixmap), mask (QPixmap), and hot spot (QPoint)
+ \endlist
+ \row \li QDate
+ \li \list
+ \li Julian day (quint32)
+ \endlist
+ \row \li QDateTime
+ \li \list
+ \li Date (QDate)
+ \li Time (QTime)
+ \li 0 for Qt::LocalTime, 1 for Qt::UTC (quint8)
+ \endlist
+ \row \li QEasingCurve
+ \li \list
+ \li type (quint8)
+ \li func (quint64)
+ \li hasConfig (bool)
+ \li If hasConfig is true then these fields follow:
+ \li list
+ \li period (double)
+ \li amplitude (double)
+ \li overshoot (double)
+ \endlist
+ \row \li QFont
+ \li \list
+ \li The family (QString)
+ \li The point size (qint16)
+ \li The style hint (quint8)
+ \li The char set (quint8)
+ \li The weight (quint8)
+ \li The font bits (quint8)
+ \endlist
+ \row \li QHash<Key, T>
+ \li \list
+ \li The number of items (quint32)
+ \li For all items, the key (Key) and value (T)
+ \endlist
+ \row \li QIcon
+ \li \list
+ \li The number of pixmap entries (quint32)
+ \li For all pixmap entries:
+ \list
+ \li The pixmap (QPixmap)
+ \li The file name (QString)
+ \li The pixmap size (QSize)
+ \li The \l{QIcon::Mode}{mode} (quint32)
+ \li The \l{QIcon::State}{state} (quint32)
+ \endlist
+ \endlist
+ \row \li QImage
+ \li \list
+ \li If the image is null a "null image" marker is saved;
+ otherwise the image is saved in PNG or BMP format (depending
+ on the stream version). If you want control of the format,
+ stream the image into a QBuffer (using QImageIO) and stream
+ that.
+ \endlist
+ \row \li QKeySequence
+ \li \list
+ \li A QList<int>, where each integer is a key in the key sequence
+ \endlist
+ \row \li QLinkedList<T>
+ \li \list
+ \li The number of items (quint32)
+ \li The items (T)
+ \endlist
+ \row \li QList<T>
+ \li \list
+ \li The number of items (quint32)
+ \li The items (T)
+ \endlist
+ \row \li QMap<Key, T>
+ \li \list
+ \li The number of items (quint32)
+ \li For all items, the key (Key) and value (T)
+ \endlist
+ \row \li QMargins
+ \li \list
+ \li left (int)
+ \li top (int)
+ \li right (int)
+ \li bottom (int)
+ \endlist
+ \row \li QMatrix
+ \li \list
+ \li m11 (double)
+ \li m12 (double)
+ \li m21 (double)
+ \li m22 (double)
+ \li dx (double)
+ \li dy (double)
+ \endlist
+ \row \li QMatrix4x4
+ \li \list
+ \li m11 (double)
+ \li m12 (double)
+ \li m13 (double)
+ \li m14 (double)
+ \li m21 (double)
+ \li m22 (double)
+ \li m23 (double)
+ \li m24 (double)
+ \li m31 (double)
+ \li m32 (double)
+ \li m33 (double)
+ \li m34 (double)
+ \li m41 (double)
+ \li m42 (double)
+ \li m43 (double)
+ \li m44 (double)
+ \endlist
+ \row \li QPair<T1, T2>
+ \li \list
+ \li first (T1)
+ \li second (T2)
+ \endlist
+ \row \li QPalette
+ \li The disabled, active, and inactive color groups, each of which consists
+ of the following:
+ \list
+ \li foreground (QBrush)
+ \li button (QBrush)
+ \li light (QBrush)
+ \li midlight (QBrush)
+ \li dark (QBrush)
+ \li mid (QBrush)
+ \li text (QBrush)
+ \li brightText (QBrush)
+ \li buttonText (QBrush)
+ \li base (QBrush)
+ \li background (QBrush)
+ \li shadow (QBrush)
+ \li highlight (QBrush)
+ \li highlightedText (QBrush)
+ \li link (QBrush)
+ \li linkVisited (QBrush)
+ \endlist
+ \row \li QPen
+ \li \list
+ \li The pen styles (quint8)
+ \li The pen width (quint16)
+ \li The pen color (QColor)
+ \endlist
+ \row \li QPicture
+ \li \list
+ \li The size of the picture data (quint32)
+ \li The raw bytes of picture data (char)
+ \endlist
+ \row \li QPixmap
+ \li \list
+ \li Save it as a PNG image.
+ \endlist
+ \row \li QPoint
+ \li \list
+ \li The x coordinate (qint32)
+ \li The y coordinate (qint32)
+ \endlist
+ \row \li QQuaternion
+ \li \list
+ \li The scalar component (double)
+ \li The x coordinate (double)
+ \li The y coordinate (double)
+ \li The z coordinate (double)
+ \endlist
+ \row \li QRect
+ \li \list
+ \li left (qint32)
+ \li top (qint32)
+ \li right (qint32)
+ \li bottom (qint32)
+ \endlist
+ \row \li QRegExp
+ \li \list
+ \li The regexp pattern (QString)
+ \li Case sensitivity (quint8)
+ \li Regular expression syntax (quint8)
+ \li Minimal matching (quint8)
+ \endlist
+ \row \li QRegularExpression
+ \li \list
+ \li The regular expression pattern (QString)
+ \li The pattern options (quint32)
+ \endlist
+ \row \li QRegion
+ \li \list
+ \li The size of the data, i.e. 8 + 16 * (number of rectangles) (quint32)
+ \li 10 (qint32)
+ \li The number of rectangles (quint32)
+ \li The rectangles in sequential order (QRect)
+ \endlist
+ \row \li QSize
+ \li \list
+ \li width (qint32)
+ \li height (qint32)
+ \endlist
+ \row \li QString
+ \li \list
+ \li If the string is null: 0xFFFFFFFF (quint32)
+ \li Otherwise: The string length in bytes (quint32) followed by the data in UTF-16
+ \endlist
+ \row \li QTime
+ \li \list
+ \li Milliseconds since midnight (quint32)
+ \endlist
+ \row \li QTransform
+ \li \list
+ \li m11 (double)
+ \li m12 (double)
+ \li m13 (double)
+ \li m21 (double)
+ \li m22 (double)
+ \li m23 (double)
+ \li m31 (double)
+ \li m32 (double)
+ \li m33 (double)
+ \endlist
+ \row \li QUrl
+ \li \list
+ \li Holds an URL (QString)
+ \endlist
+ \row \li QVariant
+ \li \list
+ \li The type of the data (quint32)
+ \li The null flag (qint8)
+ \li The data of the specified type
+ \endlist
+ \row \li QVector2D
+ \li \list
+ \li the x coordinate (double)
+ \li the y coordinate (double)
+ \endlist
+ \row \li QVector3D
+ \li \list
+ \li the x coordinate (double)
+ \li the y coordinate (double)
+ \li the z coordinate (double)
+ \endlist
+ \row \li QVector4D
+ \li \list
+ \li the x coordinate (double)
+ \li the y coordinate (double)
+ \li the z coordinate (double)
+ \li the w coordinate (double)
+ \endlist
+ \row \li QVector<T>
+ \li \list
+ \li The number of items (quint32)
+ \li The items (T)
+ \endlist
+ \endtable
+*/