Skip to content

Instantly share code, notes, and snippets.

@zankard
Last active October 16, 2016 11:08
Show Gist options
  • Save zankard/1d99c85f1e54f62ea6f3e56d751dd598 to your computer and use it in GitHub Desktop.
Save zankard/1d99c85f1e54f62ea6f3e56d751dd598 to your computer and use it in GitHub Desktop.
ASIO
@startdot
digraph foo {
program [shape=box, label="Your Program"]
io_object [shape=box, label="IO Object"]
io_service [shape=box, label="IO Service"]
system [shape=ellipse, label="Operating System"]
program -> io_object [label="1"]
io_object -> program [label="6"]
io_object -> io_service [label="2"]
io_service -> io_object [label="5"]
io_service -> system [label="3"]
system -> io_service [label="4"]
overlap=false
}
@enddot
@startuml
abstract class Reactor {
handle_events()
register_event()
unregister_event()
}
interface EventHandler {
handler_event()
get_handle()
}
abstract class SynchronousEventDemultiplexer {
select()
}
abstract class Handle
Reactor o-- "*" EventHandler : dispatches
Reactor ..> SynchronousEventDemultiplexer : <<use>>
EventHandler *-- Handle : owns
Handle "*" ..> SynchronousEventDemultiplexer : notifies
Reactor o-- "*" Handle : "handle set"
@enduml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment