home *** CD-ROM | disk | FTP | other *** search
Java Source | 1998-05-08 | 2.3 KB | 70 lines |
- /*
- * Copyright (c) 1997-1998 Borland International, Inc. All Rights Reserved.
- *
- * This SOURCE CODE FILE, which has been provided by Borland as part
- * of a Borland product for use ONLY by licensed users of the product,
- * includes CONFIDENTIAL and PROPRIETARY information of Borland.
- *
- * USE OF THIS SOFTWARE IS GOVERNED BY THE TERMS AND CONDITIONS
- * OF THE LICENSE STATEMENT AND LIMITED WARRANTY FURNISHED WITH
- * THE PRODUCT.
- *
- * IN PARTICULAR, YOU WILL INDEMNIFY AND HOLD BORLAND, ITS RELATED
- * COMPANIES AND ITS SUPPLIERS, HARMLESS FROM AND AGAINST ANY CLAIMS
- * OR LIABILITIES ARISING OUT OF THE USE, REPRODUCTION, OR DISTRIBUTION
- * OF YOUR PROGRAMS, INCLUDING ANY CLAIMS OR LIABILITIES ARISING OUT OF
- * OR RESULTING FROM THE USE, MODIFICATION, OR DISTRIBUTION OF PROGRAMS
- * OR FILES CREATED FROM, BASED ON, AND/OR DERIVED FROM THIS SOURCE
- * CODE FILE.
- */
- package visibroker.samples.interceptor.timer;
-
- import com.visigenic.vbroker.interceptor.*;
-
- public class TimerInterceptor
- {
- public void print(String name, String msg, Object data)
- {
- print(name, msg, (TimerData)data, new TimerData());
- }
-
- protected void print(String name, String msg, TimerData start, TimerData end)
- {
- long elapsed = end.elapsed(start);
-
- System.out.print(name + ": ");
-
- if (msg != null) System.out.print("(" + msg + ") - ");
-
- if (elapsed > 1000) System.out.print(elapsed/1000 + " s, ");
-
- System.out.println(elapsed%1000 + " ms");
- }
-
- public void begin(Closure closure, String operation)
- {
- TimerData t1 = new TimerData();
- TimerData t2 = (TimerData)t1.clone();
-
- closure.object = new TwoTimerData(t1, t2, operation);
- }
-
- public void delta(Closure closure, String meaning)
- {
- TwoTimerData t = (TwoTimerData)closure.object;
- TimerData start = t.getStart2();
- TimerData end = new TimerData();
-
- print(t.getOperation(), meaning, start, end);
- t.setStart2(end);
- }
-
- public void complete(Closure closure, String meaning)
- {
- TwoTimerData t = (TwoTimerData)closure.object;
-
- print(t.getOperation(), meaning, t.getStart1(), t.getStart2());
- System.out.println();
- }
- }
-