7#include <QtCore/qscopedpointer.h>
8#include <QtCore/qiodevicebase.h>
9#include <QtCore/qcontainerfwd.h>
10#include <QtCore/qnamespace.h>
13#error qdatastream.h must be included before any header file that defines Status
18#if QT_CORE_REMOVED_SINCE(6, 3)
24#if !defined(QT_NO_DATASTREAM) || defined(QT_BOOTSTRAPPED)
27class StreamStateSaver;
73 Qt_DefaultCompiledVersion = Qt_6_7
74#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0)
75#error Add the datastream version for this Qt version and update Qt_DefaultCompiledVersion
107 Status status()
const;
108 void setStatus(Status status);
111 FloatingPointPrecision floatingPointPrecision()
const;
112 void setFloatingPointPrecision(FloatingPointPrecision
precision);
114 ByteOrder byteOrder()
const;
115 void setByteOrder(ByteOrder);
132#if QT_CORE_REMOVED_SINCE(6, 3)
152#if QT_CORE_REMOVED_SINCE(6, 3)
163 int readRawData(
char *,
int len);
166 int writeRawData(
const char *,
int len);
168 int skipRawData(
int len);
170 void startTransaction();
171 bool commitTransaction();
172 void rollbackTransaction();
173 void abortTransaction();
175 bool isDeviceTransactionStarted()
const;
188 int readBlock(
char *
data,
int len);
199 if (!
stream->isDeviceTransactionStarted())
206 stream->setStatus(oldStatus);
215template <
typename Container>
225 typename Container::value_type
t;
237template <
typename Container>
246 typename Container::value_type
t;
258template <
typename Container>
267 typename Container::key_type k;
268 typename Container::mapped_type
t;
280template <
typename Container>
284 for (
const typename Container::value_type &
t :
c)
290template <
typename Container>
295 auto end =
c.constEnd();
297 s <<
it.key() <<
it.value();
304template <
typename Container>
309 auto end =
c.constEnd();
311 const auto rangeStart =
it++;
312 while (
it !=
end && rangeStart.key() ==
it.key())
314 const qint64 last = std::distance(rangeStart,
it) - 1;
316 auto next = std::next(rangeStart,
i);
326template<
typename ...T>
328 std::enable_if_t<std::conjunction_v<QTypeTraits::has_ostream_operator<QDataStream, T>...>,
QDataStream &>;
329template<
typename Container,
typename ...T>
331 std::enable_if_t<std::conjunction_v<QTypeTraits::has_ostream_operator_container<QDataStream, Container, T>...>,
QDataStream &>;
333template<
typename ...T>
335 std::enable_if_t<std::conjunction_v<QTypeTraits::has_istream_operator<QDataStream, T>...>,
QDataStream &>;
336template<
typename Container,
typename ...T>
338 std::enable_if_t<std::conjunction_v<QTypeTraits::has_istream_operator_container<QDataStream, Container, T>...>,
QDataStream &>;
357{
return *
this >>
reinterpret_cast<qint8&
>(
i); }
360{
return *
this >>
reinterpret_cast<qint8&
>(
i); }
363{
return *
this >>
reinterpret_cast<qint16&
>(
i); }
366{
return *
this >>
reinterpret_cast<qint32&
>(
i); }
369{
return *
this >>
reinterpret_cast<qint64&
>(
i); }
372{
return *
this <<
qint8(
i); }
375{
return *
this <<
qint8(
i); }
386template <
typename Enum>
388{
return s << typename QFlags<Enum>::Int(
e); }
390template <
typename Enum>
400typename std::enable_if_t<std::is_enum<T>::value,
QDataStream &>
402{
return s << static_cast<typename std::underlying_type<T>::type>(
t); }
405typename std::enable_if_t<std::is_enum<T>::value,
QDataStream &>
407{
return s >>
reinterpret_cast<typename std::underlying_type<T>::type &
>(
t); }
435template <
class Key,
class T>
441template <
class Key,
class T>
448template <
class Key,
class T>
454template <
class Key,
class T>
460template <
class Key,
class T>
466template <
class Key,
class T>
472template <
class Key,
class T>
478template <
class Key,
class T>
484template <
class T1,
class T2>
487 s >>
p.first >>
p.second;
491template <
class T1,
class T2>
494 s <<
p.first <<
p.second;
512template <
class Key,
class T>
515template <
class Key,
class T>
518template <
class Key,
class T>
521template <
class Key,
class T>
524template <
class Key,
class T>
527template <
class Key,
class T>
530template <
class Key,
class T>
533template <
class Key,
class T>
536template <
class T1,
class T2>
539template <
class T1,
class T2>
IOBluetoothDevice * device
\inmodule QtCore\reentrant
QDataStream & operator>>(char &i)
ByteOrder
The byte order used for reading/writing the data.
Version
This enum provides symbolic synonyms for the data serialization format version numbers.
QDataStream & operator>>(std::nullptr_t &ptr)
Status
This enum describes the current status of the data stream.
QDataStream & operator<<(std::nullptr_t)
ByteOrder byteOrder() const
Returns the current byte order setting – either BigEndian or LittleEndian.
FloatingPointPrecision
The precision of floating point numbers used for reading/writing the data.
QIODevice * device() const
Returns the I/O device currently set, or \nullptr if no device is currently set.
int version() const
Returns the version number of the data serialization format.
QDataStream & operator<<(char i)
void setVersion(int)
Sets the version number of the data serialization format to v, a value of the \l Version enum.
std::conditional< std::is_unsigned< typenamestd::underlying_type< Enum >::type >::value, unsignedint, signedint >::type Int
\inheaderfile QIODevice \inmodule QtCore
\inmodule QtCore \reentrant
static constexpr QKeyCombination fromCombined(int combined)
constexpr int toCombined() const noexcept
const_iterator constBegin() const noexcept
StreamStateSaver(QDataStream *s)
\keyword 16-bit Floating Point Support\inmodule QtCore \inheaderfile QFloat16
QHash< int, QWidget * > hash
[35multi]
QMap< QString, QString > map
[6]
QSet< QString >::iterator it
Combined button and popup list for selecting options.
QDataStream & readListBasedContainer(QDataStream &s, Container &c)
QDataStream & readAssociativeContainer(QDataStream &s, Container &c)
QDataStream & writeAssociativeContainer(QDataStream &s, const Container &c)
QDataStream & writeAssociativeMultiContainer(QDataStream &s, const Container &c)
QDataStream & writeSequentialContainer(QDataStream &s, const Container &c)
QDataStream & readArrayBasedContainer(QDataStream &s, Container &c)
std::enable_if_t< std::conjunction_v< QTypeTraits::has_istream_operator< QDataStream, T >... >, QDataStream & > QDataStreamIfHasIStreamOperators
std::enable_if_t< std::conjunction_v< QTypeTraits::has_ostream_operator_container< QDataStream, Container, T >... >, QDataStream & > QDataStreamIfHasOStreamOperatorsContainer
std::enable_if_t< std::conjunction_v< QTypeTraits::has_ostream_operator< QDataStream, T >... >, QDataStream & > QDataStreamIfHasOStreamOperators
QDataStream & operator>>(QDataStream &s, QFlags< Enum > &e)
QDataStream & operator<<(QDataStream &s, QFlags< Enum > e)
std::enable_if_t< std::conjunction_v< QTypeTraits::has_istream_operator_container< QDataStream, Container, T >... >, QDataStream & > QDataStreamIfHasIStreamOperatorsContainer
static ControlElement< T > * ptr(QWidget *widget)
GLsizei const GLfloat * v
[13]
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLenum GLint GLint * precision
unsigned long long quint64
QT_BEGIN_NAMESPACE typedef signed char qint8
QFuture< QSet< QChar > > set
[10]