Skip to content

Latest commit

 

History

History
 
 

README.md

@fluid-internal/presence-runtime

This is an internal package containing implementations of presence APIs. presence APIs should be accessed via @fluidframework/presence package.

Source organization

        @fluidframework/presence
                  |
        +---------^---------+-------+
        |                   |       |
    ./states           ./runtime    |
        |                   |       |
        ^---------v---------+       |
        |         |         |       |
        |   ./workspace     |       |
        |         |         |       |
        ^-------v-+---------^       |
        |       |           |       |
        |   ./utils         |       |
        |       |           |       |
        ^-------^---v-------^-------^
                    |
    @fluid-internal/presence-definitions

utils

Purpose: Utility functions and shared implementations.

Files:

  • internalUtils.tsobjectEntries, objectKeys, getOrCreateRecord, JSON helpers
  • timerManager.tsTimerManager class
  • broadcastControls.tsOptionalBroadcastControl, RequiredBroadcastControl classes
  • valueManager.tsbrandIVM, unbrandIVM

workspace

Purpose: Workspace abstractions and state datastore contracts.

Files:

  • stateDatastore.tsStateDatastore interface, handleFromDatastore, datastoreFromHandle
  • presenceStates.tsPresenceStatesImpl, createPresenceStates, workspace implementation

runtime

Purpose: Core runtime - presence manager, datastore manager, system workspace.

Exposes: extension elements ContainerPresenceFactory and extensionId

Files:

  • extension/containerPresence.tsContainerPresenceFactory, extensionId
  • presenceDatastoreManager.tsPresenceDatastoreManagerImpl
  • presenceManager.tsPresenceManager class, createPresenceManager
  • protocol.ts → Message type definitions, joinMessageType, datastoreUpdateMessageType, acknowledgementMessageType
  • runtimeTypes.tsIEphemeralRuntime, ExtensionHost
  • systemWorkspace.tsSystemWorkspace, createSystemWorkspace

states

Purpose: State manager implementations.

Exposes: StateFactory and Notifications (factory)

Files:

  • latestMapValueManager.tslatestMap factory
  • latestValueManager.tslatest factory
  • notificationsManager.tsNotificationsManager, Notifications factory
  • presence.tsSpecificAttendee
  • stateFactory.tsStateFactory object
  • validatedGetter.tscreateValidatedGetter