From 7c9b809078b5cd53e3d54c0004c683da2ec679af Mon Sep 17 00:00:00 2001 From: Adelyn Breedlove Date: Mon, 11 Feb 2019 17:23:59 +0000 Subject: Add a cache --- lib/sharder.mli | 101 -------------------------------------------------------- 1 file changed, 101 deletions(-) delete mode 100644 lib/sharder.mli (limited to 'lib/sharder.mli') diff --git a/lib/sharder.mli b/lib/sharder.mli deleted file mode 100644 index 7c9c90d..0000000 --- a/lib/sharder.mli +++ /dev/null @@ -1,101 +0,0 @@ -(** Internal sharding manager. Most of this is accessed through {!Client}. *) - -open Core -open Async -open Websocket_async - -exception Invalid_Payload -exception Failure_to_Establish_Heartbeat - -type t - -(** Start the Sharder. This is called by {!Client.start}. *) -val start : - ?count:int -> - ?compress:bool -> - ?large_threshold:int -> - unit -> - t Deferred.t - -(** Module representing a single shard. *) -module Shard : sig - (** Representation of the state of a shard. *) - type shard = { - compress: bool; (** Whether to compress payloads. *) - id: int * int; (** A tuple as expected by Discord. First element is the current shard index, second element is the total shard count. *) - hb_interval: Time.Span.t Ivar.t; (** Time span between heartbeats, wrapped in an Ivar. *) - hb_stopper: unit Ivar.t; (** Stops the heartbeat sequencer when filled. *) - large_threshold: int; (** Minimum number of members needed for a guild to be considered large. *) - pipe: Frame.t Pipe.Reader.t * Frame.t Pipe.Writer.t; (** Raw frame IO pipe used for websocket communications. *) - ready: unit Ivar.t; (** A simple Ivar indicating if the shard has received READY. *) - seq: int; (** Current sequence number *) - session: string option; (** Session id, if one exists. *) - url: string; (** The websocket URL in use. *) - _internal: Reader.t * Writer.t; - } - - (** Wrapper around an internal state, used to wrap {!shard}. *) - type 'a t = { - mutable state: 'a; - mutable stopped: bool; - } - - (** Send a heartbeat to Discord. This is handled automatically. *) - val heartbeat : - shard -> - shard Deferred.t - - (** Set the status of the shard. *) - val set_status : - status:Yojson.Safe.t -> - shard -> - shard Deferred.t - - (** Request guild members for the shard's guild. Causes dispatch of multiple {{!Dispatch.members_chunk}member chunk} events. *) - val request_guild_members : - ?query:string -> - ?limit:int -> - guild:Snowflake.t -> - shard -> - shard Deferred.t - - (** Create a new shard *) - val create : - url:string -> - shards:int * int -> - ?compress:bool -> - ?large_threshold:int -> - unit -> - shard Deferred.t - - val shutdown : - ?clean:bool -> - ?restart:bool -> - shard t -> - unit Deferred.t -end - -(** Calls {!Shard.set_status} for each shard registered with the sharder. *) -val set_status : - status:Yojson.Safe.t -> - t -> - Shard.shard list Deferred.t - -(** Like {!set_status} but takes a function with a {{!Shard.shard}shard} as its parameter and {{!Yojson.Safe.t}json} for its return. *) -val set_status_with : - f:(Shard.shard -> Yojson.Safe.t) -> - t -> - Shard.shard list Deferred.t - -(** Calls {!Shard.request_guild_members} for each shard registered with the sharder. *) -val request_guild_members : - ?query:string -> - ?limit:int -> - guild:Snowflake.t -> - t -> - Shard.shard list Deferred.t - -val shutdown_all : - ?restart:bool -> - t -> - unit list Deferred.t -- cgit v1.2.3