Loading core/java/com/android/internal/protolog/PerfettoProtoLogImpl.java +4 −2 Original line number Original line Diff line number Diff line Loading @@ -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]++; Loading Loading @@ -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; Loading core/java/com/android/internal/protolog/ProtoLogDataSource.java +20 −10 Original line number Original line Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -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 Loading @@ -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); } } } } } } tests/Internal/src/com/android/internal/protolog/ProtologDataSourceTest.java +2 −2 Original line number Original line Diff line number Diff line Loading @@ -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( Loading Loading @@ -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( Loading Loading
core/java/com/android/internal/protolog/PerfettoProtoLogImpl.java +4 −2 Original line number Original line Diff line number Diff line Loading @@ -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]++; Loading Loading @@ -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; Loading
core/java/com/android/internal/protolog/ProtoLogDataSource.java +20 −10 Original line number Original line Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -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 Loading @@ -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); } } } } } }
tests/Internal/src/com/android/internal/protolog/ProtologDataSourceTest.java +2 −2 Original line number Original line Diff line number Diff line Loading @@ -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( Loading Loading @@ -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( Loading