1d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde/* 2d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde * Copyright (C) 2015 The Android Open Source Project 3d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde * 4d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde * Licensed under the Apache License, Version 2.0 (the "License"); 5d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde * you may not use this file except in compliance with the License. 6d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde * You may obtain a copy of the License at 7d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde * 8d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde * http://www.apache.org/licenses/LICENSE-2.0 9d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde * 10d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde * Unless required by applicable law or agreed to in writing, software 11d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde * distributed under the License is distributed on an "AS IS" BASIS, 12d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde * See the License for the specific language governing permissions and 14d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde * limitations under the License. 15d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde */ 16d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde 17d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohdepackage com.android.camera.stats.profiler; 18d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde 19d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde/** 20d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde * A logging profile writes out all events to the provided 21d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde * writer and uses the standard message formatting. 22d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde */ 23d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohdepublic class LoggingProfile extends ProfileBase { 24d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde private final Writer mWriter; 25d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde 26d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde /** Create a new LoggingProfile */ 27d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde public LoggingProfile(Writer writer, String name) { 28d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde super(name); 29d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde 30d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde mWriter = writer; 31d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde } 32d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde 33d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde @Override 34d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde protected void onStart() { 35d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde mWriter.write(format(0.0, "BEGIN")); 36d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde } 37d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde 38d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde @Override 39d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde protected void onMark(double totalMillis, double lastMillis, String reason) { 40d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde mWriter.write(format(totalMillis, "MARK", lastMillis, reason)); 41d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde } 42d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde 43d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde @Override 44d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde protected void onStop(double totalMillis, double lastMillis) { 45d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde mWriter.write(format(totalMillis, "END")); 46d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde } 47d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde 48d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde @Override 49d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde protected void onStop(double totalMillis, double lastMillis, String reason) { 50d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde mWriter.write(format(totalMillis, "END", lastMillis, reason)); 51d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde } 52d34df829eba68c977ef4c77e3f6830fbbc8d01bfPaul Rohde} 53