home *** CD-ROM | disk | FTP | other *** search
/ Java 1.2 How-To / JavaHowTo.iso / 3rdParty / jbuilder / TRIAL / JBUILDER / JVISBRKR.Z / TimerInterceptor.java < prev    next >
Encoding:
Java Source  |  1998-05-08  |  2.3 KB  |  70 lines

  1. /*
  2.  * Copyright (c) 1997-1998 Borland International, Inc. All Rights Reserved.
  3.  * 
  4.  * This SOURCE CODE FILE, which has been provided by Borland as part
  5.  * of a Borland product for use ONLY by licensed users of the product,
  6.  * includes CONFIDENTIAL and PROPRIETARY information of Borland.  
  7.  *
  8.  * USE OF THIS SOFTWARE IS GOVERNED BY THE TERMS AND CONDITIONS 
  9.  * OF THE LICENSE STATEMENT AND LIMITED WARRANTY FURNISHED WITH
  10.  * THE PRODUCT.
  11.  *
  12.  * IN PARTICULAR, YOU WILL INDEMNIFY AND HOLD BORLAND, ITS RELATED
  13.  * COMPANIES AND ITS SUPPLIERS, HARMLESS FROM AND AGAINST ANY CLAIMS
  14.  * OR LIABILITIES ARISING OUT OF THE USE, REPRODUCTION, OR DISTRIBUTION
  15.  * OF YOUR PROGRAMS, INCLUDING ANY CLAIMS OR LIABILITIES ARISING OUT OF
  16.  * OR RESULTING FROM THE USE, MODIFICATION, OR DISTRIBUTION OF PROGRAMS
  17.  * OR FILES CREATED FROM, BASED ON, AND/OR DERIVED FROM THIS SOURCE
  18.  * CODE FILE.
  19.  */
  20. package visibroker.samples.interceptor.timer;
  21.  
  22. import  com.visigenic.vbroker.interceptor.*;
  23.  
  24. public class TimerInterceptor
  25. {
  26.     public void print(String name, String msg, Object data)
  27.     {
  28.         print(name, msg, (TimerData)data, new TimerData());
  29.     }
  30.  
  31.     protected void print(String name, String msg, TimerData start, TimerData end)
  32.     {
  33.         long        elapsed = end.elapsed(start);
  34.  
  35.         System.out.print(name + ": ");
  36.  
  37.         if (msg != null)    System.out.print("(" + msg + ") - ");
  38.  
  39.         if (elapsed > 1000) System.out.print(elapsed/1000 + " s, ");
  40.  
  41.         System.out.println(elapsed%1000 + " ms");
  42.     }
  43.  
  44.     public void begin(Closure closure, String operation)
  45.     {
  46.         TimerData   t1 = new TimerData();
  47.         TimerData   t2 = (TimerData)t1.clone();
  48.  
  49.         closure.object = new TwoTimerData(t1, t2, operation);
  50.     }
  51.  
  52.     public void delta(Closure closure, String meaning)
  53.     {
  54.         TwoTimerData    t = (TwoTimerData)closure.object;
  55.         TimerData       start = t.getStart2();
  56.         TimerData       end = new TimerData();
  57.  
  58.         print(t.getOperation(), meaning, start, end);
  59.         t.setStart2(end);
  60.     }
  61.  
  62.     public void complete(Closure closure, String meaning)
  63.     {
  64.         TwoTimerData    t = (TwoTimerData)closure.object;
  65.  
  66.         print(t.getOperation(), meaning, t.getStart1(), t.getStart2());
  67.         System.out.println();
  68.     }
  69. }
  70.