diff options
author | chai <chaifix@163.com> | 2020-02-11 11:29:07 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2020-02-11 11:29:07 +0800 |
commit | 160e1299ef3d95f8e8c48706d7f61dd3dc6c6b60 (patch) | |
tree | abe5ae5242d9cc6caf6edf103e662c44e978fca0 /src/libjin/filesystem | |
parent | e095043485d1d298571af6d9eca7f0db9009ea7a (diff) |
Diffstat (limited to 'src/libjin/filesystem')
-rw-r--r-- | src/libjin/filesystem/asset_database.cpp | 134 | ||||
-rw-r--r-- | src/libjin/filesystem/asset_database.h | 182 | ||||
-rw-r--r-- | src/libjin/filesystem/buffer.h | 300 | ||||
-rw-r--r-- | src/libjin/filesystem/je_compressor.h | 6 |
4 files changed, 311 insertions, 311 deletions
diff --git a/src/libjin/filesystem/asset_database.cpp b/src/libjin/filesystem/asset_database.cpp index e532f41..6214a4a 100644 --- a/src/libjin/filesystem/asset_database.cpp +++ b/src/libjin/filesystem/asset_database.cpp @@ -11,75 +11,75 @@ namespace JinEngine { - namespace Filesystem - { - - AssetDatabase* AssetDatabase::mAssetDatabase = 0; - - AssetDatabase::AssetDatabase() - { - mSmt = smtnewshared(); - } - - AssetDatabase* AssetDatabase::get() - { - return mAssetDatabase ? mAssetDatabase : (mAssetDatabase = new AssetDatabase()); - } - - void AssetDatabase::mount(const char * path) - { - int err = smtmount(mSmt, path); - if (err) - { - printf("%s mounted path %s", smterrstr(err), path); - exit(1); - } - } - - void AssetDatabase::read(const char* path, Buffer& buffer) - { - size_t size; - byte* data = (byte*)smtread(mSmt, path, &size); - if (data == nullptr) - throw Exception("Could not read file %s.", path); - buffer.bind(data, size); - } - - Buffer* read(const char* path) - { - return nullptr; - } - - void* AssetDatabase::read(const char* path, unsigned int* len) - { - return smtread(mSmt, path, len); - } - - const char* AssetDatabase::getFull(const char* path) - { - return smtfullpath(mSmt, path); - } - - bool AssetDatabase::isDir(const char* path) - { - return smtisdir(mSmt, path); - } - - bool AssetDatabase::isFile(const char* path) - { - return smtisreg(mSmt, path); - } - - bool AssetDatabase::exists(const char* path) - { - return smtexists(mSmt, path) == 0; - } + namespace Filesystem + { + + AssetDatabase* AssetDatabase::mAssetDatabase = 0; + + AssetDatabase::AssetDatabase() + { + mSmt = smtnewshared(); + } + + AssetDatabase* AssetDatabase::get() + { + return mAssetDatabase ? mAssetDatabase : (mAssetDatabase = new AssetDatabase()); + } + + void AssetDatabase::mount(const char * path) + { + int err = smtmount(mSmt, path); + if (err) + { + printf("%s mounted path %s", smterrstr(err), path); + exit(1); + } + } + + void AssetDatabase::read(const char* path, Buffer& buffer) + { + size_t size; + byte* data = (byte*)smtread(mSmt, path, &size); + if (data == nullptr) + throw Exception("Could not read file %s.", path); + buffer.bind(data, size); + } + + Buffer* read(const char* path) + { + return nullptr; + } + + void* AssetDatabase::read(const char* path, unsigned int* len) + { + return smtread(mSmt, path, len); + } + + const char* AssetDatabase::getFull(const char* path) + { + return smtfullpath(mSmt, path); + } + + bool AssetDatabase::isDir(const char* path) + { + return smtisdir(mSmt, path); + } + + bool AssetDatabase::isFile(const char* path) + { + return smtisreg(mSmt, path); + } + + bool AssetDatabase::exists(const char* path) + { + return smtexists(mSmt, path) == 0; + } /* - std::vector<std::string> AssetDatabase::getFiles(const char* path, bool recursive) - { - } + std::vector<std::string> AssetDatabase::getFiles(const char* path, bool recursive) + { + } */ - } // namespace Filesystem + } // namespace Filesystem } // namespace JinEngine #endif // jin_filesystem
\ No newline at end of file diff --git a/src/libjin/filesystem/asset_database.h b/src/libjin/filesystem/asset_database.h index 2d7d5a3..f7e6339 100644 --- a/src/libjin/filesystem/asset_database.h +++ b/src/libjin/filesystem/asset_database.h @@ -12,101 +12,101 @@ namespace JinEngine { - namespace Filesystem - { - - /// - /// Assets managment. - /// - class AssetDatabase : public Object - { - public: - /// - /// Get asset database singleton. - /// - /// @param Singleton of asset database. - /// - static AssetDatabase* get(); - - /// - /// Asset database constructor. - /// - AssetDatabase(); - - /// - /// Set asset root folder. - /// - /// @param root Root folder of assets. - /// - void mount(const char* root); - - /// - /// Check if the path is directory. - /// - /// @param path Path under asset folder. - /// @return True if the given path is directory, otherwise return false. - /// - bool isDir(const char* path); - - /// - /// Check if the path is file. - /// - /// @param path Path under asset folder. - /// @return True if the given path is file, otherwise return false. - /// - bool isFile(const char* path); - - /// - /// Check if the path exists. - /// @param path Given path. - /// @return True if path exists, otherwise return false. - /// - bool exists(const char* path); - - /// - /// Read file into a buffer. - /// - /// @param path Path of file. - /// @param buffer Buffer to fill. - /// @return True if read sucessful, otherwise return false. - /// - void read(const char* path, Buffer& buffer); - - /// - /// Read file and return data content. - /// - /// @param path Path of file. - /// @param length Length of data. - /// @return Data if read sucessful, otherwise return null. - /// - void* read(const char* path, unsigned int* length); - - /// - /// Get files under given directory. - /// - /// @param path Path of directory. - /// @param recursive Recursivily search folder. - /// @return File list under given directory. - /// - std::vector<std::string> getFiles(const char* directory, bool recursive = false); - - /// - /// Get full path of asset. - /// - /// @param path Path of asset. - /// @return Full path of asset. - /// - const char* getFull(const char* path); - - private: - static AssetDatabase* mAssetDatabase; + namespace Filesystem + { + + /// + /// Assets managment. + /// + class AssetDatabase : public Object + { + public: + /// + /// Get asset database singleton. + /// + /// @param Singleton of asset database. + /// + static AssetDatabase* get(); + + /// + /// Asset database constructor. + /// + AssetDatabase(); + + /// + /// Set asset root folder. + /// + /// @param root Root folder of assets. + /// + void mount(const char* root); + + /// + /// Check if the path is directory. + /// + /// @param path Path under asset folder. + /// @return True if the given path is directory, otherwise return false. + /// + bool isDir(const char* path); + + /// + /// Check if the path is file. + /// + /// @param path Path under asset folder. + /// @return True if the given path is file, otherwise return false. + /// + bool isFile(const char* path); + + /// + /// Check if the path exists. + /// @param path Given path. + /// @return True if path exists, otherwise return false. + /// + bool exists(const char* path); + + /// + /// Read file into a buffer. + /// + /// @param path Path of file. + /// @param buffer Buffer to fill. + /// @return True if read sucessful, otherwise return false. + /// + void read(const char* path, Buffer& buffer); + + /// + /// Read file and return data content. + /// + /// @param path Path of file. + /// @param length Length of data. + /// @return Data if read sucessful, otherwise return null. + /// + void* read(const char* path, unsigned int* length); + + /// + /// Get files under given directory. + /// + /// @param path Path of directory. + /// @param recursive Recursivily search folder. + /// @return File list under given directory. + /// + std::vector<std::string> getFiles(const char* directory, bool recursive = false); + + /// + /// Get full path of asset. + /// + /// @param path Path of asset. + /// @return Full path of asset. + /// + const char* getFull(const char* path); + + private: + static AssetDatabase* mAssetDatabase; #if jin_filesystem == jin_filesystem_smount - smtShared* mSmt; + smtShared* mSmt; #endif - }; + }; - } // namespace Filesystem + } // namespace Filesystem } // namespace JinEngine #endif // jin_filesystem diff --git a/src/libjin/filesystem/buffer.h b/src/libjin/filesystem/buffer.h index 2b5be6a..8056fd5 100644 --- a/src/libjin/filesystem/buffer.h +++ b/src/libjin/filesystem/buffer.h @@ -12,156 +12,156 @@ namespace JinEngine { - namespace Filesystem - { - - /// - /// Data buffer allocated on heap. - /// - class Buffer : public Temporary - { - public: - /// - /// Buffer constructor. - /// - Buffer() - : mData(0) - , mSize(0) - { - } - - /// - /// Copy constructor. - /// - /// @param src Buffer source. - /// - Buffer(const Buffer& src) - { - delete[] mData; - mSize = src.mSize; - mData = new byte[mSize]; - memcpy(mData, src.mData, mSize); - } - - /// - /// Buffer constructor. - /// - /// @param data Buffer data. - /// @param size Size of buffer. - /// - Buffer(void* data, int size) - { - mSize = size; - mData = new byte[mSize]; - memcpy(mData, data, mSize); - } - - /// - /// Buffer constructor. - /// - /// @param size Size of data. - /// - Buffer(size_t size) - { - mData = new byte[size]; - memset(mData, 0, size); - mSize = size; - } - - /// - /// Buffer destructor. - /// - ~Buffer() - { - delete[] mData; - mSize = 0; - } - - /// - /// Set buffer data. - /// - /// @param data Buffer data. - /// @param size Size of data. - /// - void set(byte* data, size_t size) - { - if (data == nullptr) - return; - if (mSize != size) - { - delete mData; - mData = new byte[size]; - } - mSize = size; - memcpy(mData, data, size); - } - - /// - /// Bind buffer data. - /// - /// @param data Buffer data. - /// @param size Size of buffer. - /// - void bind(byte* data, size_t size) - { - if (mData != nullptr) - delete mData; - mSize = size; - mData = data; - } - - /// - /// Buffer assignment. - /// - /// @param buffer Buffer to copy. - /// - void operator = (const Buffer& buffer) - { - delete[] mData; - mSize = buffer.mSize; - mData = new byte[mSize]; - memcpy(mData, buffer.mData, mSize); - } - - /// - /// Get data addresss. - /// - /// @return Data address. - /// - const byte* operator &() - { - return mData; - } - - /// - /// Get data size. - /// - /// @return Size of data. - /// - const inline size_t size() - { - return mSize; - } - - /// - /// Clear data. - /// - void clear() - { - if (mData == nullptr) - return; - delete mData; - mData = nullptr; - mSize = 0; - } - - private: - byte* mData; - size_t mSize; - - }; - - } // namespace Filesystem + namespace Filesystem + { + + /// + /// Data buffer allocated on heap. + /// + class Buffer : public Temporary + { + public: + /// + /// Buffer constructor. + /// + Buffer() + : mData(0) + , mSize(0) + { + } + + /// + /// Copy constructor. + /// + /// @param src Buffer source. + /// + Buffer(const Buffer& src) + { + delete[] mData; + mSize = src.mSize; + mData = new byte[mSize]; + memcpy(mData, src.mData, mSize); + } + + /// + /// Buffer constructor. + /// + /// @param data Buffer data. + /// @param size Size of buffer. + /// + Buffer(void* data, int size) + { + mSize = size; + mData = new byte[mSize]; + memcpy(mData, data, mSize); + } + + /// + /// Buffer constructor. + /// + /// @param size Size of data. + /// + Buffer(size_t size) + { + mData = new byte[size]; + memset(mData, 0, size); + mSize = size; + } + + /// + /// Buffer destructor. + /// + ~Buffer() + { + delete[] mData; + mSize = 0; + } + + /// + /// Set buffer data. + /// + /// @param data Buffer data. + /// @param size Size of data. + /// + void set(byte* data, size_t size) + { + if (data == nullptr) + return; + if (mSize != size) + { + delete mData; + mData = new byte[size]; + } + mSize = size; + memcpy(mData, data, size); + } + + /// + /// Bind buffer data. + /// + /// @param data Buffer data. + /// @param size Size of buffer. + /// + void bind(byte* data, size_t size) + { + if (mData != nullptr) + delete mData; + mSize = size; + mData = data; + } + + /// + /// Buffer assignment. + /// + /// @param buffer Buffer to copy. + /// + void operator = (const Buffer& buffer) + { + delete[] mData; + mSize = buffer.mSize; + mData = new byte[mSize]; + memcpy(mData, buffer.mData, mSize); + } + + /// + /// Get data addresss. + /// + /// @return Data address. + /// + const byte* operator &() + { + return mData; + } + + /// + /// Get data size. + /// + /// @return Size of data. + /// + const inline size_t size() + { + return mSize; + } + + /// + /// Clear data. + /// + void clear() + { + if (mData == nullptr) + return; + delete mData; + mData = nullptr; + mSize = 0; + } + + private: + byte* mData; + size_t mSize; + + }; + + } // namespace Filesystem } // namespace JinEngine #endif // jin_filesystem diff --git a/src/libjin/filesystem/je_compressor.h b/src/libjin/filesystem/je_compressor.h index efaf6c3..228d754 100644 --- a/src/libjin/filesystem/je_compressor.h +++ b/src/libjin/filesystem/je_compressor.h @@ -3,12 +3,12 @@ namespace JinEngine { - namespace Filesystem - { + namespace Filesystem + { - } + } } #endif
\ No newline at end of file |