eolib-cpp 0.1.0-beta.7
Core C++ library for writing Endless Online applications
Loading...
Searching...
No Matches
eolib::protocol::net::server::CharacterReplyServerPacket Class Referencefinal

Reply to client Character-family packets. More...

#include <eolib/protocol/net/server/packets.hpp>

Inherits eolib::protocol::net::Packet.

Classes

class  ReplyCodeDataExists
 Data associated with reply_code value Exists. More...
class  ReplyCodeDataFull
 Data associated with reply_code value Full. More...
class  ReplyCodeDataFull3
 Data associated with reply_code value Full3. More...
class  ReplyCodeDataNotApproved
 Data associated with reply_code value NotApproved. More...
class  ReplyCodeDataOk
 Data associated with reply_code value Ok. More...
class  ReplyCodeDataDeleted
 Data associated with reply_code value Deleted. More...
class  ReplyCodeDataDefault
 Data associated with reply_code default. More...

Public Types

using ReplyCodeData = std::variant<std::monostate, ReplyCodeDataExists, ReplyCodeDataFull, ReplyCodeDataFull3, ReplyCodeDataNotApproved, ReplyCodeDataOk, ReplyCodeDataDeleted, ReplyCodeDataDefault>
 Data associated with different values of the reply_code field.

Public Member Functions

const ReplyCodeDataExists * AsExists () const noexcept
 Gets the data associated with reply_code value Exists.
ReplyCodeDataExists * AsExists () noexcept
 Gets the data associated with reply_code value Exists.
const ReplyCodeDataFull * AsFull () const noexcept
 Gets the data associated with reply_code value Full.
ReplyCodeDataFull * AsFull () noexcept
 Gets the data associated with reply_code value Full.
const ReplyCodeDataFull3 * AsFull3 () const noexcept
 Gets the data associated with reply_code value Full3.
ReplyCodeDataFull3 * AsFull3 () noexcept
 Gets the data associated with reply_code value Full3.
const ReplyCodeDataNotApproved * AsNotApproved () const noexcept
 Gets the data associated with reply_code value NotApproved.
ReplyCodeDataNotApproved * AsNotApproved () noexcept
 Gets the data associated with reply_code value NotApproved.
const ReplyCodeDataOk * AsOk () const noexcept
 Gets the data associated with reply_code value Ok.
ReplyCodeDataOk * AsOk () noexcept
 Gets the data associated with reply_code value Ok.
const ReplyCodeDataDeleted * AsDeleted () const noexcept
 Gets the data associated with reply_code value Deleted.
ReplyCodeDataDeleted * AsDeleted () noexcept
 Gets the data associated with reply_code value Deleted.
const ReplyCodeDataDefault * AsReplyCodeDefault () const noexcept
 Gets the data associated with the default case of reply_code.
ReplyCodeDataDefault * AsReplyCodeDefault () noexcept
 Gets the data associated with the default case of reply_code.
PacketFamily Family () const noexcept override
 Gets the packet family associated with this packet.
PacketAction Action () const noexcept override
 Gets the packet action associated with this packet.
int ByteSize () const noexcept override
 Gets the size of the data that this object was deserialized from.
void Serialize (data::EoWriter &writer) const override
 Serializes this object to the provided writer.
void Deserialize (data::EoReader &reader) override
 Deserializes this object from the provided reader, replacing its current data.
std::string ToString () const override
 Gets a human-readable representation of this object, for debugging purposes.
bool operator== (const CharacterReplyServerPacket &other) const
 Compares this object with another for equality.
bool operator!= (const CharacterReplyServerPacket &other) const
 Compares this object with another for inequality.
Public Member Functions inherited from eolib::protocol::Serializable
virtual ~Serializable ()=default

Static Public Member Functions

static CharacterReplyServerPacket ForExists ()
 Creates a new CharacterReplyServerPacket with reply_code set to Exists.
static CharacterReplyServerPacket ForFull ()
 Creates a new CharacterReplyServerPacket with reply_code set to Full.
static CharacterReplyServerPacket ForFull3 ()
 Creates a new CharacterReplyServerPacket with reply_code set to Full3.
static CharacterReplyServerPacket ForNotApproved ()
 Creates a new CharacterReplyServerPacket with reply_code set to NotApproved.
static CharacterReplyServerPacket ForOk (ReplyCodeDataOk data)
 Creates a new CharacterReplyServerPacket with reply_code set to Ok.
static CharacterReplyServerPacket ForDeleted (ReplyCodeDataDeleted data)
 Creates a new CharacterReplyServerPacket with reply_code set to Deleted.
static CharacterReplyServerPacket ForReplyCodeDefault (CharacterReply code)
 Creates a new CharacterReplyServerPacket with reply_code set to code.

Public Attributes

CharacterReply reply_code {}
 Sometimes a CharacterReply code, sometimes a session ID for character creation.
ReplyCodeData reply_code_data {}
 Data associated with the reply_code field.

Static Public Attributes

static constexpr PacketFamily FAMILY = PacketFamily::Character
 The packet family associated with this packet.
