8#ifndef META_OCEAN_PLATFORM_ANDROID_RESOURCE_MANAGER_H
9#define META_OCEAN_PLATFORM_ANDROID_RESOURCE_MANAGER_H
16#include <android/asset_manager.h>
17#include <android/asset_manager_jni.h>
79 inline const void*
data()
const;
85 inline size_t size()
const;
159 inline off64_t
offset()
const;
166 inline off64_t
size()
const;
190 inline operator bool()
const;
235 bool readAsset(
const std::string& assetFilename, std::vector<uint8_t>& data)
const;
242 std::unique_ptr<ScopedResource>
accessAsset(
const std::string& assetFilename)
const;
258 bool copyAssets(
const std::string& targetDirectoryName,
const bool createDirectory =
false,
const std::string& assetDirectoryName = std::string())
const;
321 AAsset_close(asset_);
336 fileDescriptor_(fileDescriptor),
340 ocean_assert(
asset_ !=
nullptr);
342 ocean_assert(
size_ > 0);
347 *
this = std::move(scopedFile);
357 return fileDescriptor_;
372 if (asset_ !=
nullptr)
374 AAsset_close(asset_);
378 fileDescriptor_ = -1;
385 ocean_assert(fileDescriptor_ == -1 || (asset_ !=
nullptr && size_ > 0));
387 return fileDescriptor_ != -1;
392 if (
this != &scopedFile)
396 asset_ = scopedFile.asset_;
397 scopedFile.asset_ =
nullptr;
399 fileDescriptor_ = scopedFile.fileDescriptor_;
400 scopedFile.fileDescriptor_ = -1;
402 offset_ = scopedFile.offset_;
403 scopedFile.offset_ = 0;
405 size_ = scopedFile.size_;
406 scopedFile.size_ = 0;
412inline ResourceManager::ScopedFile::operator bool()
const
This class implements a recursive lock object.
Definition Lock.h:31
This class implements a scoped lock object for recursive lock objects.
Definition Lock.h:135
This template class is the base class for all singleton objects.
Definition Singleton.h:71
The namespace covering the entire Ocean framework.
Definition Accessor.h:15