diff options
author | Karsten Heimrich <karsten.heimrich@theqtcompany.com> | 2015-06-09 16:04:24 +0200 |
---|---|---|
committer | Karsten Heimrich <karsten.heimrich@theqtcompany.com> | 2015-06-10 08:15:38 +0000 |
commit | 4677d362982a38c6e2aabb667e33aaa7f921f018 (patch) | |
tree | fe3b676288f05a87cdbb53a170e815427e3d9380 /src/libs/7zip/unix/CPP/myWindows/myDateAndTime.cpp | |
parent | 22ec6aa53e44069c03c7baf94881949c7a4facff (diff) |
Update source tree with version 9.38.beta of LZMA SDK.
- Remove unused files.
- Split in .pri files.
- Add HEADERS section.
- Adjust lib7z_facade.
Change-Id: I31e7bafbfe1a9346364bd58c391601955f98ad3a
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Diffstat (limited to 'src/libs/7zip/unix/CPP/myWindows/myDateAndTime.cpp')
-rw-r--r-- | src/libs/7zip/unix/CPP/myWindows/myDateAndTime.cpp | 42 |
1 files changed, 23 insertions, 19 deletions
diff --git a/src/libs/7zip/unix/CPP/myWindows/myDateAndTime.cpp b/src/libs/7zip/unix/CPP/myWindows/myDateAndTime.cpp index 96554c900..48cb17c9a 100644 --- a/src/libs/7zip/unix/CPP/myWindows/myDateAndTime.cpp +++ b/src/libs/7zip/unix/CPP/myWindows/myDateAndTime.cpp @@ -32,19 +32,20 @@ ** **************************************************************************/ -#include <QDebug> -#include <QDateTime> #include "windows.h" +#include <QDateTime> + +#include <chrono> + void FileTimeToDateTime(const FILETIME *source, QDateTime *target) { ULARGE_INTEGER store; - QDateTime tempDateTime(QDate(1601, 1, 1)); - store.QuadPart = source->dwHighDateTime; store.QuadPart = store.QuadPart << 32; store.QuadPart += source->dwLowDateTime; + const QDateTime tempDateTime(QDate(1601, 1, 1), QTime(0, 0, 0, 0), Qt::UTC); *target = tempDateTime.addMSecs(store.QuadPart / 10000); } @@ -60,6 +61,13 @@ void DateTimeToSystemTime(const QDateTime *source, SYSTEMTIME *target) target->wMilliseconds = source->time().msec(); } +void DateTimeToFileTime(const QDateTime &dateTime, FILETIME *target) +{ + const qint64 nsecs = QDateTime(QDate(1601, 1, 1), QTime(0, 0, 0, 0), Qt::UTC) + .msecsTo(dateTime) * 10000; + target->dwLowDateTime = nsecs; + target->dwHighDateTime = nsecs >> 32; +} BOOL WINAPI FileTimeToSystemTime(CONST FILETIME *source,SYSTEMTIME *target) { @@ -70,21 +78,6 @@ BOOL WINAPI FileTimeToSystemTime(CONST FILETIME *source,SYSTEMTIME *target) return TRUE; } -BOOL WINAPI SystemTimeToFileTime(const SYSTEMTIME *source,FILETIME *target) -{ - // TODO: Implementation! - // This doesn't seem to be called at all - - qDebug() << "SystemTimeToFileTime"; - - target->dwHighDateTime = 0; - target->dwLowDateTime = 0; - - qWarning() << Q_FUNC_INFO; - - return TRUE; -} - BOOL WINAPI FileTimeToLocalFileTime(CONST FILETIME *source,FILETIME *target) { target->dwHighDateTime = source->dwHighDateTime; @@ -137,3 +130,14 @@ VOID WINAPI GetSystemTime(SYSTEMTIME *st) QDateTime nowDateTime = QDateTime::currentDateTimeUtc(); DateTimeToSystemTime(&nowDateTime, st); } + +VOID WINAPI GetSystemTimeAsFileTime(FILETIME *time) +{ + DateTimeToFileTime(QDateTime::currentDateTimeUtc(), time); +} + +DWORD WINAPI GetTickCount() +{ + using namespace std::chrono; + return duration_cast<milliseconds>(steady_clock::now().time_since_epoch()).count(); +} |