Skip to main content
Version: v2

IRuntime Interface

The IRuntime represents an instantiation of a code package within a Container. Primarily held by the ContainerContext to be able to interact with the running instance of the Container.

This API is provided for existing users, but is not recommended for new users.

To use, import via @fluidframework/container-definitions/legacy.

For more information about our API support guarantees, see here.

Signature​

export interface IRuntime extends IDisposable

Extends: IDisposable

Methods​

MethodAlertsModifiersReturn TypeDescription
close()BetaoptionalvoidCloses the runtime, releasing timers and other transient resources which are only useful while changes to the content or service are still possible. The entryPoint is preserved, allowing content to still be read/inspected.
createSummary(blobRedirectTable)BetaISummaryTreeCreate a summary. Used when attaching or serializing a detached container.
getEntryPoint()BetaPromise<FluidObject>Exposes the entryPoint for the container runtime. Use this as the primary way of getting access to the user-defined logic within the container runtime.
getPendingLocalState(props)BetaunknownGet pending local state in a serializable format to be given back to a newly loaded container
notifyOpReplay(message)BetaoptionalPromise<void>Notify runtime that we have processed a saved message, so that it can do async work (applying stashed ops) after having processed it.
process(message, local)BetaanyProcesses the given op (message)
processSignal(message, local)BetaanyProcesses the given signal
setAttachState(attachState)BetavoidPropagate the container state when container is attaching or attached.
setConnectionState(canSendOps, clientId)BetaanyNotifies the runtime of a change in the connection state
setConnectionStatus(status)BetaoptionalvoidNotifies the runtime of a change in the connection state.

Method Details​

close​

Closes the runtime, releasing timers and other transient resources which are only useful while changes to the content or service are still possible. The entryPoint is preserved, allowing content to still be read/inspected.

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature​

close?(): void;

Remarks​

This enters an intermediate lifecycle stage between connected operation and full disposal. The container may call this when it closes, before eventually calling dispose(error). Any resources this cleans up should also be cleaned up by dispose in the case when close is not called.

This is optional for backwards compatibility with older runtime implementations.

Do not confuse this with with the various closeFn callbacks (such as closeFn or IGarbageCollectorCreateParams.closeFn: those callbacks expose a way to initiate container close, not a way to get notified of container close (which might come from another source). This method on the other hand is invoked for all the cases in which the container is closing (though this does not include when its disposing without closing first!), and thus this is where the runtime should actually transition to the closed state, and do any appropriate cleanup.

createSummary​

Create a summary. Used when attaching or serializing a detached container.

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature​

createSummary(blobRedirectTable?: Map<string, string>): ISummaryTree;

Parameters​

ParameterModifiersTypeDescription
blobRedirectTableoptionalMap<string, string>A table passed during the attach process. While detached, blob upload is supported using IDs generated locally. After attach, these IDs cannot be used, so this table maps the old local IDs to the new storage IDs so requests can be redirected.

Returns​

Return type: ISummaryTree

getEntryPoint​

Exposes the entryPoint for the container runtime. Use this as the primary way of getting access to the user-defined logic within the container runtime.

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature​

getEntryPoint(): Promise<FluidObject>;

Returns​

Return type: Promise<FluidObject>

See Also​

getEntryPoint()

getPendingLocalState​

Get pending local state in a serializable format to be given back to a newly loaded container

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature​

getPendingLocalState(props?: IGetPendingLocalStateProps): unknown;

Parameters​

ParameterModifiersTypeDescription
propsoptionalIGetPendingLocalStateProps

Returns​

Return type: unknown

notifyOpReplay​

Notify runtime that we have processed a saved message, so that it can do async work (applying stashed ops) after having processed it.

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature​

notifyOpReplay?(message: ISequencedDocumentMessage): Promise<void>;

Parameters​

ParameterTypeDescription
messageISequencedDocumentMessage

Returns​

Return type: Promise<void>

process​

Processes the given op (message)

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature​

process(message: ISequencedDocumentMessage, local: boolean): any;

Parameters​

ParameterTypeDescription
messageISequencedDocumentMessagedelta message received from the server
localbooleantrue if the message was originally generated by the client receiving it.

Returns​

Return type: any

processSignal​

Processes the given signal

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature​

processSignal(message: any, local: boolean): any;

Parameters​

ParameterTypeDescription
messageany
localboolean

Returns​

Return type: any

setAttachState​

Propagate the container state when container is attaching or attached.

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature​

setAttachState(attachState: AttachState.Attaching | AttachState.Attached): void;

Parameters​

ParameterTypeDescription
attachStateAttachState.Attaching | AttachState.AttachedState of the container.

setConnectionState​

Notifies the runtime of a change in the connection state

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature​

setConnectionState(canSendOps: boolean, clientId?: string): any;

Remarks​

This is deprecated when used with @fluidframework/container-loader v2.63 and later. Implement setConnectionStatus(status). Then this method will not be called, when using newer container-loader.

Note: when setConnectionStatus(status) is implemented, there will not be a call exactly when Container loads as happens currently without it.

Parameters​

ParameterModifiersTypeDescription
canSendOpsbooleantrue if the runtime is allowed to send ops
clientIdoptionalstringthe ID of the client that is connecting or disconnecting

Returns​

Return type: any

setConnectionStatus​

Notifies the runtime of a change in the connection state.

This API is provided for existing users, but is not recommended for new users.

For more information about our API support guarantees, see here.

Signature​

setConnectionStatus?(status: ConnectionStatus): void;

Remarks​

This supersedes setConnectionState(canSendOps, clientId).

Parameters​

ParameterTypeDescription
statusConnectionStatus