mirror of
https://github.com/androidx/media.git
synced 2025-05-07 15:40:37 +08:00
Move syncFileDescriptor to use an experimental method
PiperOrigin-RevId: 227520168
This commit is contained in:
parent
1e99224019
commit
ae65bcecd4
@ -42,8 +42,8 @@ public final class CacheDataSink implements DataSink {
|
|||||||
private final Cache cache;
|
private final Cache cache;
|
||||||
private final long maxCacheFileSize;
|
private final long maxCacheFileSize;
|
||||||
private final int bufferSize;
|
private final int bufferSize;
|
||||||
private final boolean syncFileDescriptor;
|
|
||||||
|
|
||||||
|
private boolean syncFileDescriptor;
|
||||||
private DataSpec dataSpec;
|
private DataSpec dataSpec;
|
||||||
private File file;
|
private File file;
|
||||||
private OutputStream outputStream;
|
private OutputStream outputStream;
|
||||||
@ -63,18 +63,6 @@ public final class CacheDataSink implements DataSink {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructs a CacheDataSink using the {@link #DEFAULT_BUFFER_SIZE}.
|
|
||||||
*
|
|
||||||
* @param cache The cache into which data should be written.
|
|
||||||
* @param maxCacheFileSize The maximum size of a cache file, in bytes. If the sink is opened for
|
|
||||||
* a {@link DataSpec} whose size exceeds this value, then the data will be fragmented into
|
|
||||||
* multiple cache files.
|
|
||||||
*/
|
|
||||||
public CacheDataSink(Cache cache, long maxCacheFileSize) {
|
|
||||||
this(cache, maxCacheFileSize, DEFAULT_BUFFER_SIZE, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructs a CacheDataSink using the {@link #DEFAULT_BUFFER_SIZE}.
|
* Constructs a CacheDataSink using the {@link #DEFAULT_BUFFER_SIZE}.
|
||||||
*
|
*
|
||||||
@ -82,10 +70,9 @@ public final class CacheDataSink implements DataSink {
|
|||||||
* @param maxCacheFileSize The maximum size of a cache file, in bytes. If the sink is opened for a
|
* @param maxCacheFileSize The maximum size of a cache file, in bytes. If the sink is opened for a
|
||||||
* {@link DataSpec} whose size exceeds this value, then the data will be fragmented into
|
* {@link DataSpec} whose size exceeds this value, then the data will be fragmented into
|
||||||
* multiple cache files.
|
* multiple cache files.
|
||||||
* @param syncFileDescriptor Whether file descriptors are sync'd when closing output streams.
|
|
||||||
*/
|
*/
|
||||||
public CacheDataSink(Cache cache, long maxCacheFileSize, boolean syncFileDescriptor) {
|
public CacheDataSink(Cache cache, long maxCacheFileSize) {
|
||||||
this(cache, maxCacheFileSize, DEFAULT_BUFFER_SIZE, syncFileDescriptor);
|
this(cache, maxCacheFileSize, DEFAULT_BUFFER_SIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -97,23 +84,21 @@ public final class CacheDataSink implements DataSink {
|
|||||||
* value disables buffering.
|
* value disables buffering.
|
||||||
*/
|
*/
|
||||||
public CacheDataSink(Cache cache, long maxCacheFileSize, int bufferSize) {
|
public CacheDataSink(Cache cache, long maxCacheFileSize, int bufferSize) {
|
||||||
this(cache, maxCacheFileSize, bufferSize, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param cache The cache into which data should be written.
|
|
||||||
* @param maxCacheFileSize The maximum size of a cache file, in bytes. If the sink is opened for a
|
|
||||||
* {@link DataSpec} whose size exceeds this value, then the data will be fragmented into
|
|
||||||
* multiple cache files.
|
|
||||||
* @param bufferSize The buffer size in bytes for writing to a cache file. A zero or negative
|
|
||||||
* value disables buffering.
|
|
||||||
* @param syncFileDescriptor Whether file descriptors are sync'd when closing output streams.
|
|
||||||
*/
|
|
||||||
public CacheDataSink(
|
|
||||||
Cache cache, long maxCacheFileSize, int bufferSize, boolean syncFileDescriptor) {
|
|
||||||
this.cache = Assertions.checkNotNull(cache);
|
this.cache = Assertions.checkNotNull(cache);
|
||||||
this.maxCacheFileSize = maxCacheFileSize;
|
this.maxCacheFileSize = maxCacheFileSize;
|
||||||
this.bufferSize = bufferSize;
|
this.bufferSize = bufferSize;
|
||||||
|
syncFileDescriptor = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets whether file descriptors are synced when closing output streams.
|
||||||
|
*
|
||||||
|
* <p>This method is experimental, and will be renamed or removed in a future release. It should
|
||||||
|
* only be called before the renderer is used.
|
||||||
|
*
|
||||||
|
* @param syncFileDescriptor Whether file descriptors are synced when closing output streams.
|
||||||
|
*/
|
||||||
|
public void experimental_setSyncFileDescriptor(boolean syncFileDescriptor) {
|
||||||
this.syncFileDescriptor = syncFileDescriptor;
|
this.syncFileDescriptor = syncFileDescriptor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ import java.io.OutputStream;
|
|||||||
* has successfully completed.
|
* has successfully completed.
|
||||||
*
|
*
|
||||||
* <p>Atomic file guarantees file integrity by ensuring that a file has been completely written and
|
* <p>Atomic file guarantees file integrity by ensuring that a file has been completely written and
|
||||||
* sync'd to disk before removing its backup. As long as the backup file exists, the original file
|
* synced to disk before removing its backup. As long as the backup file exists, the original file
|
||||||
* is considered to be invalid (left over from a previous attempt to write the file).
|
* is considered to be invalid (left over from a previous attempt to write the file).
|
||||||
*
|
*
|
||||||
* <p>Atomic file does not confer any file locking semantics. Do not use this class when the file
|
* <p>Atomic file does not confer any file locking semantics. Do not use this class when the file
|
||||||
|
Loading…
x
Reference in New Issue
Block a user