COMMS
Template library intended to help with implementation of communication protocols.
Classes | Namespaces | Typedefs
traits.h File Reference

This file contains all the classes necessary to properly define message traits. More...

#include <ratio>
#include "util/access.h"

Go to the source code of this file.

Classes

struct  comms::traits::dispatch::LinearSwitch
 Tag class used to indicate linear switch dispatch. More...
 
struct  comms::traits::dispatch::Polymorphic
 Tag class used to indicate polymorphic dispatch. More...
 
struct  comms::traits::dispatch::StaticBinSearch
 Tag class used to indicate static binary search dispatch. More...
 
struct  comms::traits::units::Angle
 Tag class used to indicate angle value. More...
 
struct  comms::traits::units::Current
 Tag class used to indicate electrical current value. More...
 
struct  comms::traits::units::Distance
 Tag class used to indicate distance value. More...
 
struct  comms::traits::units::Frequency
 Tag class used to indicate frequency value. More...
 
struct  comms::traits::units::Memory
 Tag class used to indicate memory size value. More...
 
struct  comms::traits::units::Speed
 Tag class used to indicate speed value. More...
 
struct  comms::traits::units::Time
 Tag class used to indicate time value. More...
 
struct  comms::traits::units::Voltage
 Tag class used to indicate electrical voltage value. More...
 

Namespaces

 comms
 Main namespace for all classes / functions of COMMS library.
 
 comms::traits
 Namespace for various traits tag classes.
 
 comms::traits::dispatch
 Namespace for various traits tag classes used in dispatch operations.
 
 comms::traits::endian
 Namespace for traits tag classes used to specify serialisation endian.
 
 comms::traits::units
 Namespace for various traits tag classes used in units conversion operations.
 

Typedefs

using comms::traits::units::AmpsRatio = std::ratio< 1, 1 >
 Ratio for amperes.
 
using comms::traits::endian::Big = util::traits::endian::Big
 Empty class used in traits to indicate Big Endian.
 
using comms::traits::units::BytesRatio = std::ratio< 1, 1 >
 Ratio for bytes.
 
using comms::traits::units::CentimetersPerSecondRatio = typename std::ratio_divide< CentimetersRatio, SecondsRatio >::type
 Ratio for centimeters / second.
 
using comms::traits::units::CentimetersRatio = std::centi
 Ratio for centimeters.
 
using comms::traits::units::DaysRatio = std::ratio< 24L *60 *60 >
 Ratio for days.
 
using comms::traits::units::DegreesRatio = std::ratio< 1, 1 >
 Ratio for degrees.
 
using comms::traits::units::GigabytesRatio = std::ratio< 1024ULL *1024 *1024, 1 >
 Ratio for gigabytes.
 
using comms::traits::units::GigaHzRatio = std::giga
 Ratio for gigahertz.
 
using comms::traits::units::HoursRatio = std::ratio< 60 *60 >
 Ratio for hours.
 
using comms::traits::units::HzRatio = std::ratio< 1, 1 >
 Ratio for hertz.
 
using comms::traits::units::KiloampsRatio = std::kilo
 Ratio for kiloamperes.
 
using comms::traits::units::KilobytesRatio = std::ratio< 1024, 1 >
 Ratio for kilobytes.
 
using comms::traits::units::KiloHzRatio = std::kilo
 Ratio for kilohertz.
 
using comms::traits::units::KilometersPerHourRatio = typename std::ratio_divide< KilometersRatio, HoursRatio >::type
 Ratio for kilometers / hour.
 
using comms::traits::units::KilometersPerSecondRatio = typename std::ratio_divide< KilometersRatio, SecondsRatio >::type
 Ratio for kilometers / second.
 
using comms::traits::units::KilometersRatio = std::kilo
 Ratio for kilometers.
 
using comms::traits::units::KilovoltsRatio = std::kilo
 Ratio for kilovolts.
 
using comms::traits::endian::Little = util::traits::endian::Little
 Empty class used in traits to indicate Little Endian.
 
using comms::traits::units::MegabytesRatio = std::ratio< 1024UL *1024, 1 >
 Ratio for megabytes.
 
using comms::traits::units::MegaHzRatio = std::mega
 Ratio for megahertz.
 
using comms::traits::units::MetersPerSecondRatio = typename std::ratio_divide< MetersRatio, SecondsRatio >::type
 Ratio for meters / second.
 
using comms::traits::units::MetersRatio = std::ratio< 1, 1 >
 Ratio for meters.
 
using comms::traits::units::MicroampsRatio = std::micro
 Ratio for microamperes.
 
using comms::traits::units::MicrometersPerSecondRatio = typename std::ratio_divide< MicrometersRatio, SecondsRatio >::type
 Ratio for micrometers / second.
 
using comms::traits::units::MicrometersRatio = std::micro
 Ratio for micrometers.
 
using comms::traits::units::MicrosecondsRatio = std::micro
 Ratio for microseconds.
 
using comms::traits::units::MicrovoltsRatio = std::micro
 Ratio for microvolts.
 
using comms::traits::units::MilliampsRatio = std::milli
 Ratio for milliamperes.
 
using comms::traits::units::MillimetersPerSecondRatio = typename std::ratio_divide< MillimetersRatio, SecondsRatio >::type
 Ratio for millimeters / second.
 
using comms::traits::units::MillimetersRatio = std::milli
 Ratio for millimeters.
 
using comms::traits::units::MillisecondsRatio = std::milli
 Ratio for milliseconds.
 
using comms::traits::units::MillivoltsRatio = std::milli
 Ratio for millivolts.
 
using comms::traits::units::MinutesRatio = std::ratio< 60 >
 Ratio for minutes.
 
using comms::traits::units::NanoampsRatio = std::nano
 Ratio for nanoamperes.
 
using comms::traits::units::NanometersPerSecondRatio = typename std::ratio_divide< NanometersRatio, SecondsRatio >::type
 Ratio for nanometers / second.
 
using comms::traits::units::NanometersRatio = std::nano
 Ratio for nanometers.
 
using comms::traits::units::NanosecondsRatio = std::nano
 Ratio for nanoseconds.
 
using comms::traits::units::NanovoltsRatio = std::nano
 Ratio for nanovolts.
 
using comms::traits::units::RadiansRatio = std::ratio< 180, 1 >
 Ratio for radians.
 
using comms::traits::units::SecondsRatio = std::ratio< 1, 1 >
 Ratio for seconds.
 
using comms::traits::units::TerabytesRatio = std::ratio< 1024ULL *1024 *1024 *1024, 1 >
 Ratio for terabytes.
 
using comms::traits::units::VoltsRatio = std::ratio< 1, 1 >
 Ratio for volts.
 
using comms::traits::units::WeeksRatio = std::ratio< 7L *24 *60 *60 >
 Ratio for weeks.
 

Detailed Description

This file contains all the classes necessary to properly define message traits.