8#include "Arp/System/Core/BasicString.hxx" 
   10#ifndef ARP_USE_ARP_SYSTEM_CORE 
   16#ifndef ARP_INSIDE_ARP_H 
   17    #error Never include 'BasicVersion.hxx' directly, just include 'Arp.h' 
   45    typedef BasicString<char> String;
 
   49    BasicVersion(
void) = 
default;
 
   56    BasicVersion(
uint8 majorVersion, 
const String& state = String(), 
const String& name = String());
 
   64    BasicVersion(
uint8 majorVersion, 
uint8 minorVersion, 
const String& state = String(), 
const String& name = String());
 
   72    BasicVersion(
uint8 majorVersion, 
uint8 minorVersion, 
uint8 patchVersion, 
const String& state = String(), 
const String& name = String());
 
   81    BasicVersion(
uint8 majorVersion, 
uint8 minorVersion, 
uint8 patchVersion, 
uint32 buildVersion, 
const String& state = String(), 
const String& name = String());
 
   85    BasicVersion(
const BasicVersion& arg) = 
default;
 
   89    BasicVersion(BasicVersion&& arg) = 
default;
 
   94    BasicVersion& operator=(
const BasicVersion& arg) = 
default;
 
   97    virtual ~BasicVersion(
void) = 
default;
 
  104    static BasicVersion Parse(
const String& input);
 
  110    static bool TryParse(
const String& input, BasicVersion& result);
 
  116    bool operator==(
const BasicVersion& arg)
const;
 
  121    bool operator!=(
const BasicVersion& arg)
const;
 
  126    bool operator>(
const BasicVersion& arg)
const;
 
  131    bool operator<(
const BasicVersion& arg)
const;
 
  136    bool operator>=(
const BasicVersion& arg)
const;
 
  141    bool operator<=(
const BasicVersion& arg)
const;
 
  146    String  GetName(
void)
const;
 
  150    uint8   GetMajor(
void)
const;
 
  154    uint8   GetMinor(
void)
const;
 
  158    uint8   GetPatch(
void)
const;
 
  162    uint32  GetBuild(
void)
const;
 
  166    String  GetState(
void)
const;
 
  174    const BasicVersion& GetBuildVersion() 
const;
 
  179    String ToString(
void) 
const;
 
  182    static bool TryParseFullVersion(
const String& input, BasicVersion& result);
 
  183    static bool TryParseInternalVersion(
const String& input, BasicVersion& result);
 
  187    uint8   majorVersion = 0;
 
  188    uint8   minorVersion = 0;
 
  189    uint8   patchVersion = 0;
 
  197inline BasicVersion::BasicVersion(
uint8 majorVersionArg, 
const String& stateArg, 
const String& nameArg)
 
  198    : name(nameArg), majorVersion(majorVersionArg), minorVersion(0), patchVersion(0), buildVersion(0), state(stateArg)
 
  202inline BasicVersion::BasicVersion(
uint8 majorVersionArg, 
uint8 minorVersionArg, 
const String& stateArg, 
const String& nameArg)
 
  203    : name(nameArg), majorVersion(majorVersionArg), minorVersion(minorVersionArg), patchVersion(0), buildVersion(0), state(stateArg)
 
  207inline BasicVersion::BasicVersion(
uint8 majorVersionArg, 
uint8 minorVersionArg, 
uint8 patchVersionArg, 
const String& stateArg, 
const String& nameArg)
 
  208    : name(nameArg), majorVersion(majorVersionArg), minorVersion(minorVersionArg), patchVersion(patchVersionArg), buildVersion(0), state(stateArg)
 
  212inline BasicVersion::BasicVersion(
uint8 majorVersionArg, 
uint8 minorVersionArg, 
uint8 patchVersionArg, 
uint32 buildVersionArg, 
const String& stateArg, 
const String& nameArg)
 
  213    : name(nameArg), majorVersion(majorVersionArg), minorVersion(minorVersionArg), patchVersion(patchVersionArg), buildVersion(buildVersionArg), state(stateArg)
 
  217inline bool BasicVersion::operator==(
const BasicVersion& arg)
const 
  219    return (this->name == arg.name)
 
  220           && (this->majorVersion == arg.majorVersion)
 
  221           && (this->minorVersion == arg.minorVersion)
 
  222           && (this->patchVersion == arg.patchVersion)
 
  223           && (this->buildVersion == arg.buildVersion);
 
  226inline bool BasicVersion::operator!=(
const BasicVersion& arg)
const 
  228    return !(*
this == arg);
 
  231inline bool BasicVersion::operator>(
const BasicVersion& arg)
const 
  235    if (this->majorVersion > arg.majorVersion)
 
  239    else if ((this->majorVersion == arg.majorVersion) && (this->minorVersion > arg.minorVersion))
 
  243    else if ((this->majorVersion == arg.majorVersion) && (this->minorVersion == arg.minorVersion) && (this->patchVersion > arg.patchVersion))
 
  247    else if ((this->majorVersion == arg.majorVersion) && (this->minorVersion == arg.minorVersion) && (this->patchVersion == arg.patchVersion) && (this->buildVersion > arg.buildVersion))
 
  255inline bool BasicVersion::operator<(
const BasicVersion& arg)
const 
  259    if (this->majorVersion < arg.majorVersion)
 
  263    else if ((this->majorVersion == arg.majorVersion) && (this->minorVersion < arg.minorVersion))
 
  267    else if ((this->majorVersion == arg.majorVersion) && (this->minorVersion == arg.minorVersion) && (this->patchVersion < arg.patchVersion))
 
  271    else if ((this->majorVersion == arg.majorVersion) && (this->minorVersion == arg.minorVersion) && (this->patchVersion == arg.patchVersion) && (this->buildVersion < arg.buildVersion))
 
  279inline bool BasicVersion::operator>=(
const BasicVersion& arg)
const 
  283    if ((*
this > arg) || (*
this == arg))
 
  291inline bool BasicVersion::operator<=(
const BasicVersion& arg)
const 
  295    if ((*
this < arg) || (*
this == arg))
 
  303inline BasicVersion::String BasicVersion::GetName()
const 
  308inline uint8 BasicVersion::GetMajor()
const 
  310    return this->majorVersion;
 
  313inline uint8 BasicVersion::GetMinor()
const 
  315    return this->minorVersion;
 
  318inline uint8 BasicVersion::GetPatch()
const 
  320    return this->patchVersion;
 
  323inline uint32 BasicVersion::GetBuild()
const 
  325    return this->buildVersion;
 
  328inline BasicVersion::String BasicVersion::GetState()
const 
std::uint32_t uint32
The Arp unsigned integer type of 4 byte size.
Definition: PrimitiveTypes.hpp:33
 
std::uint8_t uint8
The Arp unsigned integer type of 1 byte size.
Definition: PrimitiveTypes.hpp:25
 
Root namespace for the PLCnext API