Remove global state for perf logger

Summary: Instead of installing some global mutable thing, pass it down. This also eliminates the rather gnarly side-effect of instantiating some visitor and suddenly logging information in an entirely different place.

Reviewed By: oprisnik

Differential Revision: D14131253

fbshipit-source-id: 760c6a3f85056e334ac1149c76ca4126fbfa7da4
This commit is contained in:
Pascal Hartig
2019-02-20 02:48:37 -08:00
committed by Facebook Github Bot
parent cf0003a87e
commit d8d01b4a6f
4 changed files with 29 additions and 46 deletions

View File

@@ -1,32 +1,16 @@
// Copyright 2004-present Facebook. All Rights Reserved.
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the LICENSE
* file in the root directory of this source tree.
*/
package com.facebook.flipper.perflogger;
import android.support.annotation.Nullable;
public interface FlipperPerfLogger {
public class FlipperPerfLogger {
void startMarker(String name);
@Nullable private static PerfLoggerDelegate mDelegate;
void endMarker(String name);
public static void startMarker(String name) {
if (mDelegate != null) {
mDelegate.starMarker(name);
}
}
public static void endMarker(String name) {
if (mDelegate != null) {
mDelegate.endMarker(name);
}
}
public static void cancelMarker(String name) {
if (mDelegate != null) {
mDelegate.cancelMarker(name);
}
}
static void setDelegate(PerfLoggerDelegate delegate) {
mDelegate = delegate;
}
void cancelMarker(String name);
}

View File

@@ -0,0 +1,19 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the LICENSE
* file in the root directory of this source tree.
*/
package com.facebook.flipper.perflogger;
public class NoOpFlipperPerfLogger implements FlipperPerfLogger {
@Override
public void startMarker(String name) {}
@Override
public void endMarker(String name) {}
@Override
public void cancelMarker(String name) {}
}

View File

@@ -1,11 +0,0 @@
// Copyright 2004-present Facebook. All Rights Reserved.
package com.facebook.flipper.perflogger;
public interface PerfLoggerDelegate {
void starMarker(String name);
void endMarker(String name);
void cancelMarker(String name);
}

View File

@@ -1,9 +0,0 @@
// Copyright 2004-present Facebook. All Rights Reserved.
package com.facebook.flipper.perflogger;
public class PerfLoggerDelegateInstaller {
public static void install(PerfLoggerDelegate delegate) {
FlipperPerfLogger.setDelegate(delegate);
}
}