diff options
author | Benoit Lamarche <benoitlamarche@google.com> | 2015-01-16 15:27:15 +0100 |
---|---|---|
committer | Benoit Lamarche <benoitlamarche@google.com> | 2015-01-19 11:43:57 +0100 |
commit | c18c09de7113fca856214fe27f539a89368f00d8 (patch) | |
tree | aa314a3e9aaf119dbe8bf10144cdbb38e9a64402 /sched | |
parent | 488686950112de6fee3bd74b15a97bc27323e740 (diff) | |
download | toolchain_jack-c18c09de7113fca856214fe27f539a89368f00d8.tar.gz toolchain_jack-c18c09de7113fca856214fe27f539a89368f00d8.tar.bz2 toolchain_jack-c18c09de7113fca856214fe27f539a89368f00d8.zip |
Add method "needsSequentialWriting" to VFS
Change-Id: I61a1994284503ab17adfb71102cb6f6c8f44dfa9
Diffstat (limited to 'sched')
11 files changed, 52 insertions, 0 deletions
diff --git a/sched/src/com/android/sched/vfs/DeflateFS.java b/sched/src/com/android/sched/vfs/DeflateFS.java index 71e69741..9fcda5ac 100644 --- a/sched/src/com/android/sched/vfs/DeflateFS.java +++ b/sched/src/com/android/sched/vfs/DeflateFS.java @@ -138,4 +138,9 @@ public class DeflateFS extends BaseVFS<BaseVDir, BaseVFile> implements VFS{ dir.changeVFS(this); return dir; } + + @Override + public boolean needsSequentialWriting() { + return vfs.needsSequentialWriting(); + } } diff --git a/sched/src/com/android/sched/vfs/DirectFS.java b/sched/src/com/android/sched/vfs/DirectFS.java index 1e8b761d..a55df61b 100644 --- a/sched/src/com/android/sched/vfs/DirectFS.java +++ b/sched/src/com/android/sched/vfs/DirectFS.java @@ -307,4 +307,9 @@ public class DirectFS extends BaseVFS<DirectVDir, DirectVFile> implements VFS { return new DirectNonRootVDir(this, parent, name); } + + @Override + public boolean needsSequentialWriting() { + return false; + } } diff --git a/sched/src/com/android/sched/vfs/DirectVFS.java b/sched/src/com/android/sched/vfs/DirectVFS.java index b1ca1fbc..a296d0e9 100644 --- a/sched/src/com/android/sched/vfs/DirectVFS.java +++ b/sched/src/com/android/sched/vfs/DirectVFS.java @@ -55,4 +55,9 @@ public class DirectVFS extends AbstractInputOutputVFS implements ParallelOutputV public String getPath() { return dir.getPath(); } + + @Override + public boolean needsSequentialWriting() { + return false; + } } diff --git a/sched/src/com/android/sched/vfs/GenericInputOutputVFS.java b/sched/src/com/android/sched/vfs/GenericInputOutputVFS.java index ba4464ba..d0b37725 100644 --- a/sched/src/com/android/sched/vfs/GenericInputOutputVFS.java +++ b/sched/src/com/android/sched/vfs/GenericInputOutputVFS.java @@ -67,4 +67,9 @@ public class GenericInputOutputVFS extends AbstractVFS implements InputOutputVFS public OutputVDir getRootOutputVDir() { return new GenericOutputVDir(vfs.getRootDir()); } + + @Override + public boolean needsSequentialWriting() { + return vfs.needsSequentialWriting(); + } } diff --git a/sched/src/com/android/sched/vfs/GenericOutputVFS.java b/sched/src/com/android/sched/vfs/GenericOutputVFS.java index 26a8bda3..410964e0 100644 --- a/sched/src/com/android/sched/vfs/GenericOutputVFS.java +++ b/sched/src/com/android/sched/vfs/GenericOutputVFS.java @@ -55,5 +55,10 @@ public class GenericOutputVFS extends AbstractVFS implements OutputVFS { public void close() throws IOException { vfs.close(); } + + @Override + public boolean needsSequentialWriting() { + return vfs.needsSequentialWriting(); + } } diff --git a/sched/src/com/android/sched/vfs/InputOutputZipVFS.java b/sched/src/com/android/sched/vfs/InputOutputZipVFS.java index 680712e4..e5aaa6c1 100644 --- a/sched/src/com/android/sched/vfs/InputOutputZipVFS.java +++ b/sched/src/com/android/sched/vfs/InputOutputZipVFS.java @@ -106,4 +106,9 @@ public class InputOutputZipVFS extends AbstractInputOutputVFS implements InputOu synchronized boolean isClosed() { return closed; } + + @Override + public boolean needsSequentialWriting() { + return false; + } } diff --git a/sched/src/com/android/sched/vfs/MessageDigestOutputVFS.java b/sched/src/com/android/sched/vfs/MessageDigestOutputVFS.java index 7d5aa3d2..7172e56d 100644 --- a/sched/src/com/android/sched/vfs/MessageDigestOutputVFS.java +++ b/sched/src/com/android/sched/vfs/MessageDigestOutputVFS.java @@ -232,4 +232,9 @@ public class MessageDigestOutputVFS extends MessageDigestVFS implements OutputVF private synchronized void addFile(@Nonnull MessageDigestOutputVFile file) { files.add(file); } + + @Override + public boolean needsSequentialWriting() { + return vfs.needsSequentialWriting(); + } } diff --git a/sched/src/com/android/sched/vfs/OutputVFS.java b/sched/src/com/android/sched/vfs/OutputVFS.java index ffa972d1..d7018c0e 100644 --- a/sched/src/com/android/sched/vfs/OutputVFS.java +++ b/sched/src/com/android/sched/vfs/OutputVFS.java @@ -30,4 +30,6 @@ public interface OutputVFS extends HasLocation, Closeable { String getPath(); @Nonnull OutputVDir getRootOutputVDir(); + + boolean needsSequentialWriting(); } diff --git a/sched/src/com/android/sched/vfs/OutputZipVFS.java b/sched/src/com/android/sched/vfs/OutputZipVFS.java index 8ac0e45a..622732b0 100644 --- a/sched/src/com/android/sched/vfs/OutputZipVFS.java +++ b/sched/src/com/android/sched/vfs/OutputZipVFS.java @@ -75,4 +75,9 @@ public class OutputZipVFS extends AbstractOutputVFS implements SequentialOutputV public String getPath() { return file.getPath(); } + + @Override + public boolean needsSequentialWriting() { + return true; + } } diff --git a/sched/src/com/android/sched/vfs/PrefixedOutputVFS.java b/sched/src/com/android/sched/vfs/PrefixedOutputVFS.java index 92621f36..262c24db 100644 --- a/sched/src/com/android/sched/vfs/PrefixedOutputVFS.java +++ b/sched/src/com/android/sched/vfs/PrefixedOutputVFS.java @@ -29,6 +29,8 @@ import javax.annotation.Nonnull; */ public class PrefixedOutputVFS extends AbstractOutputVFS { + private final boolean needsSequentialWriting; + public PrefixedOutputVFS(@Nonnull InputOutputVFS outputVFS, @Nonnull VPath path) throws NotDirectoryException, CannotCreateFileException { InputOutputVDir previousRootDir = outputVFS.getRootInputOutputVDir(); @@ -39,6 +41,7 @@ public class PrefixedOutputVFS extends AbstractOutputVFS { newRootDir = previousRootDir.createOutputVDir(path); } setRootDir(newRootDir); + needsSequentialWriting = outputVFS.needsSequentialWriting(); } @Override @@ -57,4 +60,9 @@ public class PrefixedOutputVFS extends AbstractOutputVFS { public void close() { // do not actually close } + + @Override + public boolean needsSequentialWriting() { + return needsSequentialWriting; + } } diff --git a/sched/src/com/android/sched/vfs/VFS.java b/sched/src/com/android/sched/vfs/VFS.java index 27f2dc25..4772ec2f 100644 --- a/sched/src/com/android/sched/vfs/VFS.java +++ b/sched/src/com/android/sched/vfs/VFS.java @@ -31,4 +31,6 @@ public interface VFS extends HasLocation, Closeable { @Nonnull VDir getRootDir(); + + boolean needsSequentialWriting(); } |