diff options
| author | Per Larsson <[email protected]> | 2022-04-25 11:22:43 +0200 |
|---|---|---|
| committer | Per Larsson <[email protected]> | 2022-04-25 11:22:43 +0200 |
| commit | 1e7c5d062327ec249d3daae0f9ce61a03c4e76b2 (patch) | |
| tree | 893423c3d0b28f1d08b7ce1b138f4e1b4e45537c /zencore/compactbinary.cpp | |
| parent | Merge branch 'main' into ddcref (diff) | |
| parent | Compute tweaks (#78) (diff) | |
| download | zen-1e7c5d062327ec249d3daae0f9ce61a03c4e76b2.tar.xz zen-1e7c5d062327ec249d3daae0f9ce61a03c4e76b2.zip | |
Merge branch 'main' into ddcref
Diffstat (limited to 'zencore/compactbinary.cpp')
| -rw-r--r-- | zencore/compactbinary.cpp | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/zencore/compactbinary.cpp b/zencore/compactbinary.cpp index cb628af4b..ffc1da10c 100644 --- a/zencore/compactbinary.cpp +++ b/zencore/compactbinary.cpp @@ -60,22 +60,27 @@ GetPlatformToDateTimeBiasInSeconds() return uint64_t(double(PlatformEpochYear - DateTimeEpochYear) * 365.2425) * 86400; } -DateTime -DateTime::Now() +uint64_t +DateTime::NowTicks() { - static const uint64_t EpochBias = GetPlatformToDateTimeBiasInSeconds(); - static const uint64_t SecsTo100nsTicks = int64_t(10e9 / 100); + static constexpr uint64_t EpochBias = GetPlatformToDateTimeBiasInSeconds(); #if ZEN_PLATFORM_WINDOWS FILETIME SysTime; - GetSystemTimeAsFileTime(&SysTime); - return DateTime{(EpochBias * SecsTo100nsTicks) + (uint64_t(SysTime.dwHighDateTime) << 32) | SysTime.dwLowDateTime}; + GetSystemTimePreciseAsFileTime(&SysTime); + return (EpochBias * TimeSpan::TicksPerSecond) + ((uint64_t(SysTime.dwHighDateTime) << 32) | SysTime.dwLowDateTime); #else int64_t SecondsSinceUnixEpoch = time(nullptr); - return DateTime{(EpochBias + SecondsSinceUnixEpoch) * SecsTo100nsTicks}; + return (EpochBias + SecondsSinceUnixEpoch) * TimeSpan::TicksPerSecond; #endif } +DateTime +DateTime::Now() +{ + return DateTime{NowTicks()}; +} + void DateTime::Set(int Year, int Month, int Day, int Hour, int Minute, int Second, int MilliSecond) { @@ -1392,7 +1397,7 @@ LoadCompactBinaryObject(IoBuffer&& Payload) } CbObject -LoadCompactBinaryObject(IoBuffer& Payload) +LoadCompactBinaryObject(const IoBuffer& Payload) { return CbObject{SharedBuffer(Payload)}; } @@ -1404,7 +1409,7 @@ LoadCompactBinaryObject(CompressedBuffer&& Payload) } CbObject -LoadCompactBinaryObject(CompressedBuffer& Payload) +LoadCompactBinaryObject(const CompressedBuffer& Payload) { return CbObject{SharedBuffer(Payload.DecompressToComposite().Flatten())}; } |