COMMS
Template library intended to help with implementation of communication protocols.
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
access.h File Reference

Contains functions for raw data access / (de)serialization. More...

#include <cstddef>
#include <cstdint>
#include <type_traits>
#include <limits>
#include <iterator>
#include "comms/CompileControl.h"
#include "comms/util/type_traits.h"
#include "comms/details/tag.h"

Go to the source code of this file.

Classes

struct  comms::util::traits::endian::Big
 Empty class used in traits to indicate Big Endian. More...
 
struct  comms::util::traits::endian::Little
 Empty class used in traits to indicate Little Endian. More...
 

Namespaces

namespace  comms
 Main namespace for all classes / functions of COMMS library.
 
namespace  comms::util
 Namespace for various utility classes and/or functions used by COMMS library.
 
namespace  comms::util::traits
 Namespace for various utilities related trait classes.
 
namespace  comms::util::traits::endian
 Namespace for utilities related endian definition trait classes.
 

Functions

template<typename T , std::size_t TSize, typename TIter >
comms::util::readBig (TIter &iter)
 Read part of integral value from the input area using big endian notation.
 
template<typename T , typename TIter >
comms::util::readBig (TIter &iter)
 Read integral value from the input area using big endian notation.
 
template<typename T , typename TIter >
comms::util::readBig (TIter &iter, std::size_t size)
 Read integral value from the input area using big endian notation.
 
template<typename T , typename TIter >
comms::util::readData (TIter &iter, const traits::endian::Big &endian)
 Same as readBig<T, TIter>()
 
template<typename T , std::size_t TSize, typename TIter >
comms::util::readData (TIter &iter, const traits::endian::Big &endian)
 Same as readBig<T, TSize, TIter>()
 
template<typename T , typename TIter >
comms::util::readData (TIter &iter, const traits::endian::Little &endian)
 Same as readLittle<T, TIter>()
 
template<typename T , std::size_t TSize, typename TIter >
comms::util::readData (TIter &iter, const traits::endian::Little &endian)
 Same as readData<T, TSize, TIter>()
 
template<typename T , typename TIter >
comms::util::readData (TIter &iter, std::size_t size, const traits::endian::Big &endian)
 Same as readBig<T, TIter>()
 
template<typename T , typename TIter >
comms::util::readData (TIter &iter, std::size_t size, const traits::endian::Little &endian)
 Same as readBig<T, TIter>()
 
template<typename T , std::size_t TSize, typename TIter >
comms::util::readLittle (TIter &iter)
 Read part of integral value from the input area using little endian notation.
 
template<typename T , typename TIter >
comms::util::readLittle (TIter &iter)
 Read integral value from the input area using little endian notation.
 
template<typename T , typename TIter >
comms::util::readLittle (TIter &iter, std::size_t size)
 Read integral value from the input area using little endian notation.
 
template<typename T , typename TIter >
void comms::util::writeBig (T value, std::size_t size, TIter &iter)
 Write part of integral value into the output area using big endian notation.
 
template<std::size_t TSize, typename T , typename TIter >
void comms::util::writeBig (T value, TIter &iter)
 Write part of integral value into the output area using big endian notation.
 
template<typename T , typename TIter >
void comms::util::writeBig (T value, TIter &iter)
 Write integral value into the output area using big endian notation.
 
template<typename T , typename TIter >
void comms::util::writeData (T value, std::size_t size, TIter &iter, const traits::endian::Big &endian)
 Same as writeBig<T, TIter>()
 
template<typename T , typename TIter >
void comms::util::writeData (T value, std::size_t size, TIter &iter, const traits::endian::Little &endian)
 Same as writeLittle<T, TIter>()
 
template<typename T , typename TIter >
void comms::util::writeData (T value, TIter &iter, const traits::endian::Big &endian)
 Same as writeBig<T, TIter>()
 
template<std::size_t TSize, typename T , typename TIter >
void comms::util::writeData (T value, TIter &iter, const traits::endian::Big &endian)
 Same as writeBig<TSize, T, TIter>()
 
template<typename T , typename TIter >
void comms::util::writeData (T value, TIter &iter, const traits::endian::Little &endian)
 Same as writeLittle<T, TIter>()
 
template<std::size_t TSize, typename T , typename TIter >
void comms::util::writeData (T value, TIter &iter, const traits::endian::Little &endian)
 Same as writeLittle<TSize, T, TIter>()
 
template<typename T , typename TIter >
void comms::util::writeLittle (T value, std::size_t size, TIter &iter)
 Write part of integral value into the output area using little endian notation.
 
template<std::size_t TSize, typename T , typename TIter >
void comms::util::writeLittle (T value, TIter &iter)
 Write part of integral value into the output area using little endian notation.
 
template<typename T , typename TIter >
void comms::util::writeLittle (T value, TIter &iter)
 Write integral value into the output area using big endian notation.
 

Detailed Description

Contains functions for raw data access / (de)serialization.