UNPKG

@mos-connection/connector

Version:
236 lines 14.5 kB
/// <reference types="node" /> import { Socket } from 'net'; import { NCSServerConnection } from './connection/NCSServerConnection'; import { IMOSObject, IMOSRunningOrder, IMOSRunningOrderBase, IMOSRunningOrderStatus, IMOSStoryStatus, IMOSItemStatus, IMOSROReadyToAir, IMOSStoryAction, IMOSItem, IMOSROAction, IMOSROStory, IMOSItemAction, IMOSROFullStory, IMOSROAck, IMOSObjectList, IMOSRequestObjectList, IMOSListSearchableSchema, IMOSAck, MosItemReplaceOptions, IMOSExternalMetaData, IMOSListMachInfo, IMOSDefaultActiveX, IMOSString128, IMOSTime, MosTypes, AnyXMLObject } from '@mos-connection/model'; import { MosModel } from '@mos-connection/helper'; import { IConnectionConfig, IMOSConnectionStatus, IMOSDevice } from './api'; export declare class MosDevice implements IMOSDevice { socket: Socket; manufacturer: IMOSString128; model: IMOSString128; hwRev: IMOSString128; swRev: IMOSString128; DOM: IMOSTime; SN: IMOSString128; ID: IMOSString128; time: IMOSTime; opTime: IMOSTime; mosRev: IMOSString128; defaultActiveX?: Array<IMOSDefaultActiveX>; mosExternalMetaData?: Array<IMOSExternalMetaData>; private _idPrimary; private _idSecondary; private _debug; private supportedProfiles; /** If set, will do more checks that mos-protocol is properly implemented */ readonly strict: boolean; readonly mosTypes: MosTypes; readonly parseMosTypes: MosModel.MosParseTypes; private _disposed; private _scheduleCheckProfileValidnessTimeout; private _primaryConnection; private _secondaryConnection; private _currentConnection; private _callbackOnRequestMachineInfo?; private _callbackOnConnectionChange?; private _callbackOnRequestMOSOBject?; private _callbackOnRequestAllMOSObjects?; private _callbackOnMOSObjects?; private _callbackOnCreateRunningOrder?; private _callbackOnReplaceRunningOrder?; private _callbackOnDeleteRunningOrder?; private _callbackOnRequestRunningOrder?; private _callbackOnMetadataReplace?; private _callbackOnRunningOrderStatus?; private _callbackOnStoryStatus?; private _callbackOnItemStatus?; private _callbackOnReadyToAir?; private _callbackOnROInsertStories?; private _callbackOnROInsertItems?; private _callbackOnROReplaceStories?; private _callbackOnROReplaceItems?; private _callbackOnROMoveStories?; private _callbackOnROMoveItems?; private _callbackOnRODeleteStories?; private _callbackOnRODeleteItems?; private _callbackOnROSwapStories?; private _callbackOnROSwapItems?; private _callbackOnItemReplace?; private _callbackOnObjectCreate?; private _callbackOnRequestObjectActionNew?; private _callbackOnRequestObjectActionUpdate?; private _callbackOnRequestObjectActionDelete?; private _callbackOnRequestObjectList?; private _callbackOnRequestSearchableSchema?; private _callbackOnRequestAllRunningOrders?; private _callbackOnRunningOrderStory?; constructor(idPrimary: string, idSecondary: string | null, connectionConfig: IConnectionConfig, primaryConnection: NCSServerConnection | null, secondaryConnection: NCSServerConnection | null, offSpecFailover: boolean, strict: boolean); /** True if MOS-device has connection to server (can send messages) */ get hasConnection(): boolean; /** Primary ID (probably the NCS-ID) */ get idPrimary(): string; /** Secondary / Buddy ID (probably the MOS-ID) */ get idSecondary(): string | null; /** Host name (IP-address) of the primary server */ get primaryHost(): string | null; /** Name (ID) of the primary server */ get primaryId(): string | null; /** Host name (IP-address) of the secondary (buddy) server */ get secondaryHost(): string | null; /** Name (ID) of the secondary (buddy) server */ get secondaryId(): string | null; connect(): void; dispose(): Promise<void>; routeData(data: AnyXMLObject, port: MosModel.PortType): Promise<any>; requestMachineInfo(): Promise<IMOSListMachInfo>; onRequestMachineInfo(cb: () => Promise<IMOSListMachInfo>): void; onConnectionChange(cb: (connectionStatus: IMOSConnectionStatus) => void): void; getConnectionStatus(): IMOSConnectionStatus; /** @deprecated getMachineInfo is deprecated, use requestMachineInfo instead */ getMachineInfo(): Promise<IMOSListMachInfo>; /** @deprecated onGetMachineInfo is deprecated, use onRequestMachineInfo instead */ onGetMachineInfo(cb: () => Promise<IMOSListMachInfo>): void; sendMOSObject(obj: IMOSObject): Promise<IMOSAck>; onRequestMOSObject(cb: (objId: string) => Promise<IMOSObject | null>): void; sendRequestMOSObject(objID: IMOSString128): Promise<IMOSObject>; onRequestAllMOSObjects(cb: () => Promise<Array<IMOSObject>>): void; onMOSObjects(cb: (objs: IMOSObject[]) => Promise<IMOSAck>): void; sendRequestAllMOSObjects(pause?: number): Promise<IMOSAck>; /** * https://mosprotocol.com/wp-content/MOS-Protocol-Documents/MOS-Protocol-2.8.4-Current.htm#mosListAll */ private _sendAllMOSObjects; /** * @deprecated getMOSObject is deprecated, use sendRequestMOSObject instead */ getMOSObject(objId: IMOSString128): Promise<IMOSObject>; /** @deprecated getAllMOSObjects is deprecated, use sendRequestAllMOSObjects instead */ getAllMOSObjects(): Promise<IMOSAck>; onCreateRunningOrder(cb: (ro: IMOSRunningOrder) => Promise<IMOSROAck>): void; sendCreateRunningOrder(ro: IMOSRunningOrder): Promise<IMOSROAck>; onReplaceRunningOrder(cb: (ro: IMOSRunningOrder) => Promise<IMOSROAck>): void; sendReplaceRunningOrder(ro: IMOSRunningOrder): Promise<IMOSROAck>; onDeleteRunningOrder(cb: (runningOrderId: IMOSString128) => Promise<IMOSROAck>): void; sendDeleteRunningOrder(runningOrderId: IMOSString128): Promise<IMOSROAck>; onRequestRunningOrder(cb: (runningOrderId: IMOSString128) => Promise<IMOSRunningOrder | null>): void; sendRequestRunningOrder(runningOrderId: IMOSString128): Promise<IMOSRunningOrder | null>; /** * @deprecated getRunningOrder is deprecated, use sendRequestRunningOrder instead */ getRunningOrder(runningOrderId: IMOSString128): Promise<IMOSRunningOrder | null>; onMetadataReplace(cb: (metadata: IMOSRunningOrderBase) => Promise<IMOSROAck>): void; sendMetadataReplace(metadata: IMOSRunningOrderBase): Promise<IMOSROAck>; onRunningOrderStatus(cb: (status: IMOSRunningOrderStatus) => Promise<IMOSROAck>): void; onStoryStatus(cb: (status: IMOSStoryStatus) => Promise<IMOSROAck>): void; onItemStatus(cb: (status: IMOSItemStatus) => Promise<IMOSROAck>): void; /** @deprecated setRunningOrderStatus is deprecated, use sendRunningOrderStatus instead */ setRunningOrderStatus(status: IMOSRunningOrderStatus): Promise<IMOSROAck>; /** @deprecated setStoryStatus is deprecated, use sendStoryStatus instead */ setStoryStatus(status: IMOSStoryStatus): Promise<IMOSROAck>; /** @deprecated setItemStatus is deprecated, use sendItemStatus instead */ setItemStatus(status: IMOSItemStatus): Promise<IMOSROAck>; sendRunningOrderStatus(status: IMOSRunningOrderStatus): Promise<IMOSROAck>; sendStoryStatus(status: IMOSStoryStatus): Promise<IMOSROAck>; sendItemStatus(status: IMOSItemStatus): Promise<IMOSROAck>; onReadyToAir(cb: (Action: IMOSROReadyToAir) => Promise<IMOSROAck>): void; sendReadyToAir(Action: IMOSROReadyToAir): Promise<IMOSROAck>; onROInsertStories(cb: (Action: IMOSStoryAction, Stories: Array<IMOSROStory>) => Promise<IMOSROAck>): void; sendROInsertStories(Action: IMOSStoryAction, Stories: Array<IMOSROStory>): Promise<IMOSROAck>; onROInsertItems(cb: (Action: IMOSItemAction, Items: Array<IMOSItem>) => Promise<IMOSROAck>): void; sendROInsertItems(Action: IMOSItemAction, Items: Array<IMOSItem>): Promise<IMOSROAck>; onROReplaceStories(cb: (Action: IMOSStoryAction, Stories: Array<IMOSROStory>) => Promise<IMOSROAck>): void; sendROReplaceStories(Action: IMOSStoryAction, Stories: Array<IMOSROStory>): Promise<IMOSROAck>; onROReplaceItems(cb: (Action: IMOSItemAction, Items: Array<IMOSItem>) => Promise<IMOSROAck>): void; sendROReplaceItems(Action: IMOSItemAction, Items: Array<IMOSItem>): Promise<IMOSROAck>; onROMoveStories(cb: (Action: IMOSStoryAction, Stories: Array<IMOSString128>) => Promise<IMOSROAck>): void; sendROMoveStories(Action: IMOSStoryAction, Stories: Array<IMOSString128>): Promise<IMOSROAck>; onROMoveItems(cb: (Action: IMOSItemAction, Items: Array<IMOSString128>) => Promise<IMOSROAck>): void; sendROMoveItems(Action: IMOSItemAction, Items: Array<IMOSString128>): Promise<IMOSROAck>; onRODeleteStories(cb: (Action: IMOSROAction, Stories: Array<IMOSString128>) => Promise<IMOSROAck>): void; sendRODeleteStories(Action: IMOSROAction, Stories: Array<IMOSString128>): Promise<IMOSROAck>; onRODeleteItems(cb: (Action: IMOSStoryAction, Items: Array<IMOSString128>) => Promise<IMOSROAck>): void; sendRODeleteItems(Action: IMOSStoryAction, Items: Array<IMOSString128>): Promise<IMOSROAck>; onROSwapStories(cb: (Action: IMOSROAction, StoryID0: IMOSString128, StoryID1: IMOSString128) => Promise<IMOSROAck>): void; sendROSwapStories(Action: IMOSROAction, StoryID0: IMOSString128, StoryID1: IMOSString128): Promise<IMOSROAck>; onROSwapItems(cb: (Action: IMOSStoryAction, ItemID0: IMOSString128, ItemID1: IMOSString128) => Promise<IMOSROAck>): void; sendROSwapItems(Action: IMOSStoryAction, ItemID0: IMOSString128, ItemID1: IMOSString128): Promise<IMOSROAck>; onObjectCreate(cb: (object: IMOSObject) => Promise<IMOSAck>): void; sendObjectCreate(object: IMOSObject): Promise<IMOSAck>; onItemReplace(cb: (roID: IMOSString128, storyID: IMOSString128, item: IMOSItem) => Promise<IMOSROAck>): void; sendItemReplace(options: MosItemReplaceOptions): Promise<IMOSROAck>; onRequestSearchableSchema(cb: (username: string) => Promise<IMOSListSearchableSchema>): void; sendRequestSearchableSchema(username: string): Promise<IMOSListSearchableSchema>; onRequestObjectList(cb: (objList: IMOSRequestObjectList) => Promise<IMOSObjectList>): void; sendRequestObjectList(reqObjList: IMOSRequestObjectList): Promise<IMOSObjectList>; onRequestObjectActionNew(cb: (obj: IMOSObject) => Promise<IMOSAck>): void; sendRequestObjectActionNew(obj: IMOSObject): Promise<IMOSAck>; onRequestObjectActionUpdate(cb: (objId: IMOSString128, obj: IMOSObject) => Promise<IMOSAck>): void; sendRequestObjectActionUpdate(objId: IMOSString128, obj: IMOSObject): Promise<IMOSAck>; onRequestObjectActionDelete(cb: (objId: IMOSString128) => Promise<IMOSAck>): void; sendRequestObjectActionDelete(objId: IMOSString128): Promise<IMOSAck>; /** @deprecated onMosObjCreate is deprecated, use onObjectCreate instead */ onMosObjCreate(cb: (object: IMOSObject) => Promise<IMOSAck>): void; /** @deprecated mosObjCreate is deprecated, use sendObjectCreate instead */ mosObjCreate(object: IMOSObject): Promise<IMOSAck>; /** @deprecated onMosItemReplace is deprecated, use onItemReplace instead */ onMosItemReplace(cb: (roID: IMOSString128, storyID: IMOSString128, item: IMOSItem) => Promise<IMOSROAck>): void; /** @deprecated mosItemReplace is deprecated, use sendItemReplace instead */ mosItemReplace(options: MosItemReplaceOptions): Promise<IMOSROAck>; /** @deprecated onMosReqSearchableSchema is deprecated, use onRequestSearchableSchema instead */ onMosReqSearchableSchema(cb: (username: string) => Promise<IMOSListSearchableSchema>): void; /** @deprecated mosRequestSearchableSchema is deprecated, use sendRequestSearchableSchema instead */ mosRequestSearchableSchema(username: string): Promise<IMOSListSearchableSchema>; /** @deprecated onMosReqObjectList is deprecated, use onRequestObjectList instead */ onMosReqObjectList(cb: (objList: IMOSRequestObjectList) => Promise<IMOSObjectList>): void; /** @deprecated mosRequestObjectList is deprecated, use sendRequestObjectList instead */ mosRequestObjectList(reqObjList: IMOSRequestObjectList): Promise<IMOSObjectList>; /** @deprecated onMosReqObjectAction is deprecated, use onRequestObjectAction*** instead */ onMosReqObjectAction(_cb: (action: string, obj: IMOSObject) => Promise<IMOSAck>): void; onRequestAllRunningOrders(cb: () => Promise<IMOSRunningOrder[]>): void; sendRequestAllRunningOrders(): Promise<Array<IMOSRunningOrderBase>>; onRunningOrderStory(cb: (story: IMOSROFullStory) => Promise<IMOSROAck>): void; sendRunningOrderStory(story: IMOSROFullStory): Promise<IMOSROAck>; /** @deprecated onROReqAll is deprecated, use onRequestAllRunningOrders instead */ onROReqAll(cb: () => Promise<IMOSRunningOrder[]>): void; /** @deprecated getAllRunningOrders is deprecated, use sendRequestAllRunningOrders instead */ getAllRunningOrders(): Promise<Array<IMOSRunningOrderBase>>; /** @deprecated onROStory is deprecated, use onRunningOrderStory instead */ onROStory(cb: (story: IMOSROFullStory) => Promise<IMOSROAck>): void; /** @deprecated sendROStory is deprecated, use sendRunningOrderStory instead */ sendROStory(story: IMOSROFullStory): Promise<IMOSROAck>; setDebug(debug: boolean): void; /** * Do a check if the profile is valid. Throws if not. * Optionally called after a mosDevice has been set up to ensure that all callbacks have been set up properly. */ checkProfileValidness(): void; /** Does a check if the specified profile is set, and throws otherwise */ private checkProfile; private executeCommand; private switchConnections; private switchConnectionsAndExecuteCommand; private _emitConnectionChange; private handleParseReply; private unknownReply; private badRoAckReply; /** throws if there is an error */ private _ensureReply; private _scheduleCheckProfileValidness; /** * Checks that all callbacks have been set up properly, according to which MOS-profile have been set in the options. * throws if something's wrong */ private _checkProfileValidness; private debugTrace; } export interface IProfiles { profile0: boolean; profile1: boolean; profile2: boolean; profile3: boolean; profile4: boolean; profile5: boolean; profile6: boolean; profile7: boolean; } //# sourceMappingURL=MosDevice.d.ts.map