Segments storage interface

interface SegmentStorage {
    initialize(coreConfig: CommonCoreConfig, mainStreamConfig: StreamConfig, secondaryStreamConfig: StreamConfig): Promise<void>;
    onPlaybackUpdated(position: number, rate: number): void;
    onSegmentRequested(swarmId: string, streamId: string, segmentId: number, startTime: number, endTime: number, streamType: StreamType, isLiveStream: boolean): void;
    storeSegment(swarmId: string, streamId: string, segmentId: number, data: ArrayBuffer, startTime: number, endTime: number, streamType: StreamType, isLiveStream: boolean): Promise<void>;
    getSegmentData(swarmId: string, streamId: string, segmentId: number): Promise<undefined | ArrayBuffer>;
    getUsage(): {
        totalCapacity: number;
        usedCapacity: number;
    };
    hasSegment(swarmId: string, streamId: string, segmentId: number): boolean;
    getStoredSegmentIds(swarmId: string, streamId: string): number[];
    setSegmentChangeCallback(callback: ((streamId: string) => void)): void;
    destroy(): void;
}

Methods

  • Initializes storage

    Parameters

    Returns Promise<void>

  • Provides playback position from player

    Parameters

    • position: number

      Playback position

    • rate: number

      Playback rate

    Returns void

  • Provides segment request information from player

    Parameters

    • swarmId: string

      Swarm identifier

    • streamId: string

      Stream identifier

    • segmentId: number

      Segment identifier

    • startTime: number

      Segment start time

    • endTime: number

      Segment end time

    • streamType: StreamType

      Stream type

    • isLiveStream: boolean

      Is live stream

    Returns void

  • Stores segment data

    Parameters

    • swarmId: string

      Swarm identifier

    • streamId: string

      Stream identifier

    • segmentId: number

      Segment identifier

    • data: ArrayBuffer

      Segment data

    • startTime: number

      Segment start time

    • endTime: number

      Segment end time

    • streamType: StreamType

      Stream type

    • isLiveStream: boolean

      Is live stream

    Returns Promise<void>

  • Returns segment data

    Parameters

    • swarmId: string

      Swarm identifier

    • streamId: string

      Stream identifier

    • segmentId: number

      Segment identifier

    Returns Promise<undefined | ArrayBuffer>

  • Returns used memory information in the storage

    Returns {
        totalCapacity: number;
        usedCapacity: number;
    }

    • totalCapacity: number
    • usedCapacity: number
  • Returns true if segment is in storage

    Parameters

    • swarmId: string

      Swarm identifier

    • streamId: string

      Stream identifier

    • segmentId: number

      Segment identifier

    Returns boolean

  • Returns segment IDs of a stream that are stored in the storage

    Parameters

    • swarmId: string

      Swarm identifier

    • streamId: string

      Stream identifier

    Returns number[]

  • Sets segment change callback function

    Parameters

    • callback: ((streamId: string) => void)

      Callback function that has to be called when segments appear or disappear in the storage

        • (streamId): void
        • Parameters

          • streamId: string

          Returns void

    Returns void