TrinityCore
WorldPackets::String< MaxBytesWithoutNullTerminator, Validators > Class Template Reference

#include <PacketUtilities.h>

Public Member Functions

bool empty () const
 
std::size_t length () const
 
char const * c_str () const
 
 operator std::string_view () const
 
 operator std::string & ()
 
 operator std::string const & () const
 
std::string && Move ()
 
Stringoperator= (std::string const &value)
 
Stringoperator= (std::string &&value)
 

Private Types

using ValidatorList = std::conditional_t<!Trinity::has_type< Strings::RawBytes, std::tuple< Validators... > >::value, std::tuple< Strings::ByteSize< MaxBytesWithoutNullTerminator >, Strings::Utf8, Validators... >, std::tuple< Strings::ByteSize< MaxBytesWithoutNullTerminator >, Validators... > >
 

Static Private Member Functions

static bool Validate (std::string const &value)
 
template<std::size_t... indexes>
static bool ValidateNth (std::string const &value, std::index_sequence< indexes... >)
 

Private Attributes

std::string _storage
 

Friends

ByteBufferoperator>> (ByteBuffer &data, String &value)
 

Detailed Description

template<std::size_t MaxBytesWithoutNullTerminator, typename... Validators>
class WorldPackets::String< MaxBytesWithoutNullTerminator, Validators >

Utility class for automated prevention of invalid strings in client packets

Definition at line 73 of file PacketUtilities.h.

Member Typedef Documentation

◆ ValidatorList

template<std::size_t MaxBytesWithoutNullTerminator, typename... Validators>
using WorldPackets::String< MaxBytesWithoutNullTerminator, Validators >::ValidatorList = std::conditional_t<!Trinity::has_type<Strings::RawBytes, std::tuple<Validators...> >::value, std::tuple<Strings::ByteSize<MaxBytesWithoutNullTerminator>, Strings::Utf8, Validators...>, std::tuple<Strings::ByteSize<MaxBytesWithoutNullTerminator>, Validators...> >
private

Definition at line 75 of file PacketUtilities.h.

Member Function Documentation

◆ c_str()

template<std::size_t MaxBytesWithoutNullTerminator, typename... Validators>
char const * WorldPackets::String< MaxBytesWithoutNullTerminator, Validators >::c_str ( ) const
inline

Definition at line 82 of file PacketUtilities.h.

◆ empty()

template<std::size_t MaxBytesWithoutNullTerminator, typename... Validators>
bool WorldPackets::String< MaxBytesWithoutNullTerminator, Validators >::empty ( ) const
inline

Definition at line 80 of file PacketUtilities.h.

+ Here is the caller graph for this function:

◆ length()

template<std::size_t MaxBytesWithoutNullTerminator, typename... Validators>
std::size_t WorldPackets::String< MaxBytesWithoutNullTerminator, Validators >::length ( ) const
inline

Definition at line 81 of file PacketUtilities.h.

+ Here is the caller graph for this function:

◆ Move()

template<std::size_t MaxBytesWithoutNullTerminator, typename... Validators>
std::string && WorldPackets::String< MaxBytesWithoutNullTerminator, Validators >::Move ( )
inline

Definition at line 88 of file PacketUtilities.h.

+ Here is the caller graph for this function:

◆ operator std::string &()

template<std::size_t MaxBytesWithoutNullTerminator, typename... Validators>
WorldPackets::String< MaxBytesWithoutNullTerminator, Validators >::operator std::string & ( )
inline

Definition at line 85 of file PacketUtilities.h.

◆ operator std::string const &()

template<std::size_t MaxBytesWithoutNullTerminator, typename... Validators>
WorldPackets::String< MaxBytesWithoutNullTerminator, Validators >::operator std::string const & ( ) const
inline

Definition at line 86 of file PacketUtilities.h.

◆ operator std::string_view()

template<std::size_t MaxBytesWithoutNullTerminator, typename... Validators>
WorldPackets::String< MaxBytesWithoutNullTerminator, Validators >::operator std::string_view ( ) const
inline

Definition at line 84 of file PacketUtilities.h.

◆ operator=() [1/2]

template<std::size_t MaxBytesWithoutNullTerminator, typename... Validators>
String & WorldPackets::String< MaxBytesWithoutNullTerminator, Validators >::operator= ( std::string &&  value)
inline

Definition at line 105 of file PacketUtilities.h.

+ Here is the call graph for this function:

◆ operator=() [2/2]

template<std::size_t MaxBytesWithoutNullTerminator, typename... Validators>
String & WorldPackets::String< MaxBytesWithoutNullTerminator, Validators >::operator= ( std::string const &  value)
inline

Definition at line 98 of file PacketUtilities.h.

+ Here is the call graph for this function:

◆ Validate()

template<std::size_t MaxBytesWithoutNullTerminator, typename... Validators>
static bool WorldPackets::String< MaxBytesWithoutNullTerminator, Validators >::Validate ( std::string const &  value)
inlinestaticprivate

Definition at line 113 of file PacketUtilities.h.

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

◆ ValidateNth()

template<std::size_t MaxBytesWithoutNullTerminator, typename... Validators>
template<std::size_t... indexes>
static bool WorldPackets::String< MaxBytesWithoutNullTerminator, Validators >::ValidateNth ( std::string const &  value,
std::index_sequence< indexes... >   
)
inlinestaticprivate

Definition at line 119 of file PacketUtilities.h.

+ Here is the caller graph for this function:

Friends And Related Function Documentation

◆ operator>>

template<std::size_t MaxBytesWithoutNullTerminator, typename... Validators>
ByteBuffer & operator>> ( ByteBuffer data,
String< MaxBytesWithoutNullTerminator, Validators > &  value 
)
friend

Definition at line 90 of file PacketUtilities.h.

Member Data Documentation

◆ _storage

template<std::size_t MaxBytesWithoutNullTerminator, typename... Validators>
std::string WorldPackets::String< MaxBytesWithoutNullTerminator, Validators >::_storage
private

Definition at line 124 of file PacketUtilities.h.


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