node-opcua-transport
Version:
pure nodejs OPCUA SDK - module transport
78 lines (76 loc) • 2.57 kB
TypeScript
/**
* @module node-opcua-transport
*/
import { EventEmitter } from "node:events";
import { BinaryStream } from "node-opcua-binary-stream";
import { SequenceHeader } from "node-opcua-chunkmanager";
import { type MessageHeader, type PacketInfo } from "node-opcua-packet-assembler";
import type { StatusCode } from "node-opcua-status-code";
export declare function readRawMessageHeader(data: Buffer): PacketInfo;
export interface MessageBuilderBaseOptions {
signatureLength?: number;
maxMessageSize?: number;
maxChunkCount?: number;
maxChunkSize?: number;
}
export interface MessageBuilderBaseEvents {
/**
* notify the observers that a new message is being built
* @event startChunk
*/
startChunk: [info: PacketInfo, data: Buffer];
/**
* notify the observers that new message chunk has been received
* @event chunk
*/
chunk: [chunk: Buffer];
/**
* notify the observers that an error has occurred
* @event error
*/
error: [err: Error, statusCode: StatusCode, requestId: number | null];
/**
* notify the observers that a full message has been received
* @event full_message_body
*/
full_message_body: [fullMessageBody: Buffer];
/**
* notify the observers that a request has been abandoned
* @event abandon
*/
abandon: [requestId: number];
}
/**
*
*/
export declare class MessageBuilderBase extends EventEmitter {
#private;
static defaultMaxChunkCount: number;
static defaultMaxMessageSize: number;
static defaultMaxChunkSize: number;
readonly signatureLength: number;
readonly maxMessageSize: number;
readonly maxChunkCount: number;
readonly maxChunkSize: number;
readonly options: MessageBuilderBaseOptions;
channelId: number;
totalMessageSize: number;
sequenceHeader: SequenceHeader | null;
_tick0: number;
_tick1: number;
protected id: string;
protected totalBodySize: number;
protected messageChunks: Buffer[];
protected messageHeader?: MessageHeader;
constructor(options?: MessageBuilderBaseOptions);
dispose(): void;
/**
* Feed message builder with some data
* @param data
*/
feed(data: Buffer): void;
protected _decodeMessageBody(_fullMessageBody: Buffer): boolean;
protected _read_headers(binaryStream: BinaryStream): boolean;
protected _report_abandon(_channelId: number, _tokenId: number, sequenceHeader: SequenceHeader): false;
protected _report_error(statusCode: StatusCode, errorMessage: string): false;
}