fastcgi++
A C++ FastCGI/Web API
Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
Fastcgipp::Protocol::BigEndian< T > Class Template Reference

Allows raw storage of types in big endian format. More...

#include <fastcgi++/protocol.hpp>

Public Member Functions

BigEndianoperator= (T x)
 
 BigEndian (T x)
 
constexpr BigEndian ()
 
 operator T () const
 

Static Public Member Functions

static T read (const unsigned char *source)
 Static function for reading the value out of a data array. More...
 
static T read (const char *source)
 Simply casts char to unsigned char. More...
 

Private Types

typedef Unsigned< size >::Type BaseType
 Underlying unsigned integral type. More...
 

Private Member Functions

void set (T x)
 Set the internal data to the passed parameter. More...
 

Private Attributes

unsigned char m_data [size]
 The raw data of the big endian integer. More...
 

Static Private Attributes

static const size_t size = sizeof(T)
 

Detailed Description

template<typename T>
class Fastcgipp::Protocol::BigEndian< T >

Allows raw storage of types in big endian format.

This templated class allows any integral based (enumerations included) type to be stored in big endian format but maintain type compatibility.

Template Parameters
TType to emulate. Must be either an integral type or an enumeration who's underlying type is integral.
Date
May 10, 2017
Author
Eddie Carle <eddie.nosp@m.@isa.nosp@m.tec.c.nosp@m.a>

Definition at line 205 of file protocol.hpp.

Member Typedef Documentation

◆ BaseType

template<typename T>
typedef Unsigned<size>::Type Fastcgipp::Protocol::BigEndian< T >::BaseType
private

Underlying unsigned integral type.

Definition at line 210 of file protocol.hpp.

Constructor & Destructor Documentation

◆ BigEndian() [1/2]

template<typename T>
Fastcgipp::Protocol::BigEndian< T >::BigEndian ( x)
inline

Definition at line 239 of file protocol.hpp.

◆ BigEndian() [2/2]

template<typename T>
constexpr Fastcgipp::Protocol::BigEndian< T >::BigEndian ( )
inline

Definition at line 244 of file protocol.hpp.

Member Function Documentation

◆ operator T()

template<typename T>
Fastcgipp::Protocol::BigEndian< T >::operator T ( ) const
inline

Definition at line 247 of file protocol.hpp.

◆ operator=()

template<typename T>
BigEndian& Fastcgipp::Protocol::BigEndian< T >::operator= ( x)
inline

Definition at line 233 of file protocol.hpp.

◆ read() [1/2]

template<typename T>
static T Fastcgipp::Protocol::BigEndian< T >::read ( const unsigned char *  source)
inlinestatic

Static function for reading the value out of a data array.

This will read the value out of an unsigned char array in big endian format and cast it into type T.

Parameters
[in]sourcePointer to start of data. This data should of course be at minimum size.

Definition at line 260 of file protocol.hpp.

Referenced by Fastcgipp::Protocol::BigEndian< uint16_t >::operator uint16_t(), and Fastcgipp::Protocol::BigEndian< uint16_t >::read().

◆ read() [2/2]

template<typename T>
static T Fastcgipp::Protocol::BigEndian< T >::read ( const char *  source)
inlinestatic

Simply casts char to unsigned char.

Definition at line 277 of file protocol.hpp.

◆ set()

template<typename T>
void Fastcgipp::Protocol::BigEndian< T >::set ( x)
inlineprivate

Set the internal data to the passed parameter.

Definition at line 219 of file protocol.hpp.

Member Data Documentation

◆ m_data

template<typename T>
unsigned char Fastcgipp::Protocol::BigEndian< T >::m_data[size]
private

The raw data of the big endian integer.

Definition at line 216 of file protocol.hpp.

Referenced by Fastcgipp::Protocol::BigEndian< uint16_t >::operator uint16_t(), and Fastcgipp::Protocol::BigEndian< uint16_t >::set().

◆ size

template<typename T>
const size_t Fastcgipp::Protocol::BigEndian< T >::size = sizeof(T)
staticprivate

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