IContainer Interface
The Host's view of the Container and its connection to storage
Signature
export interface IContainer extends IEventProvider<IContainerEvents>, IFluidRouter
Extends: IEventProvider<IContainerEvents>, IFluidRouter
Properties
Property | Type | Description |
---|---|---|
attachState | AttachState | Indicates the attachment state of the container to a host service. |
audience | IAudience | The audience information for all clients currently associated with the document in the current session |
closed | boolean | Returns true if the container has been closed, otherwise false |
connectionState | ConnectionState | Provides the current state of the container's connection to the ordering service |
deltaManager | IDeltaManager<ISequencedDocumentMessage, IDocumentMessage> | The Delta Manager supporting the op stream for this Container |
isDirty | boolean | Returns true if the container is dirty, i.e. there are user changes that has not been saved Closing container in this state results in data loss for user. Container usually gets into this situation due to loss of connectivity. |
readOnlyInfo | ReadOnlyInfo |
Tells if container is in read-only mode. Data stores should listen for "readonly" notifications and disallow user making changes to data stores. Readonly state can be because of no storage write permission, or due to host forcing readonly mode for container. We do not differentiate here between no write access to storage vs. host disallowing changes to container - in all cases container runtime and data stores should respect readonly state and not allow local changes. It is undefined if we have not yet established websocket connection and do not know if user has write access to a file. |
resolvedUrl | IResolvedUrl | undefined | Represents the resolved url to the Container Will be undefined only when the container is in the detatched state. |
Methods
Method | Return Type | Description |
---|---|---|
attach(request) | Promise<void> |
Attaches the Container to the Container specified by the given Request. TODO - in the case of failure options should give a retry policy. Or some continuation function that allows attachment to a secondary document. |
close(error) | void | Closes the container |
closeAndGetPendingLocalState() | string | Closes the container and returns serialized local state intended to be given to a newly loaded container |
connect() | void | Attempts to connect the container to the delta stream and process ops |
disconnect() | void | Disconnects the container from the delta stream and stops processing ops |
getAbsoluteUrl(relativeUrl) | Promise<string | undefined> | Get an absolute url for a provided container-relative request url. If the container is not attached, this will return undefined. |
getLoadedCodeDetails() | IFluidCodeDetails | undefined | Get the code details that were used to load the container. |
getQuorum() | IQuorumClients | The collection of write clients which were connected as of the current sequence number. Also contains a map of key-value pairs that must be agreed upon by all clients before being accepted. |
getSpecifiedCodeDetails() | IFluidCodeDetails | undefined | Get the code details that are currently specified for the container. |
proposeCodeDetails(codeDetails) | Promise<boolean> | Propose new code details that define the code to be loaded for this container's runtime. The returned promise will be true when the proposal is accepted, and false if the proposal is rejected. |
request(request) | Promise<IResponse> | Issue a request against the container for a resource. |
serialize() | string | Extract the snapshot from the detached container. |
Property Details
attachState
Indicates the attachment state of the container to a host service.
Signature
readonly attachState: AttachState;
Type: AttachState
audience
The audience information for all clients currently associated with the document in the current session
Signature
readonly audience: IAudience;
Type: IAudience
closed
Returns true if the container has been closed, otherwise false
Signature
readonly closed: boolean;
Type: boolean
connectionState
Provides the current state of the container's connection to the ordering service
Signature
readonly connectionState: ConnectionState;
Type: ConnectionState
deltaManager
The Delta Manager supporting the op stream for this Container
Signature
deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>;
Type: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>
isDirty
Returns true if the container is dirty, i.e. there are user changes that has not been saved Closing container in this state results in data loss for user. Container usually gets into this situation due to loss of connectivity.
Signature
readonly isDirty: boolean;
Type: boolean
readOnlyInfo
Tells if container is in read-only mode. Data stores should listen for "readonly" notifications and disallow user making changes to data stores. Readonly state can be because of no storage write permission, or due to host forcing readonly mode for container.
We do not differentiate here between no write access to storage vs. host disallowing changes to container - in all cases container runtime and data stores should respect readonly state and not allow local changes.
It is undefined if we have not yet established websocket connection and do not know if user has write access to a file.
Signature
readonly readOnlyInfo: ReadOnlyInfo;
Type: ReadOnlyInfo
resolvedUrl
Represents the resolved url to the Container Will be undefined only when the container is in the detatched state.
Signature
resolvedUrl: IResolvedUrl | undefined;
Type: IResolvedUrl | undefined
Method Details
attach
Attaches the Container to the Container specified by the given Request.
TODO - in the case of failure options should give a retry policy. Or some continuation function that allows attachment to a secondary document.
Signature
attach(request: IRequest): Promise<void>;
Parameters
Parameter | Type | Description |
---|---|---|
request | IRequest |
Returns
Return type: Promise<void>
close
Closes the container
Signature
close(error?: ICriticalContainerError): void;
Parameters
Parameter | Modifiers | Type | Description |
---|---|---|---|
error | optional | ICriticalContainerError |
closeAndGetPendingLocalState
Closes the container and returns serialized local state intended to be given to a newly loaded container
Signature
closeAndGetPendingLocalState(): string;
Returns
Return type: string
connect
Attempts to connect the container to the delta stream and process ops
Signature
connect(): void;
disconnect
Disconnects the container from the delta stream and stops processing ops
Signature
disconnect(): void;
getAbsoluteUrl
Get an absolute url for a provided container-relative request url. If the container is not attached, this will return undefined.
Signature
getAbsoluteUrl(relativeUrl: string): Promise<string | undefined>;
Parameters
Parameter | Type | Description |
---|---|---|
relativeUrl | string | A container-relative request URL |
Returns
Return type: Promise<string | undefined>
getLoadedCodeDetails
Get the code details that were used to load the container.
Signature
getLoadedCodeDetails(): IFluidCodeDetails | undefined;
Returns
The code details that were used to load the container if it is loaded, undefined if it is not yet loaded.
Return type: IFluidCodeDetails | undefined
getQuorum
The collection of write clients which were connected as of the current sequence number. Also contains a map of key-value pairs that must be agreed upon by all clients before being accepted.
Signature
getQuorum(): IQuorumClients;
Returns
Return type: IQuorumClients
getSpecifiedCodeDetails
Get the code details that are currently specified for the container.
Signature
getSpecifiedCodeDetails(): IFluidCodeDetails | undefined;
Returns
The current code details if any are specified, undefined if none are specified.
Return type: IFluidCodeDetails | undefined
proposeCodeDetails
Propose new code details that define the code to be loaded for this container's runtime. The returned promise will be true when the proposal is accepted, and false if the proposal is rejected.
Signature
proposeCodeDetails(codeDetails: IFluidCodeDetails): Promise<boolean>;
Parameters
Parameter | Type | Description |
---|---|---|
codeDetails | IFluidCodeDetails |
Returns
Return type: Promise<boolean>
request
Issue a request against the container for a resource.
Signature
request(request: IRequest): Promise<IResponse>;
Parameters
Parameter | Type | Description |
---|---|---|
request | IRequest | The request to be issued against the container |
Returns
Return type: Promise<IResponse>
serialize
Extract the snapshot from the detached container.
Signature
serialize(): string;
Returns
Return type: string