/******************************************************************************* * ============LICENSE_START==================================================== * * org.onap.aaf * * =========================================================================== * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. * * =========================================================================== * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * * You may obtain a copy of the License at * * * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, software * * distributed under the License is distributed on an "AS IS" BASIS, * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and * * limitations under the License. * * ============LICENSE_END==================================================== * * * * ECOMP is a trademark and service mark of AT&T Intellectual Property. * * ******************************************************************************/ package com.att.inno.env; /** *
* * It is exceedingly prudent to wrap the process called with a try-finally:
* *
* TimeTaken tt = env.startSubTime(); * try { * process.me(); // code to be timed. * } finally { * tt.done(); * } **/ public void done() { end = System.nanoTime(); } /** * For sizable contents, set the size. Implementations can simply write a no-op if they don't wish to * store the size. * * @param size */ public void size(long theSize) { size = theSize; } /** * Give readonly access to End, which isn't final * @return */ public long end() { return end; } /** * Time is taken in NanoSeconds. This method converts to decimals of Milliseconds * @return */ public float millis() { return (end-start)/1000000f; } /** * Write self to a String Builder (for making Audits) * @param sb */ public abstract void output(StringBuilder sb); /** * For Debugging */ public String toString() { return name + ' ' + millis() + "ms " + (size>0?Long.toString(size):""); } }