Skip to content

EntropyCanvas::AssetClient

AssetClient - Client API for CanvasEngine’s asset system. More…

#include <AssetClient.h>

Name
using std::function< void(bool success, uint32_t removedCount, const std::string &errorMessage)>WithdrawCallback
using std::function< void(std::optional< AssetUploadResult > result, const std::string &errorMessage)>UploadCallback
using std::function< void(std::optional< AssetResolveResult > result)>ResolveCallback
using std::function< void(std::vector< std::optional< AssetResolveResult > > results)>ResolveBatchCallback
using std::function< void(bool success, const std::string &errorMessage)>ProvideKeyCallback
using std::function< void(std::optional< std::vector< uint8_t > > data, const std::string &errorMessage)>FetchCallback
using std::function< void(uint64_t bytesUploaded, uint64_t totalBytes)>ChunkedUploadProgressCallback
using std::function< void(bool success, const std::string &errorMessage)>AdvertiseCallback
Name
~AssetClient()
VoidHandlewithdrawAll()
voidwithdrawAll(WithdrawCallback callback)
VoidHandlewithdraw(const std::vector< AssetId > & ids)
voidwithdraw(const std::vector< AssetId > & ids, WithdrawCallback callback)
UploadHandleuploadChunked(std::span< const uint8_t > data, ContentType contentType, bool persistent, bool encrypted, const std::array< uint8_t, 32 > & plaintextHash, uint32_t chunkSize =64 *1024)
UploadHandleuploadChunked(std::span< const uint8_t > data, ContentType contentType, bool persistent, bool encrypted, const std::array< uint8_t, 32 > & plaintextHash, uint32_t chunkSize, const EntropyEngine::Networking::NetworkSession::AssetMetadataData & metadata)
voiduploadChunked(std::span< const uint8_t > data, ContentType contentType, bool persistent, bool encrypted, const std::array< uint8_t, 32 > & plaintextHash, uint32_t chunkSize, ChunkedUploadProgressCallback progressCallback, UploadCallback completeCallback)
voiduploadChunked(std::span< const uint8_t > data, ContentType contentType, bool persistent, bool encrypted, const std::array< uint8_t, 32 > & plaintextHash, uint32_t chunkSize, ChunkedUploadProgressCallback progressCallback, UploadCallback completeCallback, const EntropyEngine::Networking::NetworkSession::AssetMetadataData & metadata)
UploadHandleupload(std::span< const uint8_t > data, ContentType contentType, bool persistent)
UploadHandleupload(std::span< const uint8_t > data, ContentType contentType, bool persistent, const EntropyEngine::Networking::NetworkSession::AssetMetadataData & metadata)
voidupload(std::span< const uint8_t > data, ContentType contentType, bool persistent, UploadCallback callback)
voidupload(std::span< const uint8_t > data, ContentType contentType, bool persistent, UploadCallback callback, const EntropyEngine::Networking::NetworkSession::AssetMetadataData & metadata)
voidsetAppId(const std::string & appId)
std::optional< AssetResolveResult >resolveSync(const AssetId & id, std::chrono::milliseconds timeout =std::chrono::seconds(5))
ResolveBatchHandleresolveBatch(const std::vector< AssetId > & ids)
voidresolveBatch(const std::vector< AssetId > & ids, ResolveBatchCallback callback)
ResolveHandleresolve(const AssetId & id)
voidresolve(const AssetId & id, ResolveCallback callback)
VoidHandleprovideKey(const AssetId & id, std::span< const uint8_t, 32 > key)
voidprovideKey(const AssetId & id, std::span< const uint8_t, 32 > key, ProvideKeyCallback callback)
AssetClient &operator=(const AssetClient & ) =delete
boolisValid() const
const std::string &getAppId() const
std::optional< std::vector< uint8_t > >fetchSync(const AssetId & id, std::chrono::milliseconds timeout =std::chrono::seconds(30))
FetchHandlefetch(const AssetId & id)
voidfetch(const AssetId & id, FetchCallback callback)
booladvertiseSync(const std::vector< AssetInfo > & entries, std::chrono::milliseconds timeout =std::chrono::seconds(5))
VoidHandleadvertise(const std::vector< AssetInfo > & entries)
voidadvertise(const std::vector< AssetInfo > & entries, AdvertiseCallback callback)
AssetClient(EntropyEngine::Networking::SessionHandle session, EntropyEngine::Networking::SessionManager * sessionManager, std::string appId ="")
AssetClient(const AssetClient & ) =delete
class EntropyCanvas::AssetClient;

AssetClient - Client API for CanvasEngine’s asset system.

All operations are async by default. Returns a handle you can poll or wait on.

