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, optional androidx.datastore.core.handlers.ReplaceFileCorruptionHandler<T>? corruptionHandler, optional java.util.List<? extends androidx.datastore.core.DataMigration<T>> migrations, optional kotlinx.coroutines.CoroutineScope scope);
34    field public static final androidx.datastore.core.DataStoreFactory INSTANCE;
35  }
36
37  public final class FileStorage<T> implements androidx.datastore.core.Storage<T> {
38    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);
39    method public androidx.datastore.core.StorageConnection<T> createConnection();
40  }
41
42  public interface InterProcessCoordinator {
43    method public kotlinx.coroutines.flow.Flow<kotlin.Unit> getUpdateNotifications();
44    method public suspend Object? getVersion(kotlin.coroutines.Continuation<? super java.lang.Integer>);
45    method public suspend Object? incrementAndGetVersion(kotlin.coroutines.Continuation<? super java.lang.Integer>);
46    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>);
47    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>);
48    property public abstract kotlinx.coroutines.flow.Flow<kotlin.Unit> updateNotifications;
49  }
50
51  public final class InterProcessCoordinator_jvmKt {
52    method public static androidx.datastore.core.InterProcessCoordinator createSingleProcessCoordinator(java.io.File file);
53  }
54
55  public final class MultiProcessCoordinatorKt {
56    method public static androidx.datastore.core.InterProcessCoordinator createMultiProcessCoordinator(kotlin.coroutines.CoroutineContext context, java.io.File file);
57  }
58
59  public final class MultiProcessDataStoreFactory {
60    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);
61    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);
62    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);
63    method public <T> androidx.datastore.core.DataStore<T> create(androidx.datastore.core.Serializer<T> serializer, kotlin.jvm.functions.Function0<? extends java.io.File> produceFile);
64    method public <T> androidx.datastore.core.DataStore<T> create(androidx.datastore.core.Storage<T> storage);
65    method public <T> androidx.datastore.core.DataStore<T> create(androidx.datastore.core.Storage<T> storage, optional androidx.datastore.core.handlers.ReplaceFileCorruptionHandler<T>? corruptionHandler);
66    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);
67    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);
68    field public static final androidx.datastore.core.MultiProcessDataStoreFactory INSTANCE;
69  }
70
71  public interface ReadScope<T> extends androidx.datastore.core.Closeable {
72    method public suspend Object? readData(kotlin.coroutines.Continuation<? super T>);
73  }
74
75  public interface Serializer<T> {
76    method public T getDefaultValue();
77    method public suspend Object? readFrom(java.io.InputStream input, kotlin.coroutines.Continuation<? super T>);
78    method public suspend Object? writeTo(T t, java.io.OutputStream output, kotlin.coroutines.Continuation<? super kotlin.Unit>);
79    property public abstract T defaultValue;
80  }
81
82  public interface Storage<T> {
83    method public androidx.datastore.core.StorageConnection<T> createConnection();
84  }
85
86  public interface StorageConnection<T> extends androidx.datastore.core.Closeable {
87    method public androidx.datastore.core.InterProcessCoordinator getCoordinator();
88    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>);
89    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>);
90    property public abstract androidx.datastore.core.InterProcessCoordinator coordinator;
91  }
92
93  public final class StorageConnectionKt {
94    method public static suspend <T> Object? readData(androidx.datastore.core.StorageConnection<T>, kotlin.coroutines.Continuation<? super T>);
95    method public static suspend <T> Object? writeData(androidx.datastore.core.StorageConnection<T>, T value, kotlin.coroutines.Continuation<? super kotlin.Unit>);
96  }
97
98  public interface WriteScope<T> extends androidx.datastore.core.ReadScope<T> {
99    method public suspend Object? writeData(T value, kotlin.coroutines.Continuation<? super kotlin.Unit>);
100  }
101
102}
103
104package androidx.datastore.core.handlers {
105
106  public final class ReplaceFileCorruptionHandler<T> {
107    ctor public ReplaceFileCorruptionHandler(kotlin.jvm.functions.Function1<? super androidx.datastore.core.CorruptionException,? extends T> produceNewData);
108    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;
109  }
110
111}
112
113