12#ifndef PROFILINGCOMMON_HPP
13#define PROFILINGCOMMON_HPP
20#include "UtException.hpp"
30 , mReturnCode(aErrorCode)
68inline uint64_t
PackVersionInfo(uint16_t aEpoch, uint16_t aMajor, uint16_t aMinor, uint16_t aPatch)
70 const uint64_t epoch =
static_cast<uint64_t
>(aEpoch);
71 const uint64_t major =
static_cast<uint64_t
>(aMajor);
72 const uint64_t minor =
static_cast<uint64_t
>(aMinor);
73 const uint64_t patch =
static_cast<uint64_t
>(aPatch);
75 return (epoch << 48) | (major << 32) | (minor << 16) | patch;
84 constexpr auto epochShift = 48u;
85 constexpr auto majorShift = 32u;
86 constexpr auto minorShift = 16u;
88 constexpr uint64_t epochMask = 0xFFFF000000000000ull;
89 constexpr uint64_t majorMask = 0x0000FFFF00000000ull;
90 constexpr uint64_t minorMask = 0x00000000FFFF0000ull;
91 constexpr uint64_t patchMask = 0x000000000000FFFFull;
94 versionInfo.
mEpoch =
static_cast<uint16_t
>((packedVersionInfo & epochMask) >> epochShift);
95 versionInfo.
mMajor =
static_cast<uint16_t
>((packedVersionInfo & majorMask) >> majorShift);
96 versionInfo.
mMinor =
static_cast<uint16_t
>((packedVersionInfo & minorMask) >> minorShift);
97 versionInfo.
mPatch =
static_cast<uint16_t
>(packedVersionInfo & patchMask);
int GetReturnCode() const
Definition ProfilingCommon.hpp:34
Exception(const std::string &aWhat, int aErrorCode)
Definition ProfilingCommon.hpp:28
Definition of utility struct and function used by the profiling targets.
Definition ProfilingCommon.hpp:23
VersionInfo UnpackVersionInfo(const uint64_t packedVersionInfo)
Unpacks the profiling library's version information.
Definition ProfilingCommon.hpp:82
uint64_t PackVersionInfo(uint16_t aEpoch, uint16_t aMajor, uint16_t aMinor, uint16_t aPatch)
Combines four uint16_t versioning values into one uint64_t.
Definition ProfilingCommon.hpp:68
structure defining the values used for semantic versioning of the profiling system
Definition ProfilingCommon.hpp:42
uint16_t mEpoch
Definition ProfilingCommon.hpp:45
uint16_t mMinor
incrementing MINOR version indicates when functionality is added in a backwards compatible manner.
Definition ProfilingCommon.hpp:49
uint16_t mPatch
incrementing PATCH version indicates when backwards compatible bug fixes are made.
Definition ProfilingCommon.hpp:51
uint16_t mMajor
incrementing MAJOR version indicates when incompatible API changes are made.
Definition ProfilingCommon.hpp:47