This commit is contained in:
codeboss 2025-02-07 15:06:27 +08:00
parent ddd88463a8
commit ea760da50f
2 changed files with 11 additions and 11 deletions

View File

@ -5,12 +5,12 @@
using namespace lib_words;
std::shared_ptr<const IWordBase> WordReader::wordsFrom(const QString& path) const {
std::shared_ptr<const IPrimitiveWord> WordReader::wordsFrom(const QString& path) const {
auto primary_words = extract_primary(path);
if (!primary_words.size())
return nullptr;
std::shared_ptr<const IWordBase> prev_ptr = std::make_shared<const WordImpl>(primary_words.last(), nullptr);
std::shared_ptr<const IPrimitiveWord> prev_ptr = std::make_shared<const WordImpl>(primary_words.last(), nullptr);
for (auto idx = primary_words.size() - 2; idx >= 0; --idx) {
auto content_ptr = primary_words[idx];
prev_ptr = std::make_shared<const WordImpl>(content_ptr, prev_ptr);
@ -58,7 +58,7 @@ QList<std::shared_ptr<const IWordBase>> WordReader::parse_line(uint64_t start_po
return primary_words;
}
WordImpl::WordImpl(std::shared_ptr<const IWordBase> content, std::shared_ptr<const IWordBase> next)
WordImpl::WordImpl(std::shared_ptr<const IWordBase> content, std::shared_ptr<const IPrimitiveWord> next)
: content_ptr(content), next_ptr(next) { }
QString WordImpl::file() const {
@ -81,7 +81,7 @@ int WordImpl::column() const {
return content_ptr->column();
}
std::shared_ptr<const IWordBase> WordImpl::nextWord() const {
std::shared_ptr<const IPrimitiveWord> WordImpl::nextWord() const {
return next_ptr;
}
@ -116,6 +116,6 @@ int WordContent::column() const {
return col_n;
}
std::shared_ptr<const IWordBase> WordContent::nextWord() const {
std::shared_ptr<const IPrimitiveWord> WordContent::nextWord() const {
return nullptr;
}

View File

@ -45,7 +45,7 @@ namespace lib_words {
*
* \return
*/
virtual std::shared_ptr<const IWordBase> nextWord() const = 0;
virtual std::shared_ptr<const IPrimitiveWord> nextWord() const = 0;
};
/**
@ -67,16 +67,16 @@ namespace lib_words {
virtual QString content() const override;
virtual int row() const override;
virtual int column() const override;
virtual std::shared_ptr<const IWordBase> nextWord() const override;
virtual std::shared_ptr<const IPrimitiveWord> nextWord() const override;
};
class LIBWORDS_EXPORT WordImpl : public IPrimitiveWord {
private:
std::shared_ptr<const IWordBase> content_ptr;
std::shared_ptr<const IWordBase> next_ptr;
std::shared_ptr<const IPrimitiveWord> next_ptr;
public:
WordImpl(std::shared_ptr<const IWordBase> content, std::shared_ptr<const IWordBase> next);
WordImpl(std::shared_ptr<const IWordBase> content, std::shared_ptr<const IPrimitiveWord> next);
// 通过 IWordBase 继承
QString file() const override;
@ -84,7 +84,7 @@ namespace lib_words {
QString content() const override;
int row() const override;
int column() const override;
std::shared_ptr<const IWordBase> nextWord() const override;
std::shared_ptr<const IPrimitiveWord> nextWord() const override;
};
@ -100,7 +100,7 @@ namespace lib_words {
/**
* @brief
*/
std::shared_ptr<const IWordBase> wordsFrom(const QString& path) const;
std::shared_ptr<const IPrimitiveWord> wordsFrom(const QString& path) const;
};