summaryrefslogtreecommitdiff
path: root/plugins/SecureIM/gettime.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/SecureIM/gettime.cpp')
-rw-r--r--plugins/SecureIM/gettime.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/plugins/SecureIM/gettime.cpp b/plugins/SecureIM/gettime.cpp
new file mode 100644
index 0000000000..529a8e0c8e
--- /dev/null
+++ b/plugins/SecureIM/gettime.cpp
@@ -0,0 +1,29 @@
+#include "commonheaders.h"
+
+
+/* FILETIME unit is 100 nanoseconds */
+const static long div_100_nsec = 10000000;
+
+/* POSIX or Unix Epoch (1-Jan-1970 00:00) in FILETIME units */
+#ifdef _MSC_VER
+const static ULONGLONG ix_epoch = 116444736000000000;
+#else
+const static ULONGLONG ix_epoch = 116444736000000000LL;
+#endif
+
+DWORD gettime(void) {
+
+ ULONGLONG diff_100_nsec;
+ union {
+ FILETIME f;
+ ULARGE_INTEGER u;
+ } now;
+
+ GetSystemTimeAsFileTime( &now.f );
+
+ diff_100_nsec = now.u.QuadPart - ix_epoch;
+
+ return (DWORD)( diff_100_nsec / div_100_nsec );
+}
+
+// EOF