HDK
|
#include <asset.h>
Public Member Functions | |
virtual AR_API | ~ArAsset () |
ArAsset (const ArAsset &)=delete | |
ArAsset & | operator= (const ArAsset &)=delete |
virtual AR_API size_t | GetSize ()=0 |
Returns size of the asset. More... | |
virtual AR_API std::shared_ptr < const char > | GetBuffer ()=0 |
virtual AR_API size_t | Read (void *buffer, size_t count, size_t offset)=0 |
virtual AR_API std::pair< FILE *, size_t > | GetFileUnsafe ()=0 |
Protected Member Functions | |
AR_API | ArAsset () |
Interface for accessing the contents of an asset.
|
virtual |
|
protected |
Returns a pointer to a buffer with the contents of the asset, with size given by GetSize(). Returns an invalid std::shared_ptr if the contents could not be retrieved.
The data in the returned buffer must remain valid while there are outstanding copies of the returned std::shared_ptr. Note that the deleter stored in the std::shared_ptr may contain additional data needed to maintain the buffer's validity.
Implemented in ArFilesystemAsset.
|
pure virtual |
Returns a read-only FILE* handle and offset for this asset if available, or (nullptr, 0) otherwise.
The returned handle must remain valid for the lifetime of this ArAsset object. The returned offset is the offset from the beginning of the FILE* where the asset's contents begins.
This function is marked unsafe because the handle may wind up being used in multiple threads depending on the underlying resolver implementation. For instance, a resolver may cache and return ArAsset objects with the same FILE* to multiple threads.
Clients MUST NOT use this handle with functions that cannot be called concurrently on the same file descriptor, e.g. read, fread, fseek, etc. See ArchPRead for a function that can be used to read data from this handle safely.
Implemented in ArFilesystemAsset.
|
pure virtual |
Returns size of the asset.
Implemented in ArFilesystemAsset.
Read count
bytes at offset
from the beginning of the asset into buffer
. Returns number of bytes read, or 0 on error.
Implemented in ArFilesystemAsset.