cohtml::IAsyncResourceResponse

Response that the application should use when the resource has been loaded You can keep a reference to this object as long as needed and call Finish afterwards.

#include <ResourceHandler.h>

Public Classes

Name
structUserImageData
Description of the properties of the user provided image.

Public Types

Name
enumStatus { Success, Failure}

Public Functions

Name
virtual~IAsyncResourceResponse()
virtual void *GetSpace(unsigned long long size) =0
Allocates more space where to put the data read. NB: You can call the function multiple times and it’ll allocate more space if needed. The space requested MUST be the SUM of all space required. Already copied data will be still available in the buffer - it works the same way as “realloc”.
virtual voidReceiveUserImage(const UserImageData & userImageData) =0
Passes data about a user image that is ready to be used by the UI system. This lets Cohtml use textures that are already on the GPU and the void* is interpreted by the backend.
virtual voidReceiveOptimizedData(const DataBuffer * optimizedData) =0
Passes optimized data that speeds up the resource processing.
virtual voidSignalProgress() =0
Can be called when part of the response is ready and can be used by the backend. Calling this is optional. Note that the pointer returned by GetSpace will not be valid anymore. The user will have to request some more memory for the fresh data after this call.
virtual voidSetStatus(unsigned short status) =0
Additional API used for complex responses like HTTP. Setting these fields is not required for local “coui” loads.
virtual voidSetResponseURL(const char * responseURL) =0
The URL of the response (can change from the request due to redirects)
virtual voidSetHeader(const char * name, const char * value) =0
Set a response header.
virtual voidFinish(Status status) =0
Call when the resource has been loaded or the load failed. After this call the object is invalidated. NB: It’s not safe to call any methods on this interface after Finish.

Protected Functions

Name
IAsyncResourceResponse()

Public Types Documentation

enum Status

EnumeratorValueDescription
Success
Failure

Public Functions Documentation

function ~IAsyncResourceResponse

virtual ~IAsyncResourceResponse()

function GetSpace

virtual void * GetSpace(
    unsigned long long size
) =0

Allocates more space where to put the data read. NB: You can call the function multiple times and it’ll allocate more space if needed. The space requested MUST be the SUM of all space required. Already copied data will be still available in the buffer - it works the same way as “realloc”.

Note: The pointer returned will always point to the beginning of the data array. Users have to keep an offset counter themselves if they plan to call GetSpace() multiple times.

function ReceiveUserImage

virtual void ReceiveUserImage(
    const UserImageData & userImageData
) =0

Passes data about a user image that is ready to be used by the UI system. This lets Cohtml use textures that are already on the GPU and the void* is interpreted by the backend.

Parameters:

  • userImageData information about the user image

function ReceiveOptimizedData

virtual void ReceiveOptimizedData(
    const DataBuffer * optimizedData
) =0

Passes optimized data that speeds up the resource processing.

Parameters:

  • optimizedData is a data, produced by doing resource processing ahead of time and can be easily cached, serialized and deserialized.

Note: Currently, this can speed up the JavaScript compilation and run times, the optimizedData can be obtained using the cohtml::ScriptCompiler::Compile.

function SignalProgress

virtual void SignalProgress() =0

Can be called when part of the response is ready and can be used by the backend. Calling this is optional. Note that the pointer returned by GetSpace will not be valid anymore. The user will have to request some more memory for the fresh data after this call.

function SetStatus

virtual void SetStatus(
    unsigned short status
) =0

Additional API used for complex responses like HTTP. Setting these fields is not required for local “coui” loads.

function SetResponseURL

virtual void SetResponseURL(
    const char * responseURL
) =0

The URL of the response (can change from the request due to redirects)

function SetHeader

virtual void SetHeader(
    const char * name,
    const char * value
) =0

Set a response header.

function Finish

virtual void Finish(
    Status status
) =0

Call when the resource has been loaded or the load failed. After this call the object is invalidated. NB: It’s not safe to call any methods on this interface after Finish.

Protected Functions Documentation

function IAsyncResourceResponse

IAsyncResourceResponse()