Coverage Report - net.sf.jperfprobe.DefaultProbe
 
Classes in this File Line Coverage Branch Coverage Complexity
DefaultProbe
96%
31/32
90%
9/10
1.385
 
 1  
 /* ==========================================
 2  
  * JperfProbe : Java Performance Probes
 3  
  * ==========================================
 4  
  *
 5  
  * Project Info:  http://jperfprobe.sourceforge.net/
 6  
  * Project Lead:  Tor-Erik Larsen (http://sourceforge.net/users/uptime62)
 7  
  *
 8  
  * (C) Copyright 2005, by Tor-Erik Larsen and Contributors.
 9  
  *
 10  
  * This library is free software; you can redistribute it and/or modify it
 11  
  * under the terms of the GNU Lesser General Public License as published by
 12  
  * the Free Software Foundation; either version 2.1 of the License, or
 13  
  * (at your option) any later version.
 14  
  *
 15  
  * This library is distributed in the hope that it will be useful, but
 16  
  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 17  
  * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
 18  
  * License for more details.
 19  
  *
 20  
  * You should have received a copy of the GNU Lesser General Public License
 21  
  * along with this library; if not, write to the Free Software Foundation, Inc.,
 22  
  * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
 23  
  */
 24  
 
 25  
 package net.sf.jperfprobe;
 26  
 
 27  
 import org.slf4j.*;
 28  
 
 29  
 
 30  
 /**
 31  
  * DefaultProbe implements a Probe. It is possible to start and stop a probe
 32  
  * The probe is identified by a name. The probe uses nano seconds for measuring time.
 33  
  */
 34  
 public class DefaultProbe implements Probe {
 35  2461
     final Logger log = LoggerFactory.getLogger(DefaultProbe.class);
 36  
     
 37  
     // indicates if the probe is running.
 38  
     private boolean running;
 39  
 
 40  
     // start time stamp of this probe.
 41  
     private long startTime;
 42  
 
 43  
     // elapsed time in probe.
 44  
     private long timeElapsed;
 45  
 
 46  
     // name of probe.
 47  
     private final String name;
 48  
 
 49  
     // probe enable flag.
 50  2461
     private boolean enabled = true;
 51  
 
 52  
     // name of the initiating thread
 53  
     //private String threadName;
 54  
 
 55  
     // how to get the time
 56  2461
     private Time time = TimeFactory.getTime();
 57  
 
 58  
     /**
 59  
      * Constructor of probe
 60  
      *
 61  
      * @param name name of probe
 62  
      */
 63  2461
     public DefaultProbe(String name) {
 64  2461
         this.name = name;
 65  
         //this.threadName = Thread.currentThread().getName();
 66  2461
     }
 67  
 
 68  
     protected DefaultProbe(String name, Time tim) {
 69  2454
         this(name);
 70  2454
         this.time = tim;
 71  2454
     }
 72  
 
 73  
     /**
 74  
      * Get elapsed time for this probe in nanos.
 75  
      *
 76  
      * @return elapsed time
 77  
      */
 78  
     public long getElapsed() {
 79  9828
         return timeElapsed;
 80  
     }
 81  
 
 82  
     /**
 83  
      * Start the probe.
 84  
      * The probe will only start if it is enabled and not running.
 85  
      * Nothing will happen if it is running.
 86  
      */
 87  
     public void start() {
 88  9832
         if (enabled && !running) {
 89  6634
             startTime = time.getNanos();
 90  6634
             running = true;
 91  
         }
 92  9832
     }
 93  
 
 94  
     /**
 95  
      * Stop the probe. It is not poosible to stop the probe if it is disabled
 96  
      */
 97  
     public void stop() {
 98  9829
         if (enabled) {
 99  9828
             long ti = this.time.getNanos() - startTime;
 100  9828
             if (running && ti > 0) {
 101  
                 // make sure timeelapsed > 0
 102  5525
                 timeElapsed = ti;
 103  5525
                 running = false;
 104  
             }
 105  
         }
 106  9829
     }
 107  
 
 108  
     /**
 109  
      * Is the probe enabled.
 110  
      *
 111  
      * @return enabled flag
 112  
      */
 113  
     public boolean isEnabled() {
 114  29
         return enabled;
 115  
     }
 116  
 
 117  
     /**
 118  
      * Enable the probe.
 119  
      */
 120  
     public void enable() {
 121  8
         enabled = true;
 122  8
     }
 123  
 
 124  
     /**
 125  
      * Disable the probe.
 126  
      */
 127  
     public void disable() {
 128  15
         enabled = false;
 129  15
         running = false;
 130  15
     }
 131  
 
 132  
     /**
 133  
      * Is the probe running (by start).
 134  
      *
 135  
      * @return running flag
 136  
      */
 137  
     public boolean isRunning() {
 138  12
         return running;
 139  
     }
 140  
 
 141  
     public String getName() {
 142  2005
         return name;
 143  
     }
 144  
 
 145  
     public Time getTime() {
 146  2
         return time;
 147  
     }
 148  
 
 149  
     public void setTime(Time time) {
 150  1
         this.time = time;
 151  1
     }
 152  
 
 153  
     /**
 154  
      * Get all info from probe to string
 155  
      *
 156  
      * @return string with all probe info
 157  
      */
 158  
     @Override
 159  
     public String toString() {
 160  0
         return "probe name=" + name + ", elapsed:" + timeElapsed + " , running:" + running;
 161  
     }
 162  
 }