static constexpr PacketAction ACTION = PacketAction::Reply
 The packet action associated with this packet.

Additional Inherited Members

Protected Member Functions inherited from eolib::protocol::Serializable
 Serializable ()=default
 Serializable (const Serializable &)=default
 Serializable (Serializable &&)=default
Serializable & operator= (const Serializable &)=default
Serializable & operator= (Serializable &&)=default

Detailed Description

Reply to client Character-family packets.

Member Typedef Documentation

◆ ReplyCodeData

Member Function Documentation

◆ AsExists() [1/2]

const ReplyCodeDataExists * eolib::protocol::net::server::CharacterReplyServerPacket::AsExists ( ) const
inlinenoexcept

Gets the data associated with reply_code value Exists.

Returns
the data, or nullptr if reply_code_data holds the data for a different value.

◆ AsExists() [2/2]

ReplyCodeDataExists * eolib::protocol::net::server::CharacterReplyServerPacket::AsExists ( )
inlinenoexcept

Gets the data associated with reply_code value Exists.

Returns
the data, or nullptr if reply_code_data holds the data for a different value.

◆ AsFull() [1/2]

const ReplyCodeDataFull * eolib::protocol::net::server::CharacterReplyServerPacket::AsFull ( ) const
inlinenoexcept

Gets the data associated with reply_code value Full.

Returns
the data, or nullptr if reply_code_data holds the data for a different value.

◆ AsFull() [2/2]

ReplyCodeDataFull * eolib::protocol::net::server::CharacterReplyServerPacket::AsFull ( )
inlinenoexcept

Gets the data associated with reply_code value Full.

Returns
the data, or nullptr if reply_code_data holds the data for a different value.

◆ AsFull3() [1/2]

const ReplyCodeDataFull3 * eolib::protocol::net::server::CharacterReplyServerPacket::AsFull3 ( ) const
inlinenoexcept

Gets the data associated with reply_code value Full3.

Returns
the data, or nullptr if reply_code_data holds the data for a different value.

◆ AsFull3() [2/2]

ReplyCodeDataFull3 * eolib::protocol::net::server::CharacterReplyServerPacket::AsFull3 ( )
inlinenoexcept

Gets the data associated with reply_code value Full3.

Returns
the data, or nullptr if reply_code_data holds the data for a different value.

◆ AsNotApproved() [1/2]

const ReplyCodeDataNotApproved * eolib::protocol::net::server::CharacterReplyServerPacket::AsNotApproved ( ) const
inlinenoexcept

Gets the data associated with reply_code value NotApproved.

Returns
the data, or nullptr if reply_code_data holds the data for a different value.

◆ AsNotApproved() [2/2]

ReplyCodeDataNotApproved * eolib::protocol::net::server::CharacterReplyServerPacket::AsNotApproved ( )
inlinenoexcept

Gets the data associated with reply_code value NotApproved.

Returns
the data, or nullptr if reply_code_data holds the data for a different value.

◆ AsOk() [1/2]

const ReplyCodeDataOk * eolib::protocol::net::server::CharacterReplyServerPacket::AsOk ( ) const
inlinenoexcept

Gets the data associated with reply_code value Ok.

Returns
the data, or nullptr if reply_code_data holds the data for a different value.

◆ AsOk() [2/2]

ReplyCodeDataOk * eolib::protocol::net::server::CharacterReplyServerPacket::AsOk ( )
inlinenoexcept

Gets the data associated with reply_code value Ok.

Returns
the data, or nullptr if reply_code_data holds the data for a different value.

◆ AsDeleted() [1/2]

const ReplyCodeDataDeleted * eolib::protocol::net::server::CharacterReplyServerPacket::AsDeleted ( ) const
inlinenoexcept

Gets the data associated with reply_code value Deleted.

Returns
the data, or nullptr if reply_code_data holds the data for a different value.

◆ AsDeleted() [2/2]

ReplyCodeDataDeleted * eolib::protocol::net::server::CharacterReplyServerPacket::AsDeleted ( )
inlinenoexcept

Gets the data associated with reply_code value Deleted.

Returns
the data, or nullptr if reply_code_data holds the data for a different value.

◆ AsReplyCodeDefault() [1/2]

const ReplyCodeDataDefault * eolib::protocol::net::server::CharacterReplyServerPacket::AsReplyCodeDefault ( ) const
inlinenoexcept

Gets the data associated with the default case of reply_code.

Returns
the data, or nullptr if reply_code_data holds the data for a different value.

◆ AsReplyCodeDefault() [2/2]

ReplyCodeDataDefault * eolib::protocol::net::server::CharacterReplyServerPacket::AsReplyCodeDefault ( )
inlinenoexcept

Gets the data associated with the default case of reply_code.

Returns
the data, or nullptr if reply_code_data holds the data for a different value.

◆ ForExists()

CharacterReplyServerPacket eolib::protocol::net::server::CharacterReplyServerPacket::ForExists ( )
static

Creates a new CharacterReplyServerPacket with reply_code set to Exists.

