@signiant/media-shuttle-sdk-base
Version:
The base parent sdk behind other media shuttle sdks (e.g. media-shuttle-sdk)
51 lines • 2.13 kB
TypeScript
import { Transfer } from '../../external/transfer';
import TransferConfig from './TransferConfig';
import { TransferDirection, TransferEventType, TransferState } from '../../external';
import TransferClient from '../services/TransferClient';
import TransferEvent from '../../external/transfer/events/TransferEvent';
/**
* An abstract implementation of common functionalities between upload and download transfers
*/
export default abstract class AbstractTransfer implements Transfer {
protected _transferClient: TransferClient;
protected _transferConfig: TransferConfig;
protected _transferId: string;
protected _originatorId: string;
protected _transferState: TransferState;
private readonly _handleTransferClientStateChangeBoundInstance;
private readonly _eventHandlerMap;
protected constructor(_transferClient: TransferClient);
private handleTransferClientStateChange;
private publishTransferConnectionStatusUpdateEvent;
cancel(): Promise<void>;
private isInCancellableState;
get currentTransferState(): TransferState;
unsubscribeAll(): boolean;
private isInRetryableState;
retry(): Promise<void>;
abstract getTransferDirection(): TransferDirection;
start(): Promise<void>;
abstract onTransferEvent(eventData: TransferEvent): Promise<void>;
private onTransferUpdate;
private publishTransferEvent;
private unsubscribeFromAllTransferEvents;
private subscribeToAllTransferEvents;
private mapTransferClientEvent;
private startTransfer;
protected subscribeToEvent({ eventType, handler }: {
eventType: TransferEventType;
handler: Function;
}): void;
protected unsubscribeFromEvent({ eventType }: {
eventType: TransferEventType;
}): boolean;
set transferId(transferId: string);
get transferId(): string;
abstract populateTransferConfig(): Promise<void>;
/**
* This could be either an upload or a download as defined by the subclass.
* @protected
*/
protected abstract executeTransferCommand(): Promise<void>;
}
//# sourceMappingURL=AbstractTransfer.d.ts.map