hamok
Version:
Lightweight Distributed Object Storage on RAFT consensus algorithm
33 lines • 1.93 kB
TypeScript
import { RaftAppendEntriesRequestChunk, RaftAppendEntriesResponse } from './messagetypes/RaftAppendEntries';
import { RaftVoteRequest, RaftVoteResponse } from './messagetypes/RaftVote';
import { HamokMessage } from './HamokMessage';
import EventEmitter from 'events';
type Input = RaftVoteRequest | RaftVoteResponse | RaftAppendEntriesRequestChunk | RaftAppendEntriesResponse;
type EventMap = {
message: [message: HamokMessage];
RaftVoteRequest: [request: RaftVoteRequest];
RaftVoteResponse: [response: RaftVoteResponse];
RaftAppendEntriesRequestChunk: [request: RaftAppendEntriesRequestChunk];
RaftAppendEntriesResponse: [response: RaftAppendEntriesResponse];
};
export declare interface RaftMessageEmitter {
on<U extends keyof EventMap>(event: U, listener: (...args: EventMap[U]) => void): this;
once<U extends keyof EventMap>(event: U, listener: (...args: EventMap[U]) => void): this;
off<U extends keyof EventMap>(event: U, listener: (...args: EventMap[U]) => void): this;
emit<U extends keyof EventMap>(event: U, ...args: EventMap[U]): boolean;
}
export declare class RaftMessageEmitter extends EventEmitter {
constructor();
send(input: Input): void;
receive(message: HamokMessage): void;
encodeRaftVoteRequest(request: RaftVoteRequest): HamokMessage;
decodeRaftVoteRequest(message: HamokMessage): RaftVoteRequest;
encodeRaftVoteResponse(response: RaftVoteResponse): HamokMessage;
decodeRaftVoteResponse(message: HamokMessage): RaftVoteResponse;
encodeRaftAppendEntriesRequest(request: RaftAppendEntriesRequestChunk): HamokMessage;
decodeRaftAppendEntriesRequest(message: HamokMessage): RaftAppendEntriesRequestChunk;
encodeRaftAppendEntriesResponse(response: RaftAppendEntriesResponse): HamokMessage;
decodeRaftAppendEntriesResponse(message: HamokMessage): RaftAppendEntriesResponse;
}
export {};
//# sourceMappingURL=RaftMessageEmitter.d.ts.map