Nebula
Loading...
Searching...
No Matches
win32filetime.h
Go to the documentation of this file.
1#pragma once
2//------------------------------------------------------------------------------
12#include "core/types.h"
13#include "util/string.h"
14
15//------------------------------------------------------------------------------
16namespace Win32
17{
19{
20public:
24 Win32FileTime(const Util::String& str);
26 Win32FileTime(uint64_t epochTime);
28 friend bool operator==(const Win32FileTime& a, const Win32FileTime& b);
30 friend bool operator!=(const Win32FileTime& a, const Win32FileTime& b);
32 friend bool operator>(const Win32FileTime& a, const Win32FileTime& b);
34 friend bool operator<(const Win32FileTime& a, const Win32FileTime& b);
36 Util::String AsString() const;
37
39 uint GetHighBits() const;
41 uint GetLowBits() const;
43 void SetBits(uint lowBits, uint highBits);
44
46 uint64_t AsEpochTime() const;
48 void SetFromEpochTime(uint64_t epochTime);
49
50 FILETIME time;
51};
52
53//------------------------------------------------------------------------------
56inline
58{
59 time.dwLowDateTime = 0;
60 time.dwHighDateTime = 0;
61}
62//------------------------------------------------------------------------------
65inline
67{
68 SetFromEpochTime(epochTime);
69}
70
71//------------------------------------------------------------------------------
74inline bool
76{
77 return (0 == CompareFileTime(&(a.time), &(b.time)));
78}
79
80//------------------------------------------------------------------------------
83inline bool
85{
86 return (0 != CompareFileTime(&(a.time), &(b.time)));
87}
88
89//------------------------------------------------------------------------------
92inline bool
94{
95 return (1 == CompareFileTime(&(a.time), &(b.time)));
96}
97
98//------------------------------------------------------------------------------
101inline bool
102operator <(const Win32FileTime& a, const Win32FileTime& b)
103{
104 return (-1 == CompareFileTime(&(a.time), &(b.time)));
105}
106
107}; // namespace Win32
108//------------------------------------------------------------------------------
void SetFromEpochTime(uint64_t epochTime)
set from epoch time
Definition win32filetime.cc:75
uint GetLowBits() const
get low bits
Definition win32filetime.cc:48
FILETIME time
Definition win32filetime.h:50
friend bool operator<(const Win32FileTime &a, const Win32FileTime &b)
operator <
Definition win32filetime.h:102
friend bool operator!=(const Win32FileTime &a, const Win32FileTime &b)
operator !=
Definition win32filetime.h:84
void SetBits(uint lowBits, uint highBits)
set bits
Definition win32filetime.cc:57
Util::String AsString() const
convert to string
Definition win32filetime.cc:28
friend bool operator==(const Win32FileTime &a, const Win32FileTime &b)
operator ==
Definition win32filetime.h:75
uint GetHighBits() const
get high bits
Definition win32filetime.cc:39
friend bool operator>(const Win32FileTime &a, const Win32FileTime &b)
operator >
Definition win32filetime.h:93
uint64_t AsEpochTime() const
convert to epoch time
Definition win32filetime.cc:66
Win32FileTime()
constructor
Definition win32filetime.h:57
[TODO: Describe Win32 subsystem]
bool operator==(const Win32FileTime &a, const Win32FileTime &b)
Definition win32filetime.h:75
bool operator<(const Win32FileTime &a, const Win32FileTime &b)
Definition win32filetime.h:102
bool operator>(const Win32FileTime &a, const Win32FileTime &b)
Definition win32filetime.h:93
bool operator!=(const Win32FileTime &a, const Win32FileTime &b)
Definition win32filetime.h:84
Nebula's universal string class.
Definition String.cs:8
unsigned int uint
Definition types.h:33