PIP 5.6.1
Platform-Independent Primitives
Classes | Namespaces | Macros | Enumerations | Functions
piunits_base.h File Reference

Shared unit conversion infrastructure. More...

#include "pitranslator.h"

Classes

class  PIUnits::Class::Internal
 Internal registry and base interfaces for unit families. More...
 
class  PIUnits::Class::Internal::ClassBase
 Base interface implemented by every unit family descriptor. More...
 
class  PIUnits::Class::Internal::Registrator< P >
 Helper that registers every type declared by unit family "P". More...
 

Namespaces

namespace  PIUnits
 Namespace containing unit metadata and conversion helpers.
 
namespace  PIUnits::Class
 Namespace containing unit family descriptors.
 

Macros

#define DECLARE_UNIT_CLASS_BEGIN(Name, StartIndex)
 Units base classes. More...
 
#define DECLARE_UNIT_CLASS_END(Name)
 Completes unit family class declaration and registers it globally.
 

Enumerations

enum  
 Common invalid unit type value.
 

Functions

PIString PIUnits::className (int type)
 Returns unit family name for type identifier "type".
 
PIString PIUnits::name (int type)
 Returns localized unit name for type identifier "type".
 
PIString PIUnits::unit (int type)
 Returns localized unit symbol for type identifier "type".
 
PIVector< Class::Internal::ClassBase * > PIUnits::allClasses ()
 Returns all registered unit family descriptors.
 

Detailed Description

Shared unit conversion infrastructure.

Macro Definition Documentation

◆ DECLARE_UNIT_CLASS_BEGIN

#define DECLARE_UNIT_CLASS_BEGIN (   Name,
  StartIndex 
)
Value:
namespace PIUnits { \
namespace Class { \
class PIP_EXPORT Name \
: public Internal::ClassBase \
, public Internal::Registrator<Name> { \
private: \
friend class Internal::Registrator<Name>; \
constexpr static int typeStart = StartIndex; \
PIString name(int type) const override; \
PIString unit(int type) const override; \
PIString valueToString(double v, char format, int prec) const override; \
double convert(double v, int from, int to) const override; \
bool supportPrefixes(int type) const override; \
bool supportPrefixesNon3(int type) const override; \
bool supportPrefixesGreater(int type) const override; \
bool supportPrefixesSmaller(int type) const override; \
\
public: \
PIString className() const override { return piTr(#Name, "PIUnits"); } \
uint classID() const override { \
static uint ret = PIStringAscii(#Name).hash(); \
return ret; \
}
Namespace containing unit metadata and conversion helpers.
Definition: piunits_base.h:111
PIString name(int type)
Returns localized unit name for type identifier "type".
Definition: piunits_base.cpp:36
PIString className(int type)
Returns unit family name for type identifier "type".
Definition: piunits_base.cpp:29
PIString unit(int type)
Returns localized unit symbol for type identifier "type".
Definition: piunits_base.cpp:43

Units base classes.

Unit conversions

Building with CMake

find_package(PIP REQUIRED)
target_link_libraries([target] PIP)
Common

These files provides unit conversion framework.

Authors

Ivan Pelipenko peri4.nosp@m.ko@y.nosp@m.andex.nosp@m..ru;

Starts declaration of a unit family class in namespace PIUnits::Class.