hamok
Version:
Lightweight Distributed Object Storage on RAFT consensus algorithm
57 lines (53 loc) • 1.39 kB
text/typescript
export class UpdateEntriesRequest<K, V> {
public constructor(
public readonly requestId: string,
public readonly entries: ReadonlyMap<K, V>,
public readonly sourceEndpointId?: string,
public readonly prevValue?: V,
) {
// empty
}
public createResponse(
updatedEntries: ReadonlyMap<K, V>
): UpdateEntriesResponse<K, V> {
return new UpdateEntriesResponse<K, V>(
this.requestId,
updatedEntries,
this.sourceEndpointId
);
}
}
export class UpdateEntriesResponse<K, V> {
public readonly requestId: string;
public readonly updatedEntries: ReadonlyMap<K, V>;
public readonly destinationEndpointId?: string;
public constructor(
requetId: string,
updatedEntries: ReadonlyMap<K, V>,
destinationEndpointId?: string
) {
this.requestId = requetId;
this.updatedEntries = updatedEntries;
this.destinationEndpointId = destinationEndpointId;
}
}
export class UpdateEntriesNotification<K, V> {
public constructor(
public readonly updatedEntries: ReadonlyMap<K, V>,
public readonly sourceEndpointId?: string,
public readonly destinationEndpointId?: string,
) {
// empty
}
}
export class EntryUpdatedNotification<K, V> {
public constructor(
public readonly key: K,
public readonly newValue: V,
public readonly oldValue: V,
public readonly sourceEndpointId?: string,
public readonly destinationEndpointId?: string,
) {
// empty
}
}