CUGL 2.3
Cornell University Game Library
|
#include <CUJsonLoader.h>
Public Member Functions | |
JsonLoader () | |
void | dispose () override |
Public Member Functions inherited from cugl::Loader< JsonValue > | |
Loader () | |
std::shared_ptr< JsonValue > | get (const std::string key) const |
std::shared_ptr< JsonValue > | operator[] (const std::string key) const |
size_t | loadCount () const override |
size_t | waitCount () const override |
void | unloadAll () override |
Public Member Functions inherited from cugl::BaseLoader | |
BaseLoader () | |
~BaseLoader () | |
virtual void | dispose () |
virtual bool | init () |
virtual bool | init (const std::shared_ptr< ThreadPool > &threads) |
std::shared_ptr< BaseLoader > | getHook () |
std::shared_ptr< ThreadPool > | getThreadPool () const |
void | setThreadPool (const std::shared_ptr< ThreadPool > &threads) |
void | setManager (AssetManager *manager) |
const AssetManager * | getManager () const |
void | setJsonKey (const std::string key) |
const std::string | getJsonKey () const |
void | setPriority (Uint32 priority) |
const Uint32 | getPriority () const |
bool | load (const std::string key, const std::string source) |
bool | load (const std::shared_ptr< JsonValue > &json) |
void | loadAsync (const std::string key, const std::string source, LoaderCallback callback) |
void | loadAsync (const std::shared_ptr< JsonValue > &json, LoaderCallback callback) |
bool | unload (const std::string key) |
bool | unload (const std::shared_ptr< JsonValue > &json) |
virtual void | unloadAll () |
virtual std::vector< std::string > | keys () |
bool | contains (const std::string key) const |
virtual size_t | loadCount () const |
virtual size_t | waitCount () const |
bool | complete () const |
float | progress () const |
Static Public Member Functions | |
static std::shared_ptr< JsonLoader > | alloc () |
static std::shared_ptr< JsonLoader > | alloc (const std::shared_ptr< ThreadPool > &threads) |
Protected Member Functions | |
void | materialize (const std::string key, const std::shared_ptr< JsonValue > &json, LoaderCallback callback) |
virtual bool | read (const std::string key, const std::string source, LoaderCallback callback, bool async) override |
virtual bool | read (const std::shared_ptr< JsonValue > &json, LoaderCallback callback, bool async) override |
Protected Member Functions inherited from cugl::Loader< JsonValue > | |
virtual std::vector< std::string > | keys () override |
bool | purge (const std::string key) override |
bool | verify (const std::string key) const override |
Protected Member Functions inherited from cugl::BaseLoader | |
virtual bool | read (const std::string key, const std::string source, LoaderCallback callback, bool async) |
virtual bool | read (const std::shared_ptr< JsonValue > &json, LoaderCallback callback, bool async) |
virtual bool | purge (const std::string key) |
virtual bool | purge (const std::shared_ptr< JsonValue > &json) |
virtual bool | verify (const std::string key) const |
Additional Inherited Members | |
Protected Attributes inherited from cugl::Loader< JsonValue > | |
std::unordered_map< std::string, std::shared_ptr< JsonValue > > | _assets |
std::unordered_set< std::string > | _queue |
Protected Attributes inherited from cugl::BaseLoader | |
std::string | _jsonKey |
Uint32 | _priority |
std::shared_ptr< ThreadPool > | _loader |
AssetManager * | _manager |
This class is a implementation of Loader<JsonValue>
This asset loader allows us to allocate json assets. It is essentially a wrapper around JsonReader
that allows it to be used with an instance of AssetManager
.
As with all of our loaders, this loader is designed to be attached to an asset manager. Use the method getHook()
to get the appropriate pointer for attaching the loader.
|
inline |
Creates a new, uninitialized Json loader
NEVER USE A CONSTRUCTOR WITH NEW. If you want to allocate a loader on the heap, use one of the static constructors instead.
|
inlinestatic |
Returns a newly allocated music loader.
This method bootstraps the loader with any initial resources that it needs to load assets.
This loader will have no associated threads. That means any asynchronous loading will fail until a thread is provided via setThreadPool
.
|
inlinestatic |
Returns a newly allocated music loader.
This method bootstraps the loader with any initial resources that it needs to load assets.
This loader will have no associated threads. That means any asynchronous loading will fail until a thread is provided via setThreadPool
.
threads | The thread pool for asynchronous loading |
|
inlineoverridevirtual |
Disposes all resources and assets of this loader
Any assets loaded by this object will be immediately released by the loader. However, a Json asset may still be available if referenced by another smart pointer.
Once the loader is disposed, any attempts to load a new asset will fail. You must reinitialize the loader to begin loading assets again.
Reimplemented from cugl::BaseLoader.
|
protected |
Finishes loading the Json file, cleaning up the wait queues.
Allocating a Json asset can be done safely in a separate thread. Hence this method is really just an internal helper for convenience.
This method supports an optional callback function which reports whether the asset was successfully materialized.
key | The key to access the asset after loading |
json | The json asset fully loaded |
callback | An optional callback for asynchronous loading |
|
overrideprotectedvirtual |
Internal method to support asset loading.
This method supports either synchronous or asynchronous loading, as specified by the given parameter. If the loading is asynchronous, the user may specify an optional callback function.
Json loading is always asynchronously safe, so this method does not split the loading process.
This version of read provides support for JSON directories. A json directory entry is just a key with a string value for the path to the asset.
json | The directory entry for the asset |
callback | An optional callback for asynchronous loading |
async | Whether the asset was loaded asynchronously |
Reimplemented from cugl::BaseLoader.
|
overrideprotectedvirtual |
Internal method to support asset loading.
This method supports either synchronous or asynchronous loading, as specified by the given parameter. If the loading is asynchronous, the user may specify an optional callback function.
Json loading is always asynchronously safe, so this method does not split the loading process.
key | The key to access the asset after loading |
source | The pathname to the asset |
callback | An optional callback for asynchronous loading |
async | Whether the asset was loaded asynchronously |
Reimplemented from cugl::BaseLoader.