Returns
the created object.

◆ ForFull()

CharacterReplyServerPacket eolib::protocol::net::server::CharacterReplyServerPacket::ForFull ( )
static

Creates a new CharacterReplyServerPacket with reply_code set to Full.

Returns
the created object.

◆ ForFull3()

CharacterReplyServerPacket eolib::protocol::net::server::CharacterReplyServerPacket::ForFull3 ( )
static

Creates a new CharacterReplyServerPacket with reply_code set to Full3.

Returns
the created object.

◆ ForNotApproved()

CharacterReplyServerPacket eolib::protocol::net::server::CharacterReplyServerPacket::ForNotApproved ( )
static

Creates a new CharacterReplyServerPacket with reply_code set to NotApproved.

Returns
the created object.

◆ ForOk()

CharacterReplyServerPacket eolib::protocol::net::server::CharacterReplyServerPacket::ForOk ( ReplyCodeDataOk data)
static

Creates a new CharacterReplyServerPacket with reply_code set to Ok.

Parameters
datathe data associated with reply_code Ok.
Returns
the created object.

◆ ForDeleted()

CharacterReplyServerPacket eolib::protocol::net::server::CharacterReplyServerPacket::ForDeleted ( ReplyCodeDataDeleted data)
static

Creates a new CharacterReplyServerPacket with reply_code set to Deleted.

Parameters
datathe data associated with reply_code Deleted.
Returns
the created object.

◆ ForReplyCodeDefault()

CharacterReplyServerPacket eolib::protocol::net::server::CharacterReplyServerPacket::ForReplyCodeDefault ( CharacterReply code)
static

Creates a new CharacterReplyServerPacket with reply_code set to code.

Parameters
codethe value of reply_code, which must not be a value with its own case.
Returns
the created object.
Exceptions
std::invalid_argumentif code is a value with its own case.

◆ Family()

PacketFamily eolib::protocol::net::server::CharacterReplyServerPacket::Family ( ) const
inlineoverridevirtualnoexcept

Gets the packet family associated with this packet.

Returns
the packet family.

Implements eolib::protocol::net::Packet.

◆ Action()

PacketAction eolib::protocol::net::server::CharacterReplyServerPacket::Action ( ) const
inlineoverridevirtualnoexcept

Gets the packet action associated with this packet.

Returns
the packet action.

Implements eolib::protocol::net::Packet.

◆ ByteSize()

int eolib::protocol::net::server::CharacterReplyServerPacket::ByteSize ( ) const
overridevirtualnoexcept

Gets the size of the data that this object was deserialized from.

Returns
the deserialized size in bytes, or 0 for an object that was not deserialized.

Implements eolib::protocol::Serializable.

◆ Serialize()

void eolib::protocol::net::server::CharacterReplyServerPacket::Serialize ( data::EoWriter & writer) const
overridevirtual

Serializes this object to the provided writer.

Parameters
writerthe writer that the data will be written to.
Exceptions
SerializationErrorif the object's data is invalid for serialization.

Implements eolib::protocol::Serializable.

◆ Deserialize()

void eolib::protocol::net::server::CharacterReplyServerPacket::Deserialize ( data::EoReader & reader)
overridevirtual

Deserializes this object from the provided reader, replacing its current data.

Parameters
readerthe reader that the data will be read from.

Implements eolib::protocol::Serializable.

◆ ToString()

std::string eolib::protocol::net::server::CharacterReplyServerPacket::ToString ( ) const
overridevirtual

Gets a human-readable representation of this object, for debugging purposes.

Returns
the object's fields and values, as a string.

Implements eolib::protocol::Serializable.

◆ operator==()

bool eolib::protocol::net::server::CharacterReplyServerPacket::operator== ( const CharacterReplyServerPacket & other) const

Compares this object with another for equality.

The deserialized byte size is not compared.

Parameters
otherthe object to compare with.
Returns
true if all fields are equal, otherwise false.

◆ operator!=()

bool eolib::protocol::net::server::CharacterReplyServerPacket::operator!= ( const CharacterReplyServerPacket & other) const

Compares this object with another for inequality.

The deserialized byte size is not compared.

Parameters
otherthe object to compare with.
Returns
true if any field differs, otherwise false.

Member Data Documentation

◆ FAMILY

PacketFamily eolib::protocol::net::server::CharacterReplyServerPacket::FAMILY = PacketFamily::Character
staticconstexpr

The packet family associated with this packet.

◆ ACTION

PacketAction eolib::protocol::net::server::CharacterReplyServerPacket::ACTION = PacketAction::Reply
staticconstexpr

The packet action associated with this packet.

◆ reply_code

CharacterReply eolib::protocol::net::server::CharacterReplyServerPacket::reply_code {}

Sometimes a CharacterReply code, sometimes a session ID for character creation.

◆ reply_code_data

ReplyCodeData eolib::protocol::net::server::CharacterReplyServerPacket::reply_code_data {}

Data associated with the reply_code field.

When reply_code is 0, 7, 8 or 9: No effect in the official client