1// Signature format: 4.0
2package androidx.datastore.core {
3
4  public interface Closeable {
5    method public void close();
6  }
7
8  public final class CloseableKt {
9    method public static inline <T extends androidx.datastore.core.Closeable, R> R use(T, kotlin.jvm.functions.Function1<? super T,? extends R> block);
10  }
11
12  public final class CorruptionException extends java.io.IOException {
13    ctor public CorruptionException(String message, optional Throwable? cause);
14  }
15
16  public interface DataMigration<T> {
17    method public suspend Object? cleanUp(kotlin.coroutines.Continuation<? super kotlin.Unit>);
18    method public suspend Object? migrate(T currentData, kotlin.coroutines.Continuation<? super T>);
19    method public suspend Object? shouldMigrate(T currentData, kotlin.coroutines.Continuation<? super java.lang.Boolean>);
20  }
21
22  public interface DataStore<T> {
23    method public kotlinx.coroutines.flow.Flow<T> getData();
24    method public suspend Object? updateData(kotlin.jvm.functions.Function2<? super T,? super kotlin.coroutines.Continuation<? super T>,? extends java.lang.Object?> transform, kotlin.coroutines.Continuation<? super T>);
25    property public abstract kotlinx.coroutines.flow.Flow<T> data;
26  }
27
28  public final class DataStoreFactory {
29    method public <T> androidx.datastore.core.DataStore<T> create(androidx.datastore.core.Serializer<T> serializer, optional androidx.datastore.core.handlers.ReplaceFileCorruptionHandler<T>? corruptionHandler, optional java.util.List<? extends androidx.datastore.core.DataMigration<T>> migrations, kotlin.jvm.functions.Function0<? extends java.io.File> produceFile);
30    method public <T> androidx.datastore.core.DataStore<T> create(androidx.datastore.core.Serializer<T> serializer, optional androidx.datastore.core.handlers.ReplaceFileCorruptionHandler<T>? corruptionHandler, optional java.util.List<? extends androidx.datastore.core.DataMigration<T>> migrations, optional kotlinx.coroutines.CoroutineScope scope, kotlin.jvm.functions.Function0<? extends java.io.File> produceFile);
31    method public <T> androidx.datastore.core.DataStore<T> create(androidx.datastore.core.Serializer<T> serializer, optional androidx.datastore.core.handlers.ReplaceFileCorruptionHandler<T>? corruptionHandler, kotlin.jvm.functions.Function0<? extends java.io.File> produceFile);
32    method public <T> androidx.datastore.core.DataStore<T> create(androidx.datastore.core.Serializer<T> serializer, kotlin.jvm.functions.Function0<? extends java.io.File> produceFile);
33    method public <T> androidx.datastore.core.DataStore<T> create(androidx.datastore.core.Storage<T> storage);
34    method public <T> androidx.datastore.core.DataStore<T> create(androidx.datastore.core.Storage<T> storage, optional androidx.datastore.core.handlers.ReplaceFileCorruptionHandler<T>? corruptionHandler);
35    method public <T> androidx.datastore.core.DataStore<T> create(androidx.datastore.core.Storage<T> storage, optional androidx.datastore.core.handlers.ReplaceFileCorruptionHandler<T>? corruptionHandler, optional java.util.List<? extends androidx.datastore.core.DataMigration<T>> migrations);
36    method public <T> androidx.datastore.core.DataStore<T> create(androidx.datastore.core.Storage<T> storage, optional androidx.datastore.core.handlers.ReplaceFileCorruptionHandler<T>? corruptionHandler, optional java.util.List<? extends androidx.datastore.core.DataMigration<T>> migrations, optional kotlinx.coroutines.CoroutineScope scope);
37    method @RequiresApi(android.os.Build.VERSION_CODES.N) public <T> androidx.datastore.core.DataStore<T> createInDeviceProtectedStorage(android.content.Context context, String fileName, androidx.datastore.core.Serializer<T> serializer);
38    method @RequiresApi(android.os.Build.VERSION_CODES.N) public <T> androidx.datastore.core.DataStore<T> createInDeviceProtectedStorage(android.content.Context context, String fileName, androidx.datastore.core.Serializer<T> serializer, optional androidx.datastore.core.handlers.ReplaceFileCorruptionHandler<T>? corruptionHandler);
39    method @RequiresApi(android.os.Build.VERSION_CODES.N) public <T> androidx.datastore.core.DataStore<T> createInDeviceProtectedStorage(android.content.Context context, String fileName, androidx.datastore.core.Serializer<T> serializer, optional androidx.datastore.core.handlers.ReplaceFileCorruptionHandler<T>? corruptionHandler, optional java.util.List<? extends androidx.datastore.core.DataMigration<T>> migrations);
40    method @RequiresApi(android.os.Build.VERSION_CODES.N) public <T> androidx.datastore.core.DataStore<T> createInDeviceProtectedStorage(android.content.Context context, String fileName, androidx.datastore.core.Serializer<T> serializer, optional androidx.datastore.core.handlers.ReplaceFileCorruptionHandler<T>? corruptionHandler, optional java.util.List<? extends androidx.datastore.core.DataMigration<T>> migrations, optional kotlinx.coroutines.CoroutineScope scope);
41    field public static final androidx.datastore.core.DataStoreFactory INSTANCE;
42  }
43
44  public final class DeviceProtectedDataStoreFile {
45    method @RequiresApi(android.os.Build.VERSION_CODES.N) public static java.io.File deviceProtectedDataStoreFile(android.content.Context, String fileName);
46  }
47
48  public final class FileStorage<T> implements androidx.datastore.core.Storage<T> {
49    ctor public FileStorage(androidx.datastore.core.Serializer<T> serializer, optional kotlin.jvm.functions.Function1<? super java.io.File,? extends androidx.datastore.core.InterProcessCoordinator> coordinatorProducer, kotlin.jvm.functions.Function0<? extends java.io.File> produceFile);
50    method public androidx.datastore.core.StorageConnection<T> createConnection();
51  }
52
53  public interface InterProcessCoordinator {
54    method public kotlinx.coroutines.flow.Flow<kotlin.Unit> getUpdateNotifications();
55    method public suspend Object? getVersion(kotlin.coroutines.Continuation<? super java.lang.Integer>);
56    method public suspend Object? incrementAndGetVersion(kotlin.coroutines.Continuation<? super java.lang.Integer>);
57    method public suspend <T> Object? lock(kotlin.jvm.functions.Function1<? super kotlin.coroutines.Continuation<? super T>,? extends java.lang.Object?> block, kotlin.coroutines.Continuation<? super T>);
58    method public suspend <T> Object? tryLock(kotlin.jvm.functions.Function2<? super java.lang.Boolean,? super kotlin.coroutines.Continuation<? super T>,? extends java.lang.Object?> block, kotlin.coroutines.Continuation<? super T>);
59    property public abstract kotlinx.coroutines.flow.Flow<kotlin.Unit> updateNotifications;
60  }
61
62  public final class InterProcessCoordinator_jvmKt {
63    method public static androidx.datastore.core.InterProcessCoordinator createSingleProcessCoordinator(java.io.File file);
64  }
65
66  public final class MultiProcessCoordinatorKt {
67    method public static androidx.datastore.core.InterProcessCoordinator createMultiProcessCoordinator(kotlin.coroutines.CoroutineContext context, java.io.File file);
68  }
69
70  public final class MultiProcessDataStoreFactory {
71    method public <T> androidx.datastore.core.DataStore<T> create(androidx.datastore.core.Serializer<T> serializer, optional androidx.datastore.core.handlers.ReplaceFileCorruptionHandler<T>? corruptionHandler, optional java.util.List<? extends androidx.datastore.core.DataMigration<T>> migrations, kotlin.jvm.functions.Function0<? extends java.io.File> produceFile);
72    method public <T> androidx.datastore.core.DataStore<T> create(androidx.datastore.core.Serializer<T> serializer, optional androidx.datastore.core.handlers.ReplaceFileCorruptionHandler<T>? corruptionHandler, optional java.util.List<? extends androidx.datastore.core.DataMigration<T>> migrations, optional kotlinx.coroutines.CoroutineScope scope, kotlin.jvm.functions.Function0<? extends java.io.File> produceFile);
73    method public <T> androidx.datastore.core.DataStore<T> create(androidx.datastore.core.Serializer<T> serializer, optional androidx.datastore.core.handlers.ReplaceFileCorruptionHandler<T>? corruptionHandler, kotlin.jvm.functions.Function0<? extends java.io.File> produceFile);
74    method public <T> androidx.datastore.core.DataStore<T> create(androidx.datastore.core.Serializer<T> serializer, kotlin.jvm.functions.Function0<? extends java.io.File> produceFile);
75    method public <T> androidx.datastore.core.DataStore<T> create(androidx.datastore.core.Storage<T> storage);
76    method public <T> androidx.datastore.core.DataStore<T> create(androidx.datastore.core.Storage<T> storage, optional androidx.datastore.core.handlers.ReplaceFileCorruptionHandler<T>? corruptionHandler);
77    method public <T> androidx.datastore.core.DataStore<T> create(androidx.datastore.core.Storage<T> storage, optional androidx.datastore.core.handlers.ReplaceFileCorruptionHandler<T>? corruptionHandler, optional java.util.List<? extends androidx.datastore.core.DataMigration<T>> migrations);
78    method public <T> androidx.datastore.core.DataStore<T> create(androidx.datastore.core.Storage<T> storage, optional androidx.datastore.core.handlers.ReplaceFileCorruptionHandler<T>? corruptionHandler, optional java.util.List<? extends androidx.datastore.core.DataMigration<T>> migrations, optional kotlinx.coroutines.CoroutineScope scope);
79    field public static final androidx.datastore.core.MultiProcessDataStoreFactory INSTANCE;
80  }
81
82  public interface ReadScope<T> extends androidx.datastore.core.Closeable {
83    method public suspend Object? readData(kotlin.coroutines.Continuation<? super T>);
84  }
85
86  public interface Serializer<T> {
87    method public T getDefaultValue();
88    method public suspend Object? readFrom(java.io.InputStream input, kotlin.coroutines.Continuation<? super T>);
89    method public suspend Object? writeTo(T t, java.io.OutputStream output, kotlin.coroutines.Continuation<? super kotlin.Unit>);
90    property public abstract T defaultValue;
91  }
92
93  public interface Storage<T> {
94    method public androidx.datastore.core.StorageConnection<T> createConnection();
95  }
96
97  public interface StorageConnection<T> extends androidx.datastore.core.Closeable {
98    method public androidx.datastore.core.InterProcessCoordinator getCoordinator();
99    method public suspend <R> Object? readScope(kotlin.jvm.functions.Function3<? super androidx.datastore.core.ReadScope<T>,? super java.lang.Boolean,? super kotlin.coroutines.Continuation<? super R>,? extends java.lang.Object?> block, kotlin.coroutines.Continuation<? super R>);
100    method public suspend Object? writeScope(kotlin.jvm.functions.Function2<? super androidx.datastore.core.WriteScope<T>,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,? extends java.lang.Object?> block, kotlin.coroutines.Continuation<? super kotlin.Unit>);
101    property public abstract androidx.datastore.core.InterProcessCoordinator coordinator;
102  }
103
104  public final class StorageConnectionKt {
105    method public static suspend <T> Object? readData(androidx.datastore.core.StorageConnection<T>, kotlin.coroutines.Continuation<? super T>);
106    method public static suspend <T> Object? writeData(androidx.datastore.core.StorageConnection<T>, T value, kotlin.coroutines.Continuation<? super kotlin.Unit>);
107  }
108
109  public interface WriteScope<T> extends androidx.datastore.core.ReadScope<T> {
110    method public suspend Object? writeData(T value, kotlin.coroutines.Continuation<? super kotlin.Unit>);
111  }
112
113}
114
115package androidx.datastore.core.handlers {
116
117  public final class ReplaceFileCorruptionHandler<T> {
118    ctor public ReplaceFileCorruptionHandler(kotlin.jvm.functions.Function1<? super androidx.datastore.core.CorruptionException,? extends T> produceNewData);
119    method @kotlin.jvm.Throws(exceptionClasses=IOException::class) public suspend Object? handleCorruption(androidx.datastore.core.CorruptionException ex, kotlin.coroutines.Continuation<? super T>) throws java.io.IOException;
120  }
121
122}
123
124