From 941c30484d0b411deeb4a87bfcaf08055365253d Mon Sep 17 00:00:00 2001 From: Michal Kaminski <32871390+michal-b-kaminski@users.noreply.github.com> Date: Tue, 5 Feb 2019 22:15:57 +0100 Subject: [PATCH] Rewritten policies.loadBalancing namespace to use classes So it allows writing own policies by extending LoadBalancingPolicy --- types/cassandra-driver/index.d.ts | 38 ++++++++++--------------------- 1 file changed, 12 insertions(+), 26 deletions(-) diff --git a/types/cassandra-driver/index.d.ts b/types/cassandra-driver/index.d.ts index 81941afde0..70da1c9ce5 100644 --- a/types/cassandra-driver/index.d.ts +++ b/types/cassandra-driver/index.d.ts @@ -34,43 +34,29 @@ export namespace policies { } namespace loadBalancing { - let DCAwareRoundRobinPolicy: DCAwareRoundRobinPolicyStatic; - let RoundRobinPolicy: RoundRobinPolicyStatic; - let TokenAwarePolicy: TokenAwarePolicyStatic; - let WhiteListPolicy: WhiteListPolicyStatic; - - interface LoadBalancingPolicy { + class LoadBalancingPolicy { init(client: Client, hosts: HostMap, callback: Callback): void; getDistance(host: Host): types.distance; newQueryPlan(keyspace: string, queryOptions: ExecutionOptions | null, callback: Callback): void; + getOptions(): Map; } - interface DCAwareRoundRobinPolicyStatic { - new (localDc?: string): DCAwareRoundRobinPolicy; - } - - interface DCAwareRoundRobinPolicy extends LoadBalancingPolicy { + class DCAwareRoundRobinPolicy extends LoadBalancingPolicy { + localDc: string; localHostsArray: Host[]; - remoteHostsArray: Host[]; + + constructor(localDc?: string); } - interface RoundRobinPolicyStatic { - new (): RoundRobinPolicy; + class RoundRobinPolicy extends LoadBalancingPolicy {} + + class TokenAwarePolicy extends LoadBalancingPolicy { + constructor(childPolicy: LoadBalancingPolicy); } - interface RoundRobinPolicy extends LoadBalancingPolicy { } - - interface TokenAwarePolicyStatic { - new (childPolicy: LoadBalancingPolicy): TokenAwarePolicy; + class WhiteListPolicy extends LoadBalancingPolicy { + constructor(childPolicy: LoadBalancingPolicy, whiteList: string[]); } - - interface TokenAwarePolicy extends LoadBalancingPolicy { } - - interface WhiteListPolicyStatic { - new (childPolicy: LoadBalancingPolicy, whiteList: string[]): WhiteListPolicy; - } - - interface WhiteListPolicy extends LoadBalancingPolicy { } } namespace reconnection {