Reviewers: tobyr,

Description:
Updates to dashboard interface so we're passing wall-clock time millis
instead of normalized nanos. This is required to tie an event back to
actual date and time it occurred.


Please review this at http://gwt-code-reviews.appspot.com/1449807/

Affected files:
M dev/core/src/com/google/gwt/dev/util/log/dashboard/DashboardNotifier.java M dev/core/src/com/google/gwt/dev/util/log/dashboard/NoOpDashboardNotifier.java M dev/core/src/com/google/gwt/dev/util/log/speedtracer/SpeedTracerLogger.java M dev/core/test/com/google/gwt/dev/util/log/dashboard/DashboardNotifierFactoryTest.java M dev/core/test/com/google/gwt/dev/util/log/dashboard/SpeedTracerLoggerTestMockNotifier.java


Index: dev/core/src/com/google/gwt/dev/util/log/dashboard/DashboardNotifier.java
===================================================================
--- dev/core/src/com/google/gwt/dev/util/log/dashboard/DashboardNotifier.java (revision 10236) +++ dev/core/src/com/google/gwt/dev/util/log/dashboard/DashboardNotifier.java (working copy)
@@ -33,8 +33,8 @@
   /**
    * Records a top-level event to the dashboard.
    */
- void devModeEvent(DevModeSession session, String eventType, long startTimeNanos,
-      long durationNanos);
+ void devModeEvent(DevModeSession session, String eventType, long startTimeMillis,
+      long durationMillis);

   /**
    * Records a new module/session.
Index: dev/core/src/com/google/gwt/dev/util/log/dashboard/NoOpDashboardNotifier.java
===================================================================
--- dev/core/src/com/google/gwt/dev/util/log/dashboard/NoOpDashboardNotifier.java (revision 10236) +++ dev/core/src/com/google/gwt/dev/util/log/dashboard/NoOpDashboardNotifier.java (working copy)
@@ -24,8 +24,8 @@
 public class NoOpDashboardNotifier implements DashboardNotifier {

   @Override
- public void devModeEvent(DevModeSession sesion, String eventType, long startTimeNanos,
-      long durationNanos) {
+ public void devModeEvent(DevModeSession sesion, String eventType, long startTimeMillis,
+      long durationMillis) {
     // do nothing
   }

Index: dev/core/src/com/google/gwt/dev/util/log/speedtracer/SpeedTracerLogger.java
===================================================================
--- dev/core/src/com/google/gwt/dev/util/log/speedtracer/SpeedTracerLogger.java (revision 10236) +++ dev/core/src/com/google/gwt/dev/util/log/speedtracer/SpeedTracerLogger.java (working copy)
@@ -171,8 +171,19 @@
           ? threadCpuDurationNanos : elapsedDurationNanos);
     }

+    public long getElapsedDurationMillis() {
+      return (long) convertToMilliseconds(getElapsedDurationNanos());
+    }
+
     public long getElapsedDurationNanos() {
       return this.elapsedDurationNanos;
+    }
+
+    public long getElapsedStartTimeMillis() {
+ // return an *un*normalized value that can be used to track actual dates
+      // and times of the event
+      return elapsedTimeKeeper.zeroTimeSystemClockMillis()
+          + (long) convertToMilliseconds(getElapsedStartTimeNanos());
     }

     public long getElapsedStartTimeNanos() {
@@ -390,8 +401,10 @@

     private final long zeroTimeNanos;
     private final long zeroTimeMillis;
-
+    private final long zeroTimeSystemClockMillis;
+
     public ElapsedNormalizedTimeKeeper() {
+      zeroTimeSystemClockMillis = System.currentTimeMillis();
       zeroTimeNanos = System.nanoTime();
       zeroTimeMillis = (long) convertToMilliseconds(zeroTimeNanos);
     }
@@ -402,6 +415,10 @@

     public long zeroTimeMillis() {
       return zeroTimeMillis;
+    }
+
+    public long zeroTimeSystemClockMillis() {
+      return zeroTimeSystemClockMillis;
     }
   }

@@ -860,8 +877,8 @@
       }

DashboardNotifierFactory.getNotifier().devModeEvent(currentEvent.getDevModeSession(), - currentEvent.getType().getName(), currentEvent.getElapsedStartTimeNanos(),
-          currentEvent.getElapsedDurationNanos());
+ currentEvent.getType().getName(), currentEvent.getElapsedStartTimeMillis(),
+          currentEvent.getElapsedDurationMillis());
     }
   }

Index: dev/core/test/com/google/gwt/dev/util/log/dashboard/DashboardNotifierFactoryTest.java
===================================================================
--- dev/core/test/com/google/gwt/dev/util/log/dashboard/DashboardNotifierFactoryTest.java (revision 10236) +++ dev/core/test/com/google/gwt/dev/util/log/dashboard/DashboardNotifierFactoryTest.java (working copy)
@@ -28,8 +28,8 @@
     // create test notifier instance
     DashboardNotifier obj = new DashboardNotifier() {
       @Override
- public void devModeEvent(DevModeSession session, String eventType, long startTimeNanos,
-          long durationNanos) {
+ public void devModeEvent(DevModeSession session, String eventType, long startTimeMillis,
+          long durationMillis) {
         // no need to do anything
       }

Index: dev/core/test/com/google/gwt/dev/util/log/dashboard/SpeedTracerLoggerTestMockNotifier.java
===================================================================
--- dev/core/test/com/google/gwt/dev/util/log/dashboard/SpeedTracerLoggerTestMockNotifier.java (revision 10236) +++ dev/core/test/com/google/gwt/dev/util/log/dashboard/SpeedTracerLoggerTestMockNotifier.java (working copy)
@@ -34,22 +34,22 @@
   public static class DevModeEvent {
     private DevModeSession session;
     private String eventType;
-    private long startTimeNanos;
-    private long durationNanos;
+    private long startTimeMillis;
+    private long durationMillis;

- public DevModeEvent(DevModeSession session, String eventType, long startTimeNanos,
-        long durationNanos) {
+ public DevModeEvent(DevModeSession session, String eventType, long startTimeMillis,
+        long durationMillis) {
       this.session = session;
       this.eventType = eventType;
-      this.startTimeNanos = startTimeNanos;
-      this.durationNanos = durationNanos;
+      this.startTimeMillis = startTimeMillis;
+      this.durationMillis = durationMillis;
     }

     public DevModeEvent(Event e) {
       this.session = e.getDevModeSession();
       this.eventType = e.getType().getName();
-      this.startTimeNanos = e.getElapsedStartTimeNanos();
-      this.durationNanos = e.getElapsedDurationNanos();
+      this.startTimeMillis = e.getElapsedStartTimeMillis();
+      this.durationMillis = e.getElapsedDurationMillis();
     }

     public DevModeSession getDevModeSession() {
@@ -61,7 +61,7 @@
       if (o != null && o instanceof DevModeEvent) {
         DevModeEvent e = (DevModeEvent) o;
         return session.equals(e.session) && eventType.equals(e.eventType)
- && startTimeNanos == e.startTimeNanos && durationNanos == e.durationNanos; + && startTimeMillis == e.startTimeMillis && durationMillis == e.durationMillis;
       }
       return false;
     }
@@ -71,8 +71,8 @@
       int hash = 37;
       hash = hash*19 + session.hashCode();
       hash = hash*19 + eventType.hashCode();
-      hash = hash*19 + Long.valueOf(startTimeNanos).hashCode();
-      hash = hash*19 + Long.valueOf(durationNanos).hashCode();
+      hash = hash*19 + Long.valueOf(startTimeMillis).hashCode();
+      hash = hash*19 + Long.valueOf(durationMillis).hashCode();
       return hash;
     }
   }
@@ -94,9 +94,9 @@
private LinkedList<DevModeEvent> eventSeq = new LinkedList<DevModeEvent>();

   @Override
- public void devModeEvent(DevModeSession session, String eventType, long startTimeNanos,
-      long durationNanos) {
- DevModeEvent e = new DevModeEvent(session, eventType, startTimeNanos, durationNanos); + public void devModeEvent(DevModeSession session, String eventType, long startTimeMillis,
+      long durationMillis) {
+ DevModeEvent e = new DevModeEvent(session, eventType, startTimeMillis, durationMillis);
     eventSeq.add(e);
   }



--
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to