Heart 1.3.842.34c2ab5
Heart is base back end library for your c++ Qt projects.
QH::StreamBase Class Referenceabstract

The StreamBase class add support streaming data for all children classes. For correctly working all serializations functions you need to override fromStream and toStream methods. All implementations of overridden method should be contains a invoke of method of base class. More...

#include <streambase.h>

Inheritance diagram for QH::StreamBase:
Inheritance graph
Collaboration diagram for QH::StreamBase:
Collaboration graph

Public Member Functions

 StreamBase ()
 
virtual ~StreamBase ()
 
bool fromBytes (const QByteArray &data)
 fromBytes This method provide initialization of object from byte array.
 
QByteArray toBytes () const
 toBytes This method convert a current object to bytes array.
 
bool fromBase64 (const QString &data)
 fromBase64 This method provide initialization of object from the base64 string.
 
bool fromBase64 (const QByteArray &data)
 fromBase64 This method provide initialization of object from the base64 string.
 
QByteArray toBase64 () const
 toBase64 This method convert a current object to the base64 string.
 
template<class T >
T & copy (const StreamBase &right)
 copy This is base copy method for all StreamBase structures. Default implementation it is copy from byteArray.
 
template<class T >
bool compare (const T &right)
 compare This method compare array signatures of this and right objects.
 

Protected Member Functions

virtual int parsingVersion () const
 parsingVersion this method return parsing version of Qt. By Default is 0 (last available parsing). see https://doc.qt.io/qt-6/qdatastream.html#Version-enum
 
virtual QDataStream & fromStream (QDataStream &stream)=0
 fromStream This method should be read all bytes from the stream object and full the current object.
 
virtual QDataStream & toStream (QDataStream &stream) const =0
 fromStream This method should be write all members of the current object to the stream object.
 
virtual unsigned int typeId () const
 typeId This method return id of type.
 

Friends

HEARTSHARED_EXPORT friend QDataStream & operator<< (QDataStream &stream, const StreamBase &obj)
 This is wrapper over toStream.
 
HEARTSHARED_EXPORT friend QDataStream & operator>> (QDataStream &stream, StreamBase &obj)
 This is wraper over fromStream. For see more information see toStream method.
 

Detailed Description

The StreamBase class add support streaming data for all children classes. For correctly working all serializations functions you need to override fromStream and toStream methods. All implementations of overridden method should be contains a invoke of method of base class.

Definition at line 27 of file streambase.h.

Constructor & Destructor Documentation

◆ StreamBase()

QH::StreamBase::StreamBase ( )
default

◆ ~StreamBase()

QH::StreamBase::~StreamBase ( )
virtualdefault

Member Function Documentation

◆ compare()

template<class T >
bool QH::StreamBase::compare ( const T &  right)
inline

compare This method compare array signatures of this and right objects.

Parameters
rightThis is comparable object.
Returns
true if right object is some of this.
Warning
This method invoke the toBytes method 2 time and compare bigData arrays. So works is very slowly.

Definition at line 105 of file streambase.h.

◆ copy()

template<class T >
T & QH::StreamBase::copy ( const StreamBase right)
inline

copy This is base copy method for all StreamBase structures. Default implementation it is copy from byteArray.

Parameters
rightinput data object.
Returns
return value link to object.
Warning
This method invoke the toBytes method 2 time and compare bigData arrays. So works is very slowly.

Definition at line 90 of file streambase.h.

Here is the call graph for this function:

◆ fromBase64() [1/2]

bool QH::StreamBase::fromBase64 ( const QByteArray &  data)

fromBase64 This method provide initialization of object from the base64 string.

Parameters
dataThis is input base64 data.
Returns
true if all good else false.

Definition at line 51 of file streambase.cpp.

Here is the call graph for this function:

◆ fromBase64() [2/2]

bool QH::StreamBase::fromBase64 ( const QString &  data)

fromBase64 This method provide initialization of object from the base64 string.

Parameters
dataThis is input base64 data.
Note
converting from the QString is slowly instand of QByteArray, so use the StreamBase::fromBase64(const QByteArray &data) method.
Returns
true if all good else false.

Definition at line 47 of file streambase.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fromBytes()

bool QH::StreamBase::fromBytes ( const QByteArray &  data)

fromBytes This method provide initialization of object from byte array.

Returns
true if all good.

Definition at line 21 of file streambase.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fromStream()

virtual QDataStream & QH::StreamBase::fromStream ( QDataStream &  stream)
protectedpure virtual

fromStream This method should be read all bytes from the stream object and full the current object.

Note
The implementation of this method should be invoke a method of base class.
Parameters
streamThis is Qt stream object.
Returns
Qt stream object.

Examle of base simple implementation:

QDataStream &ExampleClass::fromStream(QDataStream &stream) const {
stream >> exampleMember;
return stream;
}
virtual QDataStream & toStream(QDataStream &stream) const =0
fromStream This method should be write all members of the current object to the stream object.

Implemented in QH::AccessToken, QH::DbAddress, QH::PKG::APIVersion, QH::PKG::VersionIsReceived, QH::DistVersion, QH::Package, QH::PKG::BadRequest, QH::PKG::BigDataBase, QH::PKG::BigDataHeader, QH::PKG::BigDataPart, QH::PKG::BigDataRequest, QH::PKG::BigDataWraper, QH::PKG::CloseConnection, QH::PKG::DataPack< Package >, QH::PKG::DBObject, QH::PKG::DBObjectsRequest< T >, QH::PKG::DBObjectsRequestWithStream< T >, QH::PKG::DeleteObject, QH::PKG::Ping, QH::StreamMultiversion, QH::PKG::MultiversionData, and QH::PKG::UniversalData.

Here is the caller graph for this function:

◆ parsingVersion()

int QH::StreamBase::parsingVersion ( ) const
protectedvirtual

parsingVersion this method return parsing version of Qt. By Default is 0 (last available parsing). see https://doc.qt.io/qt-6/qdatastream.html#Version-enum

Returns
version number.

Definition at line 59 of file streambase.cpp.

Here is the caller graph for this function:

◆ toBase64()

QByteArray QH::StreamBase::toBase64 ( ) const

toBase64 This method convert a current object to the base64 string.

Returns
base64 string of this object.

Definition at line 55 of file streambase.cpp.

Here is the call graph for this function:

◆ toBytes()

QByteArray QH::StreamBase::toBytes ( ) const

toBytes This method convert a current object to bytes array.

Returns
bytes array for package.

Definition at line 35 of file streambase.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ toStream()

virtual QDataStream & QH::StreamBase::toStream ( QDataStream &  stream) const
protectedpure virtual

fromStream This method should be write all members of the current object to the stream object.

Note
The implementation of this method should be invoke a method of base class.
Parameters
streamThis is Qt stream object.
Returns
Qt stream object.

Examle of base simple implementation:

QDataStream &ExampleClass::toStream(QDataStream &stream) const {
stream << exampleMember;
return stream;
}

Implemented in QH::AccessToken, QH::DbAddress, QH::PKG::APIVersion, QH::PKG::VersionIsReceived, QH::DistVersion, QH::Package, QH::PKG::BadRequest, QH::PKG::BigDataBase, QH::PKG::BigDataHeader, QH::PKG::BigDataPart, QH::PKG::BigDataRequest, QH::PKG::BigDataWraper, QH::PKG::CloseConnection, QH::PKG::DataPack< Package >, QH::PKG::DBObject, QH::PKG::DBObjectsRequest< T >, QH::PKG::DBObjectsRequestWithStream< T >, QH::PKG::DeleteObject, QH::PKG::Ping, QH::StreamMultiversion, QH::PKG::MultiversionData, and QH::PKG::UniversalData.

Here is the caller graph for this function:

◆ typeId()

unsigned int QH::StreamBase::typeId ( ) const
protectedvirtual

typeId This method return id of type.

Returns
integer hash of type.

Definition at line 63 of file streambase.cpp.

Friends And Related Symbol Documentation

◆ operator<<

HEARTSHARED_EXPORT friend QDataStream & operator<< ( QDataStream &  stream,
const StreamBase obj 
)
friend

This is wrapper over toStream.

Parameters
streamThis is qt data stream object.
objThis is serialized object.
Returns
stream object.

Definition at line 67 of file streambase.cpp.

◆ operator>>

HEARTSHARED_EXPORT friend QDataStream & operator>> ( QDataStream &  stream,
StreamBase obj 
)
friend

This is wraper over fromStream. For see more information see toStream method.

Parameters
streamThis is qt data stream object.
objThis is serialized object.
Returns
stream object.

Definition at line 71 of file streambase.cpp.


The documentation for this class was generated from the following files: