Packages > @fluidframework/counter > SharedCounter

SharedCounter Class

A SharedCounter is a shared object which holds a number that can be incremented or decremented.

Signature

export declare class SharedCounter extends SharedObject<ISharedCounterEvents> implements ISharedCounter

Extends: SharedObject <ISharedCounterEvents

Implements: ISharedCounter

Remarks

### Creation

To create a SharedCounter, get the factory and call create with a runtime and string ID:

const factory = SharedCounter.getFactory();
const counter = factory.create(this.runtime, id) as SharedCounter;

### Usage

Once created, you can call increment to modify the value with either a positive or negative number:

counter.increment(10); // add 10 to the counter value
counter.increment(-5); // subtract 5 from the counter value

To observe changes to the value (including those from remote clients), register for the "incremented" event:

counter.on("incremented", (incrementAmount, newValue) => {
    console.log(`The counter incremented by ${incrementAmount} and now has a value of ${newValue}`);
});

Constructors

Constructor Description
(constructor)(id, runtime, attributes) Constructs a new instance of the SharedCounter class

Static Methods

Method Return Type Description
create(runtime, id) SharedCounter Create a new shared counter
getFactory() IChannelFactory Get a factory for SharedCounter to register with the data store.

Properties

Property Type Description
value number The counter value.

Methods

Method Return Type Description
increment(incrementAmount) void Increments or decrements the value. Must only increment or decrement by a whole number value.

Constructor Details

(constructor)

Constructs a new instance of the SharedCounter class

Signature

constructor(id: string, runtime: IFluidDataStoreRuntime, attributes: IChannelAttributes);

Parameters

Parameter Type Description
id string
runtime IFluidDataStoreRuntime
attributes IChannelAttributes

Property Details

value

The counter value.

Signature

get value(): number;

Type: number

Method Details

create

Create a new shared counter

Signature

static create(runtime: IFluidDataStoreRuntime, id?: string): SharedCounter;

Parameters

Parameter Modifiers Type Description
runtime IFluidDataStoreRuntime data store runtime the new shared counter belongs to
id optional string optional name of the shared counter

Returns

newly create shared counter (but not attached yet)

Return type: SharedCounter

getFactory

Get a factory for SharedCounter to register with the data store.

Signature

static getFactory(): IChannelFactory;

Returns

a factory that creates and load SharedCounter

Return type: IChannelFactory

increment

Increments or decrements the value. Must only increment or decrement by a whole number value.

Signature

increment(incrementAmount: number): void;

Parameters

Parameter Type Description
incrementAmount number a whole number to increment or decrement by.