1ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley/* 2ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley * Copyright (C) 2015, The Android Open Source Project 3ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley * 4ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley * Licensed under the Apache License, Version 2.0 (the "License"); 5ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley * you may not use this file except in compliance with the License. 6ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley * You may obtain a copy of the License at 7ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley * 8ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley * http://www.apache.org/licenses/LICENSE-2.0 9ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley * 10ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley * Unless required by applicable law or agreed to in writing, software 11ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley * distributed under the License is distributed on an "AS IS" BASIS, 12ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley * See the License for the specific language governing permissions and 14ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley * limitations under the License. 15ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley */ 16ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley 17ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley#ifndef AIDL_LINE_READER_H_ 18ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley#define AIDL_LINE_READER_H_ 19ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley 20ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley#include <memory> 21ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley#include <string> 22ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley 230a62067f35e957493bc37c4b42dfdcfc16353831Elliott Hughes#include <android-base/macros.h> 24ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley 25ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wileynamespace android { 26ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wileynamespace aidl { 27ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley 28ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wileyclass LineReader { 29ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley public: 30ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley LineReader() = default; 31ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley virtual ~LineReader() = default; 32ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley virtual bool ReadLine(std::string* line) = 0; 33ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley 34ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley static std::unique_ptr<LineReader> ReadFromFile( 35ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley const std::string& file_path); 36ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley static std::unique_ptr<LineReader> ReadFromMemory( 37ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley const std::string& contents); 38ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley 39ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley private: 40ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley DISALLOW_COPY_AND_ASSIGN(LineReader); 41ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley}; // class LineReader 42ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley 43ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley} // namespace android 44ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley} // namespace aidl 45ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley 46ef1409302aa97b1807e55c63588ac0a428f41a06Christopher Wiley#endif // AIDL_LINE_READER_H_ 47