Stellarium  HEAD
Public Member Functions | Static Public Member Functions | Static Protected Member Functions
SyncProtocol::SyncMessage Class Referenceabstract

Base interface for the messages themselves, allowing to serialize/deserialize them. More...

#include <SyncProtocol.hpp>

Public Member Functions

virtual SyncProtocol::SyncMessageType getMessageType () const =0
 Subclasses must return the message type this message represents.
 
qint64 createFullMessage (QByteArray &target) const
 Writes a full message (with header) to the specified byte array. More...
 
virtual void serialize (QDataStream &stream) const
 Subclasses should override this to serialize their contents to the data stream. More...
 
virtual bool deserialize (QDataStream &stream, SyncProtocol::tPayloadSize dataSize)
 Subclasses should override this to load their contents from the data stream. More...
 
virtual QString toString () const
 Subclasses can override this to provide proper debug output. More...
 

Static Public Member Functions

static QString toString (SyncMessageType type)
 Print enum name for SyncMessageType type.
 

Static Protected Member Functions

static void writeString (QDataStream &stream, const QString &str)
 
static QString readString (QDataStream &stream)
 

Detailed Description

Base interface for the messages themselves, allowing to serialize/deserialize them.

Member Function Documentation

◆ createFullMessage()

qint64 SyncProtocol::SyncMessage::createFullMessage ( QByteArray &  target) const

Writes a full message (with header) to the specified byte array.

Returns the total message size. If zero, the payload is too large for a SyncMessage.

◆ deserialize()

virtual bool SyncProtocol::SyncMessage::deserialize ( QDataStream &  stream,
SyncProtocol::tPayloadSize  dataSize 
)
virtual

Subclasses should override this to load their contents from the data stream.

The default implementation expects a zero dataSize, and reads nothing.

Reimplemented in SyncProtocol::View, SyncProtocol::StelPropertyUpdate, SyncProtocol::Selection, SyncProtocol::Location, SyncProtocol::Time, SyncProtocol::ClientChallengeResponse, SyncProtocol::ServerChallenge, and SyncProtocol::ErrorMessage.

◆ serialize()

virtual void SyncProtocol::SyncMessage::serialize ( QDataStream &  stream) const
virtual

Subclasses should override this to serialize their contents to the data stream.

The default implementation writes nothing.

Reimplemented in SyncProtocol::View, SyncProtocol::StelPropertyUpdate, SyncProtocol::Selection, SyncProtocol::Location, SyncProtocol::Time, SyncProtocol::ClientChallengeResponse, SyncProtocol::ServerChallenge, and SyncProtocol::ErrorMessage.

◆ toString()

virtual QString SyncProtocol::SyncMessage::toString ( ) const
virtual

Subclasses can override this to provide proper debug output.

The default just prints the message type.

Reimplemented in SyncProtocol::StelPropertyUpdate, and SyncProtocol::Selection.