fs/io/TextFile: add interface LineReader
This commit is contained in:
		
							
								
								
									
										33
									
								
								src/fs/io/LineReader.hxx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								src/fs/io/LineReader.hxx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | ||||
| /* | ||||
|  * Copyright 2003-2021 The Music Player Daemon Project | ||||
|  * http://www.musicpd.org | ||||
|  * | ||||
|  * This program is free software; you can redistribute it and/or modify | ||||
|  * it under the terms of the GNU General Public License as published by | ||||
|  * the Free Software Foundation; either version 2 of the License, or | ||||
|  * (at your option) any later version. | ||||
|  * | ||||
|  * This program is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  * GNU General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU General Public License along | ||||
|  * with this program; if not, write to the Free Software Foundation, Inc., | ||||
|  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | ||||
|  */ | ||||
|  | ||||
| #pragma once | ||||
|  | ||||
| class LineReader | ||||
| { | ||||
| public: | ||||
| 	/** | ||||
| 	 * Reads a line from the input file, and strips trailing | ||||
| 	 * space.  There is a reasonable maximum line length, only to | ||||
| 	 * prevent denial of service. | ||||
| 	 * | ||||
| 	 * @return a pointer to the line, or nullptr on end-of-file | ||||
| 	 */ | ||||
| 	virtual char *ReadLine() = 0; | ||||
| }; | ||||
| @@ -20,6 +20,7 @@ | ||||
| #ifndef MPD_TEXT_FILE_HXX | ||||
| #define MPD_TEXT_FILE_HXX | ||||
|  | ||||
| #include "LineReader.hxx" | ||||
| #include "config.h" | ||||
|  | ||||
| #include <memory> | ||||
| @@ -29,7 +30,7 @@ class FileReader; | ||||
| class AutoGunzipReader; | ||||
| class BufferedReader; | ||||
|  | ||||
| class TextFile { | ||||
| class TextFile final : public LineReader { | ||||
| 	const std::unique_ptr<FileReader> file_reader; | ||||
|  | ||||
| #ifdef ENABLE_ZLIB | ||||
| @@ -45,14 +46,8 @@ public: | ||||
|  | ||||
| 	~TextFile() noexcept; | ||||
|  | ||||
| 	/** | ||||
| 	 * Reads a line from the input file, and strips trailing | ||||
| 	 * space.  There is a reasonable maximum line length, only to | ||||
| 	 * prevent denial of service. | ||||
| 	 * | ||||
| 	 * @return a pointer to the line, or nullptr on end-of-file | ||||
| 	 */ | ||||
| 	char *ReadLine(); | ||||
| 	/* virtual methods from class LineReader */ | ||||
| 	char *ReadLine() override; | ||||
| }; | ||||
|  | ||||
| #endif | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Max Kellermann
					Max Kellermann