/* * Copyright 2013 (c) Bryan Schumaker. */ #ifndef OCARINA_FILE_H #define OCARINA_FILE_H #include #include #define FILE_VERSION 0 enum FileLocHint { FILE_TYPE_CONFIG, FILE_TYPE_DATA, FILE_TYPE_LEGACY, }; enum OpenMode { OPEN_READ, OPEN_WRITE, NOT_OPEN, }; class File : public std::fstream { private: OpenMode mode; FileLocHint hint; std::string filepath; unsigned int version; void find_dir(std::string &); bool open_read(); bool open_write(); public: File(std::string, FileLocHint); ~File(); const char *get_filepath(); const unsigned int get_version(); bool exists(); bool open(OpenMode); bool close(); std::string getline(); }; #endif /* OCARINA_FILE_H */