diff options
author | 2013-08-14 03:30:51 -0700 | |
---|---|---|
committer | 2013-08-14 03:30:51 -0700 | |
commit | 74537adb7dfa73e79a3b63f558e249fc25337902 (patch) | |
tree | ad050bdfbfb4d70d04f5beb6ffd3bdfee3660ead /java | |
parent | 4d29ac2fb107ecb9766880f31b3d45fe9fc20834 (diff) | |
parent | f795f2b7899fc62d8e96ac064265bf3d44b25704 (diff) | |
download | latinime-74537adb7dfa73e79a3b63f558e249fc25337902.tar.gz latinime-74537adb7dfa73e79a3b63f558e249fc25337902.tar.xz latinime-74537adb7dfa73e79a3b63f558e249fc25337902.zip |
am f795f2b7: Merge "Add FusionDictionaryBufferFromWritableByteBufferFactory."
* commit 'f795f2b7899fc62d8e96ac064265bf3d44b25704':
Add FusionDictionaryBufferFromWritableByteBufferFactory.
Diffstat (limited to 'java')
-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; |