javamanager/javacaptain/src/tickerproviderinterface.h
changeset 50 023eef975703
parent 21 2a9601315dfc
--- a/javamanager/javacaptain/src/tickerproviderinterface.h	Tue Jul 06 20:36:19 2010 +0300
+++ b/javamanager/javacaptain/src/tickerproviderinterface.h	Fri Jul 09 16:35:45 2010 +0300
@@ -64,6 +64,19 @@
     // Helpers
     /**
     * Returns milliseconds from EPOCH.
+    * This can be overridden with the platform specific implementation. Use case for
+    * overriding is that in some platforms gettimeofday implementation can't handle
+    * correctly times after 2038.
+    * @param[in]  -
+    * @return - milliseconds from EPOCH in success, -1 if fails
+    */
+    virtual long long getPlatformCurrentJavaTime()
+    {
+        return -1LL;
+    }
+
+    /**
+    * Returns milliseconds from EPOCH.
     * @param[in]  -
     * @return - milliseconds from EPOCH in success, -1 if fails
     */
@@ -73,7 +86,8 @@
         int err = gettimeofday(&tim, NULL);
         if (-1 == err)
         {
-            return -1LL;
+            WLOG(EJavaCaptain, "getCurrentJavaTime: gettimeofday returned -1");
+            return getPlatformCurrentJavaTime();
         }
 
         return (tim.tv_sec * 1000LL) +