diff options
| author | Mishio595 <[email protected]> | 2018-11-25 20:30:11 -0700 |
|---|---|---|
| committer | Mishio595 <[email protected]> | 2018-11-25 20:30:11 -0700 |
| commit | ffd7237f62ff8b286a05c9256ab90c92770241a9 (patch) | |
| tree | 98aeaec02dfa0d291d69ff981f9ae17e46ba5b55 /lib/dispatch.ml | |
| parent | convert to client from client_ez (diff) | |
| download | disml-ffd7237f62ff8b286a05c9256ab90c92770241a9.tar.xz disml-ffd7237f62ff8b286a05c9256ab90c92770241a9.zip | |
More models, some dispatch rework starting
Diffstat (limited to 'lib/dispatch.ml')
| -rw-r--r-- | lib/dispatch.ml | 116 |
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 |