@mos-connection/connector
Version:
MOS compliant TCP/IP Socket connection.
236 lines • 14.5 kB
TypeScript
/// <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