PIP 6.1.0
Platform-Independent Primitives
Loading...
Searching...
No Matches
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.
#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; \
}
String class.
Definition pistring.h:42
Namespace containing unit metadata and conversion helpers.
Definition piunits_base.h:113

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.