Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9e38fbaa authored by Keisuke Kuroyanagi's avatar Keisuke Kuroyanagi Committed by Android (Google) Code Review
Browse files

Merge "Concatenate dict buffers other than header to a single file."

parents 63fc1595 2ac93429
Loading
Loading
Loading
Loading
+7 −9
Original line number Diff line number Diff line
@@ -17,6 +17,9 @@
#ifndef LATINIME_BIGRAM_DICT_CONTENT_H
#define LATINIME_BIGRAM_DICT_CONTENT_H

#include <cstdint>
#include <cstdio>

#include "defines.h"
#include "suggest/policyimpl/dictionary/structure/v4/content/bigram_entry.h"
#include "suggest/policyimpl/dictionary/structure/v4/content/sparse_table_dict_content.h"
@@ -27,12 +30,9 @@ namespace latinime {

class BigramDictContent : public SparseTableDictContent {
 public:
    BigramDictContent(const char *const dictPath, const bool hasHistoricalInfo,
    BigramDictContent(uint8_t *const *buffers, const int *bufferSizes, const bool hasHistoricalInfo,
            const bool isUpdatable)
            : SparseTableDictContent(dictPath,
                      Ver4DictConstants::BIGRAM_LOOKUP_TABLE_FILE_EXTENSION,
                      Ver4DictConstants::BIGRAM_CONTENT_TABLE_FILE_EXTENSION,
                      Ver4DictConstants::BIGRAM_FILE_EXTENSION, isUpdatable,
            : SparseTableDictContent(buffers, bufferSizes, isUpdatable,
                      Ver4DictConstants::BIGRAM_ADDRESS_TABLE_BLOCK_SIZE,
                      Ver4DictConstants::BIGRAM_ADDRESS_TABLE_DATA_SIZE),
              mHasHistoricalInfo(hasHistoricalInfo) {}
@@ -87,10 +87,8 @@ class BigramDictContent : public SparseTableDictContent {
        return getUpdatableAddressLookupTable()->set(terminalId, bigramListPos);
    }

    bool flushToFile(const char *const dictPath) const {
        return flush(dictPath, Ver4DictConstants::BIGRAM_LOOKUP_TABLE_FILE_EXTENSION,
                Ver4DictConstants::BIGRAM_CONTENT_TABLE_FILE_EXTENSION,
                Ver4DictConstants::BIGRAM_FILE_EXTENSION);
    bool flushToFile(FILE *const file) const {
        return flush(file);
    }

    bool runGC(const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
+0 −1
Original line number Diff line number Diff line
@@ -24,7 +24,6 @@ namespace latinime {
class DictContent {
 public:
    virtual ~DictContent() {}
    virtual bool isValid() const = 0;

 protected:
    DictContent() {}
+3 −4
Original line number Diff line number Diff line
@@ -71,7 +71,7 @@ bool ProbabilityDictContent::setProbabilityEntry(const int terminalId,
    return writeEntry(probabilityEntry, entryPos);
}

bool ProbabilityDictContent::flushToFile(const char *const dictPath) const {
bool ProbabilityDictContent::flushToFile(FILE *const file) const {
    if (getEntryPos(mSize) < getBuffer()->getTailPosition()) {
        ProbabilityDictContent probabilityDictContentToWrite(mHasHistoricalInfo);
        for (int i = 0; i < mSize; ++i) {
@@ -81,10 +81,9 @@ bool ProbabilityDictContent::flushToFile(const char *const dictPath) const {
                return false;
            }
        }
        return probabilityDictContentToWrite.flush(dictPath,
                Ver4DictConstants::FREQ_FILE_EXTENSION);
        return probabilityDictContentToWrite.flush(file);
    } else {
        return flush(dictPath, Ver4DictConstants::FREQ_FILE_EXTENSION);
        return flush(file);
    }
}

+7 −4
Original line number Diff line number Diff line
@@ -17,6 +17,9 @@
#ifndef LATINIME_PROBABILITY_DICT_CONTENT_H
#define LATINIME_PROBABILITY_DICT_CONTENT_H

#include <cstdint>
#include <cstdio>

#include "defines.h"
#include "suggest/policyimpl/dictionary/structure/v4/content/single_dict_content.h"
#include "suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.h"
@@ -29,9 +32,9 @@ class ProbabilityEntry;

class ProbabilityDictContent : public SingleDictContent {
 public:
    ProbabilityDictContent(const char *const dictPath, const bool hasHistoricalInfo,
            const bool isUpdatable)
            : SingleDictContent(dictPath, Ver4DictConstants::FREQ_FILE_EXTENSION, isUpdatable),
    ProbabilityDictContent(uint8_t *const buffer, const int bufferSize,
            const bool hasHistoricalInfo, const bool isUpdatable)
            : SingleDictContent(buffer, bufferSize, isUpdatable),
              mHasHistoricalInfo(hasHistoricalInfo),
              mSize(getBuffer()->getTailPosition() / getEntrySize()) {}

@@ -42,7 +45,7 @@ class ProbabilityDictContent : public SingleDictContent {

    bool setProbabilityEntry(const int terminalId, const ProbabilityEntry *const probabilityEntry);

    bool flushToFile(const char *const dictPath) const;
    bool flushToFile(FILE *const file) const;

    bool runGC(const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
            const ProbabilityDictContent *const originalProbabilityDictContent);
+0 −6
Original line number Diff line number Diff line
@@ -59,12 +59,6 @@ int ShortcutDictContent::getShortcutListHeadPos(const int terminalId) const {
    return addressLookupTable->get(terminalId);
}

bool ShortcutDictContent::flushToFile(const char *const dictPath) const {
    return flush(dictPath, Ver4DictConstants::SHORTCUT_LOOKUP_TABLE_FILE_EXTENSION,
            Ver4DictConstants::SHORTCUT_CONTENT_TABLE_FILE_EXTENSION,
            Ver4DictConstants::SHORTCUT_FILE_EXTENSION);
}

bool ShortcutDictContent::runGC(
        const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
        const ShortcutDictContent *const originalShortcutDictContent) {
Loading