lavva.exalushome
Version:
Library implementing communication and abstraction layers for ExalusHome system
65 lines (64 loc) • 3.14 kB
TypeScript
import { IDataFrame } from "../DataFrame";
import { ConnectionResult, IExalusConnectionService, AuthorizationInfo, ConnectionState, StreamHandler } from "./IExalusConnectionService";
import { ITypedEvent } from "../TypedEvent";
export declare class ExalusConnectionService implements IExalusConnectionService {
private _logPackets;
private _pingInterval;
private _connection?;
private _disconnectedOnPurpose;
private _defaultPacketsBrokerAddress?;
private _serversBrokerAddress?;
private _serversBrokerAddressList;
private _allBrokersChecked;
private _address?;
private _serialId?;
private _PIN?;
private _isEstabilished;
private readonly _timeout;
private _dataReceivedEvent;
private _pongReceivedEvent;
private _authorizationReceivedEvent;
private _registrationReceivedEvent;
private _streamStartedEvent;
private _connectionStateChangedEvent;
private _errorOccuredEvent;
private _log;
private _controllerConfiguration;
private _cache;
private _session;
static readonly ServiceName: string;
private _packetsBrokerServers;
private _lastReceivedPacketTime;
private _connectedAtLeastOnce;
private _pingIntervalId;
SubscribeTo<T>(resourceId: string, handler: {
(data: IDataFrame<T>): void;
}): () => void;
GetControllerSerialNumber(): string | undefined;
GetControllerPin(): string | undefined;
GetServiceName(): string;
EnablePacketsLogging(): void;
DisablePacketsLogging(): void;
private InitializeConnection;
GetAuthorizationInfo(): AuthorizationInfo | null;
SetServersBrokerAddress(address: string): void;
SetDefaultPacketsBrokerAddress(address: string): void;
GetServerAddressAsync(): Promise<string | null>;
ConnectAsync(address: string): Promise<ConnectionResult>;
AuthorizeAsync(authorizationInfo: AuthorizationInfo): Promise<boolean>;
ConnectAndAuthorizeAsync(authorizationInfo: AuthorizationInfo): Promise<ConnectionResult>;
private swapBrokersAsync;
private connectAsync;
FireConnectionStateChanged(): ConnectionResult;
DisconnectAsync(): Promise<void>;
IsConnected(): boolean;
SendAndWaitForResponseAsync<T>(dataFrame: IDataFrame<any>, timeout: number, useCache: boolean, logTransmission?: boolean): Promise<IDataFrame<T>>;
SendAndWaitForResponseWithRepeatAsync<T>(dataFrame: IDataFrame<any>, timeout: number, useCache: boolean, repeat?: boolean, logTransmission?: boolean): Promise<IDataFrame<T>>;
SendAndHandleResponseAsync<T>(dataFrame: IDataFrame<any>, timeout: number, dataHandler: (result: IDataFrame<T>) => void, logTransmission?: boolean): Promise<void>;
SendAndHandleStreamAsync<T>(dataFrame: IDataFrame<any>, streamHandler: StreamHandler<T>, logTransmission?: boolean): Promise<void>;
PingControllerAsync(): Promise<boolean>;
SendAsync(dataFrame: IDataFrame<any>, logTransmission?: boolean): Promise<boolean>;
OnDataReceivedEvent(): ITypedEvent<any>;
OnConnectionStateChangedEvent(): ITypedEvent<ConnectionState>;
OnErrorOccuredEvent(): ITypedEvent<[sender: string, data: string]>;
}