aboutsummaryrefslogtreecommitdiff
path: root/lib/dispatch.ml
diff options
context:
space:
mode:
authorMishio595 <[email protected]>2018-11-25 20:30:11 -0700
committerMishio595 <[email protected]>2018-11-25 20:30:11 -0700
commitffd7237f62ff8b286a05c9256ab90c92770241a9 (patch)
tree98aeaec02dfa0d291d69ff981f9ae17e46ba5b55 /lib/dispatch.ml
parentconvert to client from client_ez (diff)
downloaddisml-ffd7237f62ff8b286a05c9256ab90c92770241a9.tar.xz
disml-ffd7237f62ff8b286a05c9256ab90c92770241a9.zip
More models, some dispatch rework starting
Diffstat (limited to 'lib/dispatch.ml')
-rw-r--r--lib/dispatch.ml116
1 files changed, 116 insertions, 0 deletions
diff --git a/lib/dispatch.ml b/lib/dispatch.ml
new file mode 100644
index 0000000..c6d717b
--- /dev/null
+++ b/lib/dispatch.ml
@@ -0,0 +1,116 @@
+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