SharedMatrix Class
A SharedMatrix holds a rectangular 2D array of values. Supported operations include setting values and inserting/removing rows and columns.
Matrix values may be any Fluid serializable type, which is the set of JSON serializable types extended to include IFluidHandles.
Fluid's SharedMatrix implementation works equally well for dense and sparse matrix data and physically stores data in Z-order to leverage CPU caches and prefetching when reading in either row or column major order. (See README.md for more details.)
Signature
export declare class SharedMatrix<T = any> extends SharedObject implements IMatrixProducer<MatrixItem<T>>, IMatrixReader<MatrixItem<T>>, IMatrixWriter<MatrixItem<T>>
Extends: SharedObject
Implements: IMatrixProducer<MatrixItem<T>>, IMatrixReader<MatrixItem<T>>, IMatrixWriter<MatrixItem
Type Parameters
Parameter | Default | Description |
---|---|---|
T | any |
Constructors
Constructor | Description |
---|---|
(constructor)(runtime, id, attributes) | Constructs a new instance of the SharedMatrix class |
Static Methods
Method | Return Type | Description |
---|---|---|
create(runtime, id) | SharedMatrix<T> | Creates a local version of the channel. Calling attach on the object later will insert it into the object stream. |
getFactory() | SharedMatrixFactory |
Properties
Property | Type | Description |
---|---|---|
colCount | number | |
id | string | |
matrixProducer | IMatrixProducer<MatrixItem<T>> | |
rowCount | number |
Methods
Constructor Details
(constructor)
Constructs a new instance of the SharedMatrix
class
Signature
constructor(runtime: IFluidDataStoreRuntime, id: string, attributes: IChannelAttributes);
Parameters
Parameter | Type | Description |
---|---|---|
runtime | IFluidDataStoreRuntime | |
id | string | |
attributes | IChannelAttributes |
Property Details
colCount
Signature
get colCount(): number;
Type: number
id
Signature
id: string;
Type: string
matrixProducer
Signature
get matrixProducer(): IMatrixProducer<MatrixItem<T>>;
Type: IMatrixProducer<MatrixItem<T>>
rowCount
Signature
get rowCount(): number;
Type: number
Method Details
applyStashedOp
Apply changes from an op. Used when rehydrating an attached container with pending changes. This prepares the SharedObject for seeing an ACK for the op or resubmitting the op upon reconnection.
Signature
protected applyStashedOp(content: any): unknown;
Parameters
Parameter | Type | Description |
---|---|---|
content | any | Contents of a stashed op. |
Returns
localMetadata of the op, to be passed to process() or resubmit() when the op is ACKed or resubmitted, respectively
Return type: unknown
closeMatrix
Signature
closeMatrix(consumer: IMatrixConsumer<MatrixItem<T>>): void;
Parameters
Parameter | Type | Description |
---|---|---|
consumer | IMatrixConsumer<MatrixItem<T>> |
create
Creates a local version of the channel. Calling attach on the object later will insert it into the object stream.
Signature
static create<T>(runtime: IFluidDataStoreRuntime, id?: string): SharedMatrix<T>;
Type Parameters
Parameter | Description |
---|---|
T |
Parameters
Parameter | Modifiers | Type | Description |
---|---|---|---|
runtime | IFluidDataStoreRuntime | The runtime the new object will be associated with | |
id | optional | string | The unique ID of the new object |
Returns
The newly created object.
Return type: SharedMatrix<T>
didAttach
Signature
protected didAttach(): void;
getCell
Signature
getCell(row: number, col: number): MatrixItem<T>;
Parameters
Parameter | Type | Description |
---|---|---|
row | number | |
col | number |
Returns
Return type: MatrixItem<T>
getFactory
Signature
static getFactory(): SharedMatrixFactory;
Returns
Return type: SharedMatrixFactory
insertCols
Signature
insertCols(colStart: number, count: number): void;
Parameters
Parameter | Type | Description |
---|---|---|
colStart | number | |
count | number |
insertRows
Signature
insertRows(rowStart: number, count: number): void;
Parameters
Parameter | Type | Description |
---|---|---|
rowStart | number | |
count | number |
loadCore
Signature
protected loadCore(storage: IChannelStorageService): Promise<void>;
Parameters
Parameter | Type | Description |
---|---|---|
storage | IChannelStorageService |
Returns
Return type: Promise<void>
onConnect
Signature
protected onConnect(): void;
onDisconnect
Signature
protected onDisconnect(): void;
openMatrix
Signature
openMatrix(consumer: IMatrixConsumer<MatrixItem<T>>): IMatrixReader<MatrixItem<T>>;
Parameters
Parameter | Type | Description |
---|---|---|
consumer | IMatrixConsumer<MatrixItem<T>> |
Returns
Return type: IMatrixReader<MatrixItem<T>>
openUndo
Subscribes the given IUndoConsumer to the matrix.
Signature
openUndo(consumer: IUndoConsumer): void;
Parameters
Parameter | Type | Description |
---|---|---|
consumer | IUndoConsumer |
processCore
Signature
protected processCore(rawMessage: ISequencedDocumentMessage, local: boolean, localOpMetadata: unknown): void;
Parameters
Parameter | Type | Description |
---|---|---|
rawMessage | ISequencedDocumentMessage | |
local | boolean | |
localOpMetadata | unknown |
processGCDataCore
Runs serializer on the GC data for this SharedMatrix. All the IFluidHandle's stored in the cells represent routes to other objects.
Signature
protected processGCDataCore(serializer: SummarySerializer): void;
Parameters
Parameter | Type | Description |
---|---|---|
serializer | SummarySerializer |
removeCols
Signature
removeCols(colStart: number, count: number): void;
Parameters
Parameter | Type | Description |
---|---|---|
colStart | number | |
count | number |
removeRows
Signature
removeRows(rowStart: number, count: number): void;
Parameters
Parameter | Type | Description |
---|---|---|
rowStart | number | |
count | number |
reSubmitCore
Signature
protected reSubmitCore(content: any, localOpMetadata: unknown): void;
Parameters
Parameter | Type | Description |
---|---|---|
content | any | |
localOpMetadata | unknown |
setCell
Signature
setCell(row: number, col: number, value: MatrixItem<T>): void;
Parameters
Parameter | Type | Description |
---|---|---|
row | number | |
col | number | |
value | MatrixItem<T> |
setCells
Signature
setCells(rowStart: number, colStart: number, colCount: number, values: readonly (MatrixItem<T>)[]): void;
Parameters
Parameter | Type | Description |
---|---|---|
rowStart | number | |
colStart | number | |
colCount | number | |
values | readonly (MatrixItem<T>)[] |
submitLocalMessage
Signature
protected submitLocalMessage(message: any, localOpMetadata?: any): void;
Parameters
Parameter | Modifiers | Type | Description |
---|---|---|---|
message | any | ||
localOpMetadata | optional | any |
summarizeCore
Signature
protected summarizeCore(serializer: IFluidSerializer): ISummaryTreeWithStats;
Parameters
Parameter | Type | Description |
---|---|---|
serializer | IFluidSerializer |
Returns
Return type: ISummaryTreeWithStats
toString
Signature
toString(): string;
Returns
Return type: string