Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/kpu/kenlm.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenneth Heafield <github@kheafield.com>2014-02-06 00:49:15 +0400
committerKenneth Heafield <github@kheafield.com>2014-02-06 00:49:15 +0400
commit71add7895757e478f09a2751cf9f77e8d6672300 (patch)
tree63f29f5974369dd845044d850e07641667eae786
parentd4035115213e3e458766f93c5ab4330ad2e73fa7 (diff)
By popular demand, ReadLineOrEOF for while loops
-rw-r--r--util/file_piece.cc7
-rw-r--r--util/file_piece.hh3
2 files changed, 10 insertions, 0 deletions
diff --git a/util/file_piece.cc b/util/file_piece.cc
index 9c7e00c..4aaa250 100644
--- a/util/file_piece.cc
+++ b/util/file_piece.cc
@@ -84,6 +84,13 @@ StringPiece FilePiece::ReadLine(char delim) {
}
}
+bool FilePiece::ReadLineOrEOF(StringPiece &to, char delim) {
+ try {
+ to = ReadLine(delim);
+ } catch (const util::EndOfFileException &e) { return false; }
+ return true;
+}
+
float FilePiece::ReadFloat() {
return ReadNumber<float>();
}
diff --git a/util/file_piece.hh b/util/file_piece.hh
index ed3dc5a..1054c18 100644
--- a/util/file_piece.hh
+++ b/util/file_piece.hh
@@ -60,6 +60,9 @@ class FilePiece {
// It is similar to getline in that way.
StringPiece ReadLine(char delim = '\n');
+ // Doesn't throw EndOfFileException, just returns false.
+ bool ReadLineOrEOF(StringPiece &to, char delim = '\n');
+
float ReadFloat();
double ReadDouble();
long int ReadLong();