1/*
2 * Copyright (C) 2018 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
5 * except in compliance with the License. You may obtain a copy of the License at
6 *
7 *      http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software distributed under the
10 * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
11 * KIND, either express or implied. See the License for the specific language governing
12 * permissions and limitations under the License.
13 */
14
15package com.android.server.slice;
16
17import org.xmlpull.v1.XmlSerializer;
18
19import java.io.IOException;
20
21/**
22 * A parent object that cares when a Persistable changes and will schedule a serialization
23 * in response to the onPersistableDirty callback.
24 */
25public interface DirtyTracker {
26    void onPersistableDirty(Persistable obj);
27
28    /**
29     * An object that can be written to XML.
30     */
31    interface Persistable {
32        String getFileName();
33        void writeTo(XmlSerializer out) throws IOException;
34    }
35}
36