/** * ============LICENSE_START==================================================== * org.onap.aaf * =========================================================================== * Copyright (c) 2018 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==================================================== * */ package org.onap.aaf.misc.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):""); } }