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

Commit 5c676004 authored by Pablo Gamito's avatar Pablo Gamito
Browse files

Extract ProtoLogDataSourceBuilder interface

We plan to use this in multiple places now. Not just in the PerfettoProtoLogImpl.

Bug: 364254249
Flag: EXEMPT refactor
Test: atest InternalTests:com.android.internal.protolog
Change-Id: I22c599a3edb7c580ac3b610ebcbe29393390dabe
parent 410c0f47
Loading
Loading
Loading
Loading
+0 −13
Original line number Diff line number Diff line
@@ -174,19 +174,6 @@ public class PerfettoProtoLogImpl extends IProtoLogClient.Stub implements IProto
        );
    }

    @VisibleForTesting
    public interface ProtoLogDataSourceBuilder {
        /**
         * Builder method for the DataSource the PerfettoProtoLogImpl is going to us.
         * @param onStart The onStart callback that should be used by the created datasource.
         * @param onFlush The onFlush callback that should be used by the created datasource.
         * @param onStop The onStop callback that should be used by the created datasource.
         * @return A new DataSource that uses the provided callbacks.
         */
        ProtoLogDataSource build(ProtoLogDataSource.Instance.TracingInstanceStartCallback onStart,
                Runnable onFlush, ProtoLogDataSource.Instance.TracingInstanceStopCallback onStop);
    }

    private PerfettoProtoLogImpl(
            @Nullable String viewerConfigFilePath,
            @Nullable ViewerConfigInputStreamProvider viewerConfigInputStreamProvider,
+29 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2024 The Android Open Source Project
 *
 * 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.
 */

package com.android.internal.protolog;

public interface ProtoLogDataSourceBuilder {
    /**
     * Builder method for the DataSource the PerfettoProtoLogImpl is going to us.
     * @param onStart The onStart callback that should be used by the created datasource.
     * @param onFlush The onFlush callback that should be used by the created datasource.
     * @param onStop The onStop callback that should be used by the created datasource.
     * @return A new DataSource that uses the provided callbacks.
     */
    ProtoLogDataSource build(ProtoLogDataSource.Instance.TracingInstanceStartCallback onStart,
            Runnable onFlush, ProtoLogDataSource.Instance.TracingInstanceStopCallback onStop);
}