Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | 736x 736x 736x 736x 736x 736x 736x 10419384x 8844888x 1574496x 193087x | import type { Binary, Long, Timestamp } from '../bson'; import type { ClientSession } from '../sessions'; import type { Topology } from './topology'; // shared state names export const STATE_CLOSING = 'closing'; export const STATE_CLOSED = 'closed'; export const STATE_CONNECTING = 'connecting'; export const STATE_CONNECTED = 'connected'; /** * An enumeration of topology types we know about * @public */ export const TopologyType = Object.freeze({ Single: 'Single', ReplicaSetNoPrimary: 'ReplicaSetNoPrimary', ReplicaSetWithPrimary: 'ReplicaSetWithPrimary', Sharded: 'Sharded', Unknown: 'Unknown', LoadBalanced: 'LoadBalanced' } as const); /** @public */ export type TopologyType = (typeof TopologyType)[keyof typeof TopologyType]; /** * An enumeration of server types we know about * @public */ export const ServerType = Object.freeze({ Standalone: 'Standalone', Mongos: 'Mongos', PossiblePrimary: 'PossiblePrimary', RSPrimary: 'RSPrimary', RSSecondary: 'RSSecondary', RSArbiter: 'RSArbiter', RSOther: 'RSOther', RSGhost: 'RSGhost', Unknown: 'Unknown', LoadBalancer: 'LoadBalancer' } as const); /** @public */ export type ServerType = (typeof ServerType)[keyof typeof ServerType]; /** * @public * Gossiped in component for the cluster time tracking the state of user databases * across the cluster. It may optionally include a signature identifying the process that * generated such a value. */ export interface ClusterTime { clusterTime: Timestamp; /** Used to validate the identity of a request or response's ClusterTime. */ signature?: { hash: Binary; keyId: Long; }; } /** Shared function to determine clusterTime for a given topology or session */ export function _advanceClusterTime( entity: Topology | ClientSession, $clusterTime: ClusterTime ): void { if (entity.clusterTime == null) { entity.clusterTime = $clusterTime; } else { if ($clusterTime.clusterTime.greaterThan(entity.clusterTime.clusterTime)) { entity.clusterTime = $clusterTime; } } } |