Class RemoteRenderingClient

RemoteRenderingClient is an authorized connection to the Azure APIs for Remote Rendering.

It is the main entry point for users to use remote rendering. Use this to create RenderingSession instances.

class Microsoft::Azure::RemoteRendering::RemoteRenderingClient final

Methods

CreateNewRenderingSessionAsync

Creates a new rendering session.

This spins up a new server in the Azure cloud. Once ready, CreateNewRenderingSessionAsync returns the created RenderingSession object or an error context.

auto CreateNewRenderingSessionAsync(Microsoft::Azure::RemoteRendering::RenderingSessionCreationOptions options, std::function<void(Status, ApiHandle<Microsoft::Azure::RemoteRendering::CreateRenderingSessionResult>)> callback) -> void;

Parameters

Name Type Description
options RenderingSessionCreationOptions Session creation parameters
  • callback - The task result is of type CreateRenderingSessionResult which either holds a valid session reference or additional error context.

Returns

Type Description
void The task result is of type CreateRenderingSessionResult which either holds a valid session reference or additional error context.

CreateNewRenderingSessionUnsafeAsync

Internal.

auto CreateNewRenderingSessionUnsafeAsync(Microsoft::Azure::RemoteRendering::RenderingSessionCreationOptionsUnsafe options, std::function<void(Status, ApiHandle<Microsoft::Azure::RemoteRendering::CreateRenderingSessionResult>)> callback) -> void;

Parameters

Name Type Description
options RenderingSessionCreationOptionsUnsafe
  • callback

Returns

Type Description
void

Dispose

auto Dispose() noexcept -> Microsoft::Azure::RemoteRendering::Status;

GetAssetConversionStatusAsync

Deprecated. Use GetConversionPropertiesAsync() instead.

auto GetAssetConversionStatusAsync(std::string const& conversionId, std::function<void(Status, ApiHandle<Microsoft::Azure::RemoteRendering::AssetConversionStatusResult>)> callback) -> void;

Parameters

Name Type Description
conversionId string
  • callback

Returns

Type Description
void

GetConversionPropertiesAsync

Queries the properties of an asset conversion.

Since the underlying call is a REST call, there should be sufficient delay (5-10s) between subsequent calls to avoid server throttling. In case of throttling, the function will fail and the HttpResponseCode reports code 429 ("too many requests").

  • A Result.InvalidParam error occurs if no conversionId is provided, or the rendering service URL was empty, because the account domain and account Id was not provided.
  • A Result.AuthenticationFailed error occurs if the request could not be authenticated.
  • A Result.TooManyRequests error occurs if the rate limit has been exceeded. Retry the request after the duration given in the Retry-After header.
  • A Result.DomainUnreachable error occurs if remote rendering domain is unreachable. Url may be invalid or Azure Remote Rendering is not supported in this region.
  • A Result.ConnectionRefused error occurs if remote rendering connection is refused by destination host.
  • A Result.ConnectionFailed error occurs if remote rendering connection failed. Exact reason is unknown.
  • A Result.Timeout error occurs if remote rendering connection timed out.
auto GetConversionPropertiesAsync(std::string const& conversionId, std::function<void(Status, ApiHandle<Microsoft::Azure::RemoteRendering::ConversionPropertiesResult>)> callback) -> void;

Parameters

Name Type Description
conversionId string The conversion ID returned by StartAssetConversionAsync.
  • callback - Task containing the conversion status or an error context. The returned async will complete in an arbitrary thread.

Returns

Type Description
void Task containing the conversion status or an error context. The returned async will complete in an arbitrary thread.

GetCurrentConversionsAsync

Queries for all asset conversions of the last 30 days for the account associated with this client.

Since the underlying call is a REST call, there should be sufficient delay (5-10s) between subsequent calls to avoid server throttling. In case of throttling, the function will fail and the HttpResponseCode reports code 429 ("too many requests"). The returned async will complete in an arbitrary thread.

auto GetCurrentConversionsAsync(std::function<void(Status, ApiHandle<Microsoft::Azure::RemoteRendering::ConversionPropertiesArrayResult>)> callback) -> void;

Parameters

Name Type Description
  • callback - The returned async will complete in an arbitrary thread.

Returns

Type Description
void The returned async will complete in an arbitrary thread.

GetCurrentRenderingSessionsAsync

Queries for all existing rendering sessions for the account associated with this client.

Since the underlying call is a REST call, there should be sufficient delay (5-10s) between subsequent calls to avoid server throttling. In case of throttling, the function will fail and the HttpResponseCode reports code 429 ("too many requests"). The returned async will complete in an arbitrary thread.

auto GetCurrentRenderingSessionsAsync(std::function<void(Status, ApiHandle<Microsoft::Azure::RemoteRendering::RenderingSessionPropertiesArrayResult>)> callback) -> void;

Parameters

Name Type Description
  • callback - The returned async will complete in an arbitrary thread.

Returns

Type Description
void The returned async will complete in an arbitrary thread.

OpenRenderingSessionAsync

Opens an existing rendering session.

The session id can be created through RemoteRenderingClient.CreateNewRenderingSessionAsync(RenderingSessionCreationOptions), as well as through external tooling such as PowerShell.

auto OpenRenderingSessionAsync(std::string const& sessionId, std::function<void(Status, ApiHandle<Microsoft::Azure::RemoteRendering::CreateRenderingSessionResult>)> callback) -> void;

Parameters

Name Type Description
sessionId string The UUID of a rendering session.
  • callback - The task result is of type CreateRenderingSessionResult which either holds a valid session reference or additional error context.

Returns

Type Description
void The task result is of type CreateRenderingSessionResult which either holds a valid session reference or additional error context.

StartAssetConversionAsync

Starts converting an asset.

auto StartAssetConversionAsync(Microsoft::Azure::RemoteRendering::AssetConversionOptions conversionOptions, std::function<void(Status, ApiHandle<Microsoft::Azure::RemoteRendering::AssetConversionResult>)> callback) -> void;

Parameters

Name Type Description
conversionOptions AssetConversionOptions Conversion properties. Includes the conversion id, the asset input information, and the output information
  • callback - Task containing the asset token or an error context. The returned async will complete in an arbitrary thread.

Returns

Type Description
void Task containing the asset token or an error context. The returned async will complete in an arbitrary thread.

Properties

Configuration

Parameters with which this instance was initialized.

auto GetConfiguration() const noexcept -> Microsoft::Azure::RemoteRendering::SessionConfiguration;

LogLevel

Only messages at this log level or below will be delivered through RemoteRenderingClient.MessageLogged.

auto GetLogLevel() const noexcept -> Microsoft::Azure::RemoteRendering::LogLevel;
auto SetLogLevel(Microsoft::Azure::RemoteRendering::LogLevel value) noexcept -> Microsoft::Azure::RemoteRendering::Status;

Valid

Whether this object is still valid.

An object is invalid if it has been destroyed or if the connection has been lost. It is an error to call any other function on an invalid object.

auto GetValid() const noexcept -> bool;

Events

MessageLogged

Log messages are delivered through this callback.

auto MessageLogged(LogEventHandler const& handler) noexcept -> Expected<event_token, Microsoft::Azure::RemoteRendering::Status>;
auto MessageLogged(event_token& token) noexcept -> Microsoft::Azure::RemoteRendering::Status;

TokenRequired

Occurs when the client requires an updated access token or authentication token.

auto TokenRequired(TokenRequiredEventHandler const& handler) noexcept -> Expected<event_token, Microsoft::Azure::RemoteRendering::Status>;
auto TokenRequired(event_token& token) noexcept -> Microsoft::Azure::RemoteRendering::Status;