From 5a1aae149fafa2848c2cd89a3c75992653380201 Mon Sep 17 00:00:00 2001 From: Mishio595 Date: Mon, 29 Oct 2018 06:25:22 -0600 Subject: Moving to LWT branch --- lib/client/sharder/shardManager.ml | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 lib/client/sharder/shardManager.ml (limited to 'lib/client/sharder/shardManager.ml') diff --git a/lib/client/sharder/shardManager.ml b/lib/client/sharder/shardManager.ml new file mode 100644 index 0000000..c5919f3 --- /dev/null +++ b/lib/client/sharder/shardManager.ml @@ -0,0 +1,32 @@ +open Lwt.Infix + +module ShardSet = Set.Make(struct + type t = Shard.t + let compare (s1:t) (s2:t) = Pervasives.compare s1.id s2.id +end) + +type t = { + shards: ShardSet.t; + gateway_url: Uri.t; + token: string; +} + +let create_shard ?(options=[]) manager = + let id = (ShardSet.cardinal manager.shards) + 1 in + Shard.connect ~_options:options ~uri:manager.gateway_url ~id ~total:(ShardSet.cardinal manager.shards) ~token:manager.token () + >|= fun shard -> + ShardSet.add shard manager.shards + +let update_shard manager shard = + match ShardSet.mem shard manager.shards with + | true -> ShardSet.add shard manager.shards + | false -> manager.shards + +let heartbeat _manager shard = + Shard.heartbeat shard + +let identify _manager shard = + Shard.identify shard + +let resume _manager shard = + Shard.resume shard \ No newline at end of file -- cgit v1.2.3