diff options
| author | Mishio595 <[email protected]> | 2018-11-29 06:16:23 -0700 |
|---|---|---|
| committer | Mishio595 <[email protected]> | 2018-11-29 06:16:23 -0700 |
| commit | 77f522a5f3fd74749e7a2cd4c849e520f2b6ba89 (patch) | |
| tree | d9bb7e7be811ba84c4c527fcd11054ab475ee54b /lib/dispatch.ml | |
| parent | More models, some dispatch rework starting (diff) | |
| download | disml-77f522a5f3fd74749e7a2cd4c849e520f2b6ba89.tar.xz disml-77f522a5f3fd74749e7a2cd4c849e520f2b6ba89.zip | |
Some sharding work, reconnect is mostly working
Diffstat (limited to 'lib/dispatch.ml')
| -rw-r--r-- | lib/dispatch.ml | 152 |
1 files changed, 37 insertions, 115 deletions
diff --git a/lib/dispatch.ml b/lib/dispatch.ml index c6d717b..43ffe1f 100644 --- a/lib/dispatch.ml +++ b/lib/dispatch.ml @@ -1,116 +1,38 @@ -open Async +(* open Async *) -type t = { - hello: Yojson.Basic.json Pipe.Reader.t * Yojson.Basic.json Pipe.Writer.t; - ready: Yojson.Basic.json Pipe.Reader.t * Yojson.Basic.json Pipe.Writer.t; - resumed: Yojson.Basic.json Pipe.Reader.t * Yojson.Basic.json Pipe.Writer.t; - invalid_session: Yojson.Basic.json Pipe.Reader.t * Yojson.Basic.json Pipe.Writer.t; - channel_create: Channel.t Pipe.Reader.t * Channel.t Pipe.Writer.t; - channel_update: Channel.t Pipe.Reader.t * Channel.t Pipe.Writer.t; - channel_delete: Channel.t Pipe.Reader.t * Channel.t Pipe.Writer.t; - channel_pins_update: Yojson.Basic.json Pipe.Reader.t * Yojson.Basic.json Pipe.Writer.t; - guild_create: Guild.t Pipe.Reader.t * Guild.t Pipe.Writer.t; - guild_update: Guild.t Pipe.Reader.t * Guild.t Pipe.Writer.t; - guild_delete: Guild.t Pipe.Reader.t * Guild.t Pipe.Writer.t; - guild_ban_add: Ban.t Pipe.Reader.t * Ban.t Pipe.Writer.t; - guild_ban_remove: Ban.t Pipe.Reader.t * Ban.t Pipe.Writer.t; - guild_emojis_update: Yojson.Basic.json Pipe.Reader.t * Yojson.Basic.json Pipe.Writer.t; - guild_integrations_update: Yojson.Basic.json Pipe.Reader.t * Yojson.Basic.json Pipe.Writer.t; - guild_member_add: Member.t Pipe.Reader.t * Member.t Pipe.Writer.t; - guild_member_remove: Member.t Pipe.Reader.t * Member.t Pipe.Writer.t; - guild_member_update: Member.t Pipe.Reader.t * Member.t Pipe.Writer.t; - guild_members_chunk: (Member.t list) Pipe.Reader.t * (Member.t list) Pipe.Writer.t; - guild_role_create: (Role.t * Guild.t) Pipe.Reader.t * (Role.t * Guild.t) Pipe.Writer.t; - guild_role_update: (Role.t * Guild.t) Pipe.Reader.t * (Role.t * Guild.t) Pipe.Writer.t; - guild_role_delete: (Role.t * Guild.t) Pipe.Reader.t * (Role.t * Guild.t) Pipe.Writer.t; - message_create: Message.t Pipe.Reader.t * Message.t Pipe.Writer.t; - message_update: Message.t Pipe.Reader.t * Message.t Pipe.Writer.t; - message_delete: Message.t Pipe.Reader.t * Message.t Pipe.Writer.t; - message_bulk_delete: (Message.t list) Pipe.Reader.t * (Message.t list) Pipe.Writer.t; - message_reaction_add: (Message.t * Reaction.t) Pipe.Reader.t * (Message.t * Reaction.t) Pipe.Writer.t; - message_reaction_remove: (Message.t * Reaction.t) Pipe.Reader.t * (Message.t * Reaction.t) Pipe.Writer.t; - message_reaction_remove_all: (Message.t * Reaction.t) Pipe.Reader.t * (Message.t * Reaction.t) Pipe.Writer.t; - presence_update: Presence.t Pipe.Reader.t * Presence.t Pipe.Writer.t; - typing_start: Yojson.Basic.json Pipe.Reader.t * Yojson.Basic.json Pipe.Writer.t; - user_update: Yojson.Basic.json Pipe.Reader.t * Yojson.Basic.json Pipe.Writer.t; - voice_state_update: Yojson.Basic.json Pipe.Reader.t * Yojson.Basic.json Pipe.Writer.t; - voice_server_update: Yojson.Basic.json Pipe.Reader.t * Yojson.Basic.json Pipe.Writer.t; - webhooks_update: Yojson.Basic.json Pipe.Reader.t * Yojson.Basic.json Pipe.Writer.t; -} - -let dispatcher = - { - hello = Pipe.create (); - ready = Pipe.create (); - resumed = Pipe.create (); - invalid_session = Pipe.create (); - channel_create = Pipe.create (); - channel_update = Pipe.create (); - channel_delete = Pipe.create (); - channel_pins_update = Pipe.create (); - guild_create = Pipe.create (); - guild_update = Pipe.create (); - guild_delete = Pipe.create (); - guild_ban_add = Pipe.create (); - guild_ban_remove = Pipe.create (); - guild_emojis_update = Pipe.create (); - guild_integrations_update = Pipe.create (); - guild_member_add = Pipe.create (); - guild_member_remove = Pipe.create (); - guild_member_update = Pipe.create (); - guild_members_chunk = Pipe.create (); - guild_role_create = Pipe.create (); - guild_role_update = Pipe.create (); - guild_role_delete = Pipe.create (); - message_create = Pipe.create (); - message_update = Pipe.create (); - message_delete = Pipe.create (); - message_bulk_delete = Pipe.create (); - message_reaction_add = Pipe.create (); - message_reaction_remove = Pipe.create (); - message_reaction_remove_all = Pipe.create (); - presence_update = Pipe.create (); - typing_start = Pipe.create (); - user_update = Pipe.create (); - voice_state_update = Pipe.create (); - voice_server_update = Pipe.create (); - webhooks_update = Pipe.create (); - } - -(* let write (ev:Event.t) = - let (read, _) = match ev with - | HELLO -> dispatcher.hello - | READY -> dispatcher.ready - | RESUMED -> dispatcher.resumed - | INVALID_SESSION -> dispatcher.invalid_session - | CHANNEL_CREATE -> dispatcher.channel_create - | CHANNEL_UPDATE -> dispatcher.channel_update - | CHANNEL_DELETE -> dispatcher.channel_delete - | CHANNEL_PINS_UPDATE -> dispatcher.channel_pins_update - | GUILD_CREATE -> dispatcher.guild_create - | GUILD_UPDATE -> dispatcher.guild_update - | GUILD_DELETE -> dispatcher.guild_delete - | GUILD_BAN_ADD -> dispatcher.guild_ban_add - | GUILD_BAN_REMOVE -> dispatcher.guild_ban_remove - | GUILD_EMOJIS_UPDATE -> dispatcher.guild_emojis_update - | GUILD_INTEGRATIONS_UPDATE -> dispatcher.guild_integrations_update - | GUILD_MEMBER_ADD -> dispatcher.guild_member_ad - | GUILD_MEMBER_REMOVE -> dispatcher.guild_member_remove - | GUILD_MEMBER_UPDATE -> dispatcher.guild_member_update - | GUILD_MEMBERS_CHUNK -> dispatcher.guild_members_chunk - | GUILD_ROLE_CREATE -> dispatcher.guild_role_create - | GUILD_ROLE_UPDATE -> dispatcher.guild_role_updatE - | GUILD_ROLE_DELETE -> dispatcher.guild_role_delete - | MESSAGE_CREATE -> dispatcher.message_create - | MESSAGE_UPDATE -> dispatcher.message_update - | MESSAGE_DELETE -> dispatcher.message_delete - | MESSAGE_BULK_DELETE -> dispatcher.message_bulk_delete - | MESSAGE_REACTION_ADD -> dispatcher.message_reaction_add - | MESSAGE_REACTION_REMOVE -> dispatcher.message_reaction_remove - | MESSAGE_REACTION_REMOVE_ALL -> dispatcher.message_reaction_remove_all - | PRESENCE_UPDATE -> dispatcher.presence_update - | TYPING_START -> dispatcher.typing_start - | USER_UPDATE -> dispatcher.user_update - | VOICE_STATE_UPDATE -> dispatcher.voice_state_update - | VOICE_SERVER_UPDATE -> dispatcher.voice_server_update - | WEBHOOKS_UPDATE -> dispatcher.webhooks_update *)
\ No newline at end of file +type dispatch_event = +| HELLO of Yojson.Basic.json +| READY of Yojson.Basic.json +| RESUMED of Yojson.Basic.json +| INVALID_SESSION of Yojson.Basic.json +| CHANNEL_CREATE of Channel.t +| CHANNEL_UPDATE of Channel.t +| CHANNEL_DELETE of Channel.t +| CHANNEL_PINS_UPDATE of Yojson.Basic.json +| GUILD_CREATE of Guild.t +| GUILD_UPDATE of Guild.t +| GUILD_DELETE of Guild.t +| GUILD_BAN_ADD of Ban.t +| GUILD_BAN_REMOVE of Ban.t +| GUILD_EMOJIS_UPDATE of Yojson.Basic.json +| GUILD_INTEGRATIONS_UPDATE of Yojson.Basic.json +| GUILD_MEMBER_ADD of Member.t +| GUILD_MEMBER_REMOVE of Member.t +| GUILD_MEMBER_UPDATE of Member.t +| GUILD_MEMBERS_CHUNK of Member.t list +| GUILD_ROLE_CREATE of Role.t * Guild.t +| GUILD_ROLE_UPDATE of Role.t * Guild.t +| GUILD_ROLE_DELETE of Role.t * Guild.t +| MESSAGE_CREATE of Message.t +| MESSAGE_UPDATE of Message.t +| MESSAGE_DELETE of Message.t +| MESSAGE_BULK_DELETE of Message.t list +| MESSAGE_REACTION_ADD of Message.t * Reaction.t +| MESSAGE_REACTION_REMOVE of Message.t * Reaction.t +| MESSAGE_REACTION_REMOVE_ALL of Message.t * Reaction.t list +| PRESENCE_UPDATE of Presence.t +| TYPING_START of Yojson.Basic.json +| USER_UPDATE of Yojson.Basic.json +| VOICE_STATE_UPDATE of Yojson.Basic.json +| VOICE_SERVER_UPDATE of Yojson.Basic.json +| WEBHOOKS_UPDATE of Yojson.Basic.json |