diff options
author | 2013-08-14 10:26:20 +0000 | |
---|---|---|
committer | 2013-08-14 10:26:21 +0000 | |
commit | f795f2b7899fc62d8e96ac064265bf3d44b25704 (patch) | |
tree | 45c8add82eaf7933f6818abc3217ad63fe48c2af /java/src | |
parent | 0766f13391b9b442ba6cdc7c28fabca83a2756db (diff) | |
parent | bbc8a930f706d16e45dce2376ea388a0fd74bb7a (diff) | |
download | latinime-f795f2b7899fc62d8e96ac064265bf3d44b25704.tar.gz latinime-f795f2b7899fc62d8e96ac064265bf3d44b25704.tar.xz latinime-f795f2b7899fc62d8e96ac064265bf3d44b25704.zip |
Merge "Add FusionDictionaryBufferFromWritableByteBufferFactory."
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/inputmethod/latin/makedict/BinaryDictReader.java | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/java/src/com/android/inputmethod/latin/makedict/BinaryDictReader.java b/java/src/com/android/inputmethod/latin/makedict/BinaryDictReader.java index 57a583228..a4a7ce458 100644 --- a/java/src/com/android/inputmethod/latin/makedict/BinaryDictReader.java +++ b/java/src/com/android/inputmethod/latin/makedict/BinaryDictReader.java @@ -24,6 +24,7 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; +import java.io.RandomAccessFile; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; @@ -82,6 +83,32 @@ public class BinaryDictReader { } } + /** + * Creates FusionDictionaryBuffer from a RandomAccessFile. + */ + @UsedForTesting + public static final class FusionDictionaryBufferFromWritableByteBufferFactory + implements FusionDictionaryBufferFactory { + @Override + public FusionDictionaryBufferInterface getFusionDictionaryBuffer(final File file) + throws FileNotFoundException, IOException { + RandomAccessFile raFile = null; + ByteBuffer buffer = null; + try { + raFile = new RandomAccessFile(file, "rw"); + buffer = raFile.getChannel().map(FileChannel.MapMode.READ_WRITE, 0, file.length()); + } finally { + if (raFile != null) { + raFile.close(); + } + } + if (buffer != null) { + return new BinaryDictInputOutput.ByteBufferWrapper(buffer); + } + return null; + } + } + private final File mDictionaryBinaryFile; private FusionDictionaryBufferInterface mFusionDictionaryBuffer; |