Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit aef1c258 authored by Pablo Gamito's avatar Pablo Gamito Committed by Android (Google) Code Review
Browse files

Merge "Pass tracing instance index to start and stop callbacks" into main

parents 060e8c4b c7d73ac5
Loading
Loading
Loading
Loading
+4 −2
Original line number Original line Diff line number Diff line
@@ -768,7 +768,8 @@ public class PerfettoProtoLogImpl extends IProtoLogClient.Stub implements IProto
        return -1;
        return -1;
    }
    }


    private synchronized void onTracingInstanceStart(ProtoLogDataSource.ProtoLogConfig config) {
    private synchronized void onTracingInstanceStart(
            int instanceIdx, ProtoLogDataSource.ProtoLogConfig config) {
        final LogLevel defaultLogFrom = config.getDefaultGroupConfig().logFrom;
        final LogLevel defaultLogFrom = config.getDefaultGroupConfig().logFrom;
        for (int i = defaultLogFrom.ordinal(); i < LogLevel.values().length; i++) {
        for (int i = defaultLogFrom.ordinal(); i < LogLevel.values().length; i++) {
            mDefaultLogLevelCounts[i]++;
            mDefaultLogLevelCounts[i]++;
@@ -801,7 +802,8 @@ public class PerfettoProtoLogImpl extends IProtoLogClient.Stub implements IProto
        this.mTracingInstances.incrementAndGet();
        this.mTracingInstances.incrementAndGet();
    }
    }


    private synchronized void onTracingInstanceStop(ProtoLogDataSource.ProtoLogConfig config) {
    private synchronized void onTracingInstanceStop(
            int instanceIdx, ProtoLogDataSource.ProtoLogConfig config) {
        this.mTracingInstances.decrementAndGet();
        this.mTracingInstances.decrementAndGet();


        final LogLevel defaultLogFrom = config.getDefaultGroupConfig().logFrom;
        final LogLevel defaultLogFrom = config.getDefaultGroupConfig().logFrom;
+20 −10
Original line number Original line Diff line number Diff line
@@ -49,12 +49,12 @@ public class ProtoLogDataSource extends DataSource<ProtoLogDataSource.Instance,
        ProtoLogDataSource.TlsState,
        ProtoLogDataSource.TlsState,
        ProtoLogDataSource.IncrementalState> {
        ProtoLogDataSource.IncrementalState> {


    private final Consumer<ProtoLogConfig> mOnStart;
    private final Instance.TracingInstanceStartCallback mOnStart;
    private final Runnable mOnFlush;
    private final Runnable mOnFlush;
    private final Consumer<ProtoLogConfig> mOnStop;
    private final Instance.TracingInstanceStopCallback mOnStop;


    public ProtoLogDataSource(Consumer<ProtoLogConfig> onStart, Runnable onFlush,
    public ProtoLogDataSource(Instance.TracingInstanceStartCallback onStart, Runnable onFlush,
            Consumer<ProtoLogConfig> onStop) {
            Instance.TracingInstanceStopCallback onStop) {
        super("android.protolog");
        super("android.protolog");
        this.mOnStart = onStart;
        this.mOnStart = onStart;
        this.mOnFlush = onFlush;
        this.mOnFlush = onFlush;
@@ -267,20 +267,30 @@ public class ProtoLogDataSource extends DataSource<ProtoLogDataSource.Instance,


    public static class Instance extends DataSourceInstance {
    public static class Instance extends DataSourceInstance {


        private final Consumer<ProtoLogConfig> mOnStart;
        public interface TracingInstanceStartCallback {
            void run(int instanceIdx, ProtoLogConfig config);
        }

        public interface TracingInstanceStopCallback {
            void run(int instanceIdx, ProtoLogConfig config);
        }

        private final TracingInstanceStartCallback mOnStart;
        private final Runnable mOnFlush;
        private final Runnable mOnFlush;
        private final Consumer<ProtoLogConfig> mOnStop;
        private final TracingInstanceStopCallback mOnStop;
        private final ProtoLogConfig mConfig;
        private final ProtoLogConfig mConfig;
        private final int mInstanceIndex;


        public Instance(
        public Instance(
                DataSource<Instance, TlsState, IncrementalState> dataSource,
                DataSource<Instance, TlsState, IncrementalState> dataSource,
                int instanceIdx,
                int instanceIdx,
                ProtoLogConfig config,
                ProtoLogConfig config,
                Consumer<ProtoLogConfig> onStart,
                TracingInstanceStartCallback onStart,
                Runnable onFlush,
                Runnable onFlush,
                Consumer<ProtoLogConfig> onStop
                TracingInstanceStopCallback onStop
        ) {
        ) {
            super(dataSource, instanceIdx);
            super(dataSource, instanceIdx);
            this.mInstanceIndex = instanceIdx;
            this.mOnStart = onStart;
            this.mOnStart = onStart;
            this.mOnFlush = onFlush;
            this.mOnFlush = onFlush;
            this.mOnStop = onStop;
            this.mOnStop = onStop;
@@ -289,7 +299,7 @@ public class ProtoLogDataSource extends DataSource<ProtoLogDataSource.Instance,


        @Override
        @Override
        public void onStart(StartCallbackArguments args) {
        public void onStart(StartCallbackArguments args) {
            this.mOnStart.accept(this.mConfig);
            this.mOnStart.run(this.mInstanceIndex, this.mConfig);
        }
        }


        @Override
        @Override
@@ -299,7 +309,7 @@ public class ProtoLogDataSource extends DataSource<ProtoLogDataSource.Instance,


        @Override
        @Override
        public void onStop(StopCallbackArguments args) {
        public void onStop(StopCallbackArguments args) {
            this.mOnStop.accept(this.mConfig);
            this.mOnStop.run(this.mInstanceIndex, this.mConfig);
        }
        }
    }
    }
}
}
+2 −2
Original line number Original line Diff line number Diff line
@@ -67,7 +67,7 @@ public class ProtologDataSourceTest {


    @Test
    @Test
    public void allEnabledTraceMode() {
    public void allEnabledTraceMode() {
        final ProtoLogDataSource ds = new ProtoLogDataSource((c) -> {}, () -> {}, (c) -> {});
        final ProtoLogDataSource ds = new ProtoLogDataSource((idx, c) -> {}, () -> {}, (idx, c) -> {});


        final ProtoLogDataSource.TlsState tlsState = createTlsState(
        final ProtoLogDataSource.TlsState tlsState = createTlsState(
                DataSourceConfigOuterClass.DataSourceConfig.newBuilder().setProtologConfig(
                DataSourceConfigOuterClass.DataSourceConfig.newBuilder().setProtologConfig(
@@ -154,7 +154,7 @@ public class ProtologDataSourceTest {
    private ProtoLogDataSource.TlsState createTlsState(
    private ProtoLogDataSource.TlsState createTlsState(
            DataSourceConfigOuterClass.DataSourceConfig config) {
            DataSourceConfigOuterClass.DataSourceConfig config) {
        final ProtoLogDataSource ds =
        final ProtoLogDataSource ds =
                Mockito.spy(new ProtoLogDataSource((c) -> {}, () -> {}, (c) -> {}));
                Mockito.spy(new ProtoLogDataSource((idx, c) -> {}, () -> {}, (idx, c) -> {}));


        ProtoInputStream configStream = new ProtoInputStream(config.toByteArray());
        ProtoInputStream configStream = new ProtoInputStream(config.toByteArray());
        final ProtoLogDataSource.Instance dsInstance = Mockito.spy(
        final ProtoLogDataSource.Instance dsInstance = Mockito.spy(