From 1636ee1728f2193abd00db2c2969beb81f6dbf22 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Wed, 29 Jun 2016 20:18:33 -0400 Subject: [PATCH] add FileLoader::get_line() --- src/core/FileLoader.cc | 11 +++++++++++ src/core/FileLoader.h | 4 +++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/core/FileLoader.cc b/src/core/FileLoader.cc index 1083d57..9b301b4 100644 --- a/src/core/FileLoader.cc +++ b/src/core/FileLoader.cc @@ -95,3 +95,14 @@ void FileLoader::load_buf(size_t size) m_lines = lines[LINE_ENDING_LF]; } } + +std::shared_ptr FileLoader::get_line(size_t index) +{ + if (index > num_lines()) + { + return NULL; + } + + const LineIndexPair & line_index_pair = (*m_lines)[index]; + return std::make_shared(line_index_pair.first, line_index_pair.second); +} diff --git a/src/core/FileLoader.h b/src/core/FileLoader.h index 8ca7dd8..f17ed02 100644 --- a/src/core/FileLoader.h +++ b/src/core/FileLoader.h @@ -4,6 +4,7 @@ #include #include #include +#include "Text.h" class FileLoader { @@ -19,7 +20,7 @@ public: FileLoader(); ~FileLoader(); bool load(const char * fname); - unsigned int num_lines() + size_t num_lines() { if (m_lines == NULL) { @@ -31,6 +32,7 @@ public: } } int get_line_endings() { return m_line_endings; } + std::shared_ptr get_line(size_t index); protected: typedef std::pair LineIndexPair; typedef std::vector LineIndexPairVector;