AssetClient assets(session, sessionManager);
auto handle = assets.resolve(assetId);
// Poll
if (handle.isDone()) { ... }
// Or wait
handle.wait();
if (handle.status() == AssetOpStatus::Complete) {
auto result = handle.result();
}
using EntropyCanvas::AssetClient::WithdrawCallback = std::function<void(bool success, uint32_t removedCount, const std::string& errorMessage)>;
using EntropyCanvas::AssetClient::UploadCallback =
std::function<void(std::optional<AssetUploadResult> result, const std::string& errorMessage)>;
using EntropyCanvas::AssetClient::ResolveCallback = std::function<void(std::optional<AssetResolveResult> result)>;
using EntropyCanvas::AssetClient::ResolveBatchCallback = std::function<void(std::vector<std::optional<AssetResolveResult>> results)>;
using EntropyCanvas::AssetClient::ProvideKeyCallback = std::function<void(bool success, const std::string& errorMessage)>;
using EntropyCanvas::AssetClient::FetchCallback =
std::function<void(std::optional<std::vector<uint8_t>> data, const std::string& errorMessage)>;
using EntropyCanvas::AssetClient::ChunkedUploadProgressCallback = std::function<void(uint64_t bytesUploaded, uint64_t totalBytes)>;
using EntropyCanvas::AssetClient::AdvertiseCallback = std::function<void(bool success, const std::string& errorMessage)>;
~AssetClient()
VoidHandle withdrawAll()
void withdrawAll(
WithdrawCallback callback
)
VoidHandle withdraw(
const std::vector< AssetId > & ids
)
void withdraw(
const std::vector< AssetId > & ids,
WithdrawCallback callback
)
UploadHandle uploadChunked(
std::span< const uint8_t > data,
ContentType contentType,
bool persistent,
bool encrypted,
const std::array< uint8_t, 32 > & plaintextHash,
uint32_t chunkSize =64 *1024
)
UploadHandle uploadChunked(
std::span< const uint8_t > data,
ContentType contentType,
bool persistent,
bool encrypted,
const std::array< uint8_t, 32 > & plaintextHash,
uint32_t chunkSize,
const EntropyEngine::Networking::NetworkSession::AssetMetadataData & metadata
)
void uploadChunked(
std::span< const uint8_t > data,
ContentType contentType,
bool persistent,
bool encrypted,
const std::array< uint8_t, 32 > & plaintextHash,
uint32_t chunkSize,
ChunkedUploadProgressCallback progressCallback,
UploadCallback completeCallback
)
void uploadChunked(
std::span< const uint8_t > data,
ContentType contentType,
bool persistent,
bool encrypted,
const std::array< uint8_t, 32 > & plaintextHash,
uint32_t chunkSize,
ChunkedUploadProgressCallback progressCallback,
UploadCallback completeCallback,
const EntropyEngine::Networking::NetworkSession::AssetMetadataData & metadata
)
UploadHandle upload(
std::span< const uint8_t > data,
ContentType contentType,
bool persistent
)
UploadHandle upload(
std::span< const uint8_t > data,
ContentType contentType,
bool persistent,
const EntropyEngine::Networking::NetworkSession::AssetMetadataData & metadata
)
void upload(
std::span< const uint8_t > data,
ContentType contentType,
bool persistent,
UploadCallback callback
)
void upload(
std::span< const uint8_t > data,
ContentType contentType,
bool persistent,
UploadCallback callback,
const EntropyEngine::Networking::NetworkSession::AssetMetadataData & metadata
)
inline void setAppId(
const std::string & appId
)
std::optional< AssetResolveResult > resolveSync(
const AssetId & id,
std::chrono::milliseconds timeout =std::chrono::seconds(5)
)
ResolveBatchHandle resolveBatch(
const std::vector< AssetId > & ids
)
void resolveBatch(
const std::vector< AssetId > & ids,
ResolveBatchCallback callback
)
ResolveHandle resolve(
const AssetId & id
)
void resolve(
const AssetId & id,
ResolveCallback callback
)
VoidHandle provideKey(
const AssetId & id,
std::span< const uint8_t, 32 > key
)
void provideKey(
const AssetId & id,
std::span< const uint8_t, 32 > key,
ProvideKeyCallback callback
)
AssetClient & operator=(
const AssetClient &
) =delete
bool isValid() const
inline const std::string & getAppId() const
std::optional< std::vector< uint8_t > > fetchSync(
const AssetId & id,
std::chrono::milliseconds timeout =std::chrono::seconds(30)
)
FetchHandle fetch(
const AssetId & id
)
void fetch(
const AssetId & id,
FetchCallback callback
)
bool advertiseSync(
const std::vector< AssetInfo > & entries,
std::chrono::milliseconds timeout =std::chrono::seconds(5)
)
VoidHandle advertise(
const std::vector< AssetInfo > & entries
)
void advertise(
const std::vector< AssetInfo > & entries,
AdvertiseCallback callback
)
AssetClient(
EntropyEngine::Networking::SessionHandle session,
EntropyEngine::Networking::SessionManager * sessionManager,
std::string appId =""
)
AssetClient(
const AssetClient &
) =delete

Updated on 2026-01-26 at 16:50:32 -0500