Tramway SDK
Classes | Namespaces | Enumerations | Functions
async.cpp File Reference

Implementation of the Async system. More...

#include <templates/queue.h>
#include <templates/pool.h>
#include <framework/core.h>
#include <framework/async.h>
#include <framework/system.h>
#include <framework/resource.h>
#include <framework/entitycomponent.h>
#include <framework/logging.h>
#include <platform/api.h>
#include <config.h>
#include <thread>
#include <vector>

Classes

struct  tram::Async::ResourceRequest
 

Namespaces

namespace  tram::Async
 Multi-threading and Resource streaming.
 
namespace  tram
 Serialization, i.e.
 

Enumerations

enum  tram::Async::RequestNotification { tram::Async::NONE , tram::Async::COMPONENT , tram::Async::CALLBACK }
 

Functions

void tram::Async::RequestResource (EntityComponent *requester, Resource *resource)
 Adds a resource to the loading queue. More...
 
void tram::Async::RequestResource (void(*callback)(void *data), void *data, Resource *resource)
 Adds a resource to the loading queue. More...
 
void tram::Async::CancelRequest (EntityComponent *requester, Resource *resource)
 Cancels a resource load request. More...
 
void tram::Async::LoadDependency (Resource *resource)
 Loads a resource from disk, skipping the queue. More...
 
void tram::Async::LoadResourcesFromDisk ()
 Processes the first resource queue. More...
 
void tram::Async::LoadResourcesFromMemory ()
 Processes the second resource queue. More...
 
void tram::Async::FinishResources ()
 Notifies EntityComponents about finished resources. More...
 
void tram::Async::Init (size_t threads)
 Starts the async resource loader thread. More...
 
void tram::Async::Yeet ()
 Stops the async resource loader thread. More...
 
size_t tram::Async::GetWaitingResources ()
 Returns number of resources in queues. More...
 

Detailed Description

Implementation of the Async system.