diff options
Diffstat (limited to 'plugins/Dbx_kyoto/src/kyotocabinet/kcfile.h')
-rw-r--r-- | plugins/Dbx_kyoto/src/kyotocabinet/kcfile.h | 388 |
1 files changed, 0 insertions, 388 deletions
diff --git a/plugins/Dbx_kyoto/src/kyotocabinet/kcfile.h b/plugins/Dbx_kyoto/src/kyotocabinet/kcfile.h deleted file mode 100644 index c3436cb14c..0000000000 --- a/plugins/Dbx_kyoto/src/kyotocabinet/kcfile.h +++ /dev/null @@ -1,388 +0,0 @@ -/************************************************************************************************* - * Filesystem abstraction - * Copyright (C) 2009-2012 FAL Labs - * This file is part of Kyoto Cabinet. - * 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 - * 3 of the License, or 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, see <http://www.gnu.org/licenses/>. - *************************************************************************************************/ - - -#ifndef _KCFILE_H // duplication check -#define _KCFILE_H - -#include <kccommon.h> -#include <kcutil.h> -#include <kcthread.h> - -namespace kyotocabinet { // common namespace - - -/** - * Filesystem abstraction. - */ -class File { - public: - struct Status; - public: - /** Path delimiter character. */ - static const char PATHCHR; - /** Path delimiter string. */ - static const char* const PATHSTR; - /** Extension delimiter character. */ - static const char EXTCHR; - /** Extension delimiter string. */ - static const char* const EXTSTR; - /** Current directory string. */ - static const char* const CDIRSTR; - /** Parent directory string. */ - static const char* const PDIRSTR; - /** - * Status information. - */ - struct Status { - bool isdir; ///< whether directory or not - int64_t size; ///< file size - int64_t mtime; ///< last modified time - }; - /** - * Open modes. - */ - enum OpenMode { - OREADER = 1 << 0, ///< open as a reader - OWRITER = 1 << 1, ///< open as a writer - OCREATE = 1 << 2, ///< writer creating - OTRUNCATE = 1 << 3, ///< writer truncating - ONOLOCK = 1 << 4, ///< open without locking - OTRYLOCK = 1 << 5 ///< lock without blocking - }; - /** - * Default constructor. - */ - explicit File(); - /** - * Destructor. - * @note If the file is not closed, it is closed implicitly. - */ - ~File(); - /** - * Get the last happened error information. - * @return the last happened error information. - */ - const char* error() const; - /** - * Open a file. - * @param path the path of a file. - * @param mode the connection mode. File::OWRITER as a writer, File::OREADER as a reader. - * The following may be added to the writer mode by bitwise-or: File::OCREATE, which means it - * creates a new file if the file does not exist, File::OTRUNCATE, which means it creates a - * new file regardless if the file exists. The following may be added to both of the reader - * mode and the writer mode by bitwise-or: File::ONOLOCK, which means it opens the file - * without file locking, File::TRYLOCK, which means locking is performed without blocking. - * @param msiz the size of the internal memory-mapped region. - * @return true on success, or false on failure. - */ - bool open(const std::string& path, uint32_t mode = OWRITER | OCREATE, int64_t msiz = 0); - /** - * Close the file. - * @return true on success, or false on failure. - */ - bool close(); - /** - * Write data. - * @param off the offset of the destination. - * @param buf the pointer to the data region. - * @param size the size of the data region. - * @return true on success, or false on failure. - */ - bool write(int64_t off, const void* buf, size_t size); - /** - * Write data. - * @note Equal to the original File::write method except that the sigunature is different. - */ - bool write(int64_t off, const std::string& str) { - _assert_(off >= 0); - return write(off, str.c_str(), str.size()); - } - /** - * Write data with assuring the region does not spill from the file size. - * @param off the offset of the destination. - * @param buf the pointer to the data region. - * @param size the size of the data region. - * @return true on success, or false on failure. - */ - bool write_fast(int64_t off, const void* buf, size_t size); - /** - * Write data with assuring the region does not spill from the file size. - * @note Equal to the original File::write_fast method except that the sigunature is different. - */ - bool write_fast(int64_t off, const std::string& str) { - _assert_(off >= 0); - return write_fast(off, str.c_str(), str.size()); - } - /** - * Write data at the end of the file. - * @param buf the pointer to the data region. - * @param size the size of the data region. - * @return true on success, or false on failure. - */ - bool append(const void* buf, size_t size); - /** - * Write data at the end of the file. - * @note Equal to the original File::append method except that the sigunature is different. - */ - bool append(const std::string& str) { - _assert_(true); - return append(str.c_str(), str.size()); - } - /** - * Read data. - * @param off the offset of the source. - * @param buf the pointer to the destination region. - * @param size the size of the data to be read. - * @return true on success, or false on failure. - */ - bool read(int64_t off, void* buf, size_t size); - /** - * Read data. - * @note Equal to the original File::read method except that the sigunature is different. - */ - bool read(int64_t off, std::string* buf, size_t size) { - _assert_(off >= 0 && buf); - char* tbuf = new char[size]; - if (!read(off, tbuf, size)) { - delete[] tbuf; - return false; - } - buf->append(std::string(tbuf, size)); - delete[] tbuf; - return true; - } - /** - * Read data with assuring the region does not spill from the file size. - * @param off the offset of the source. - * @param buf the pointer to the destination region. - * @param size the size of the data to be read. - * @return true on success, or false on failure. - */ - bool read_fast(int64_t off, void* buf, size_t size); - /** - * Read data. - * @note Equal to the original File::read method except that the sigunature is different. - */ - bool read_fast(int64_t off, std::string* buf, size_t size) { - _assert_(off >= 0 && buf); - char* tbuf = new char[size]; - if (!read_fast(off, tbuf, size)) { - delete[] tbuf; - return false; - } - buf->append(std::string(tbuf, size)); - delete[] tbuf; - return true; - } - /** - * Truncate the file. - * @param size the new size of the file. - * @return true on success, or false on failure. - */ - bool truncate(int64_t size); - /** - * Synchronize updated contents with the file and the device. - * @param hard true for physical synchronization with the device, or false for logical - * synchronization with the file system. - * @return true on success, or false on failure. - */ - bool synchronize(bool hard); - /** - * Refresh the internal state for update by others. - * @return true on success, or false on failure. - */ - bool refresh(); - /** - * Begin transaction. - * @param hard true for physical synchronization with the device, or false for logical - * synchronization with the file system. - * @param off the beginning offset of the guarded region - * @return true on success, or false on failure. - */ - bool begin_transaction(bool hard, int64_t off); - /** - * End transaction. - * @param commit true to commit the transaction, or false to abort the transaction. - * @return true on success, or false on failure. - */ - bool end_transaction(bool commit); - /** - * Write a WAL message of transaction explicitly. - * @param off the offset of the source. - * @param size the size of the data to be read. - * @return true on success, or false on failure. - */ - bool write_transaction(int64_t off, size_t size); - /** - * Get the size of the file. - * @return the size of the file, or 0 on failure. - */ - int64_t size() const; - /** - * Get the path of the file. - * @return the path of the file in bytes, or an empty string on failure. - */ - std::string path() const; - /** - * Check whether the file was recovered or not. - * @return true if recovered, or false if not. - */ - bool recovered() const; - /** - * Read the whole data from a file. - * @param path the path of a file. - * @param sp the pointer to the variable into which the size of the region of the return value - * is assigned. - * @param limit the limit length to read. If it is nagative, no limit is specified. - * @return the pointer to the region of the read data, or NULL on failure. - * @note Because an additional zero code is appended at the end of the region of the return - * value, the return value can be treated as a C-style string. Because the region of the - * return value is allocated with the the new[] operator, it should be released with the - * delete[] operator when it is no longer in use. - */ - static char* read_file(const std::string& path, int64_t* sp, int64_t limit = -1); - /** - * Write the whole data into a file. - * @param path the path of a file. - * @param buf the data buffer to write. - * @param size the size of the data buffer. - * @return true on success, or false on failure. - * @note The existing file corresponding to the path is overwritten. If no file corresponds - * to the path, a new file is created. - */ - static bool write_file(const std::string& path, const char* buf, int64_t size); - /** - * Get the status information of a file. - * @param path the path of a file. - * @param buf a structure of status information. If it is NULL, it is omitted. - * @return true on success, or false on failure. - */ - static bool status(const std::string& path, Status* buf = NULL); - /** - * Get the absolute path of a file. - * @param path the path of a file. - * @return the absolute path of the file, or an empty string on failure. - */ - static std::string absolute_path(const std::string& path); - /** - * Remove a file. - * @param path the path of a file. - * @return true on success, or false on failure. - */ - static bool remove(const std::string& path); - /** - * Change the name or location of a file. - * @param opath the old path of a file. - * @param npath the new path of a file. - * @return true on success, or false on failure. - */ - static bool rename(const std::string& opath, const std::string& npath); - /** - * Read a directory. - * @param path the path of a directory. - * @param strvec a string list to contain the result. - * @return true on success, or false on failure. - */ - static bool read_directory(const std::string& path, std::vector<std::string>* strvec); - /** - * Make a directory. - * @param path the path of a directory. - * @return true on success, or false on failure. - */ - static bool make_directory(const std::string& path); - /** - * Remove a directory. - * @param path the path of a directory. - * @return true on success, or false on failure. - */ - static bool remove_directory(const std::string& path); - /** - * Remove a file or a directory recursively. - * @param path the path of a file or a directory. - * @return true on success, or false on failure. - */ - static bool remove_recursively(const std::string& path); - /** - * Get the path of the current working directory. - * @return the path of the current working directory, or an empty string on failure. - */ - static std::string get_current_directory(); - /** - * Set the current working directory. - * @param path the path of a directory. - * @return true on success, or false on failure. - */ - static bool set_current_directory(const std::string& path); - /** - * Synchronize the whole of the file system with the device. - * @return true on success, or false on failure. - */ - static bool synchronize_whole(); - private: - /** Dummy constructor to forbid the use. */ - File(const File&); - /** Dummy Operator to forbid the use. */ - File& operator =(const File&); - /** Opaque pointer. */ - void* opq_; -}; - - -/** - * Directory stream abstraction. - */ -class DirStream { - public: - /** - * Default constructor. - */ - explicit DirStream(); - /** - * Destructor. - * @note If the file is not closed, it is closed implicitly. - */ - ~DirStream(); - /** - * Open a directory. - * @param path the path of a directory. - * @return true on success, or false on failure. - */ - bool open(const std::string& path); - /** - * Close the file. - * @return true on success, or false on failure. - */ - bool close(); - /** - * Read the next file in the directory. - * @param path a string to store the file path. - * @return true on success, or false on failure. - */ - bool read(std::string* path); - private: - /** Dummy constructor to forbid the use. */ - DirStream(const DirStream&); - /** Dummy Operator to forbid the use. */ - DirStream& operator =(const DirStream&); - /** Opaque pointer. */ - void* opq_; -}; - - -} // common namespace - -#endif // duplication check - -// END OF FILE |