summaryrefslogtreecommitdiff
path: root/plugins/Dbx_kyoto/src/kyotocabinet/kcfile.h
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/Dbx_kyoto/src/kyotocabinet/kcfile.h')
-rw-r--r--plugins/Dbx_kyoto/src/kyotocabinet/kcfile.h388
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