@foxglove/ros1
Version:
Standalone TypeScript implementation of the ROS 1 (Robot Operating System) protocol with a pluggable transport layer
38 lines • 1.37 kB
TypeScript
import { EventEmitter } from "eventemitter3";
import { Client } from "./Client";
import { LoggerService } from "./LoggerService";
import { Publication } from "./Publication";
import { Publisher } from "./Publisher";
import { PublicationLookup } from "./TcpClient";
import type { TcpAddress, TcpServer } from "./TcpTypes";
type TcpPublisherOpts = {
server: TcpServer;
nodeName: string;
getConnectionId: () => number;
getPublication: PublicationLookup;
log?: LoggerService;
};
interface TcpPublisherEvents {
connection: (topic: string, connectionId: number, destinationCallerId: string, client: Client) => void;
error: (err: Error) => void;
}
export declare class TcpPublisher extends EventEmitter<TcpPublisherEvents> implements Publisher {
private _server;
private _nodeName;
private _getConnectionId;
private _getPublication;
private _pendingClients;
private _shutdown;
private _log?;
constructor({ server, nodeName, getConnectionId, getPublication, log }: TcpPublisherOpts);
address(): Promise<TcpAddress | undefined>;
publish(publication: Publication, message: unknown): Promise<void>;
transportType(): string;
listening(): boolean;
close(): void;
private _handleConnection;
private _handleClose;
private _handleError;
}
export {};
//# sourceMappingURL=TcpPublisher.d.ts.map