You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
1.9 KiB
C++
71 lines
1.9 KiB
C++
#ifndef NBTMODIFIER_NBT_PAYLOAD_IPAYLOAD_H
|
|
#define NBTMODIFIER_NBT_PAYLOAD_IPAYLOAD_H
|
|
#define NBTMODIFIER_NBT_PAYLOAD_IPAYLOAD_H
|
|
|
|
#include <QtGlobal>
|
|
|
|
class QDataStream;
|
|
|
|
namespace NBT {
|
|
/**
|
|
* Namespace for all NBT payloads
|
|
*/
|
|
namespace Payload {
|
|
/**
|
|
* A NBT payload interface
|
|
*/
|
|
class IPayload {
|
|
public:
|
|
/**
|
|
* When a payload is destroyed
|
|
*/
|
|
virtual inline ~IPayload () {};
|
|
|
|
/**
|
|
* The NBT ID identifying the payload
|
|
*
|
|
* @return
|
|
*/
|
|
virtual quint8 const ID () const = 0;
|
|
|
|
/**
|
|
* Read a payload from a data stream
|
|
*
|
|
* @param stream The data stream
|
|
*/
|
|
virtual void readFromData (QDataStream &stream) = 0;
|
|
/**
|
|
* Write a payload to a data stream
|
|
*
|
|
* @param stream The data stream
|
|
*/
|
|
virtual void writeToData (QDataStream &stream) const = 0;
|
|
|
|
/**
|
|
* Convenient operator to read a payload from a data stream
|
|
*
|
|
* @param stream The data stream
|
|
* @param payload The payload
|
|
*
|
|
* @return The data stream (allow call chaining)
|
|
*
|
|
* @see readFromData
|
|
*/
|
|
friend QDataStream &operator >> (QDataStream &stream, IPayload &payload);
|
|
/**
|
|
* Convenient operator to write a payload to a data stream
|
|
*
|
|
* @param stream The data stream
|
|
* @param payload The payload
|
|
*
|
|
* @return The data stream (allow call chaining)
|
|
*
|
|
* @see writeToData
|
|
*/
|
|
friend QDataStream &operator << (QDataStream &stream, IPayload const &payload);
|
|
};
|
|
}
|
|
}
|
|
|
|
#endif //NBTMODIFIER_NBT_PAYLOAD_IPAYLOAD_H
|