Commit 63b00688 authored by Scott Vokes's avatar Scott Vokes
Browse files

Add message handling sequence diagrams; remove docs/ folder from .gitignore.

(The diagrams were generated with the REST API for
https://www.websequencediagrams.com/ .)
parent e97cb994
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -29,7 +29,6 @@
bin/
obj/
build/
docs/

# Eclipse temp files
.metadata/
+53.5 KiB
Loading image diff...
+39 −0
Original line number Diff line number Diff line
title Kinetic C message handling (w/ no errors)

parallel {
    Client -> Sender: client enqueues request
    note left of Client: client is blocked
}

Sender -> Listener: hold responses for <FD, SEQ_ID>
activate Sender
activate Listener

Sender -> Drive: send request
activate Drive

Sender -> Client: notify Client

parallel {
    Client -> Client: backpressure

    Sender -> Listener: expect response for <FD, SEQ_ID>
    deactivate Sender
}

parallel {
    note left of Client: client is unblocked

    Drive -> Listener: response
    deactivate Drive
}

Listener -> Listener: unpack response

deactivate Listener

Listener -> Threadpool: Transfer callback with result code
activate Threadpool

Threadpool -->> Client: callback(status)
deactivate Threadpool
+54.6 KiB
Loading image diff...
+36 −0
Original line number Diff line number Diff line
title Kinetic C message handling (w/ response time-out)

parallel {
    Client -> Sender: client enqueues request
    note left of Client: client is blocked
}

Sender -> Listener: hold responses for <FD, SEQ_ID>
activate Sender
activate Listener

Sender -> Drive: send request
activate Drive

Sender -> Client: notify Client

parallel {
    Client -> Client: backpressure

    Sender -> Listener: expect response for <FD, SEQ_ID>
    deactivate Sender
}

parallel {
    note left of Client: client is unblocked
    Listener -> Listener: wait
}

note right of Listener: TIME OUT
deactivate Listener

Listener -> Threadpool: Transfer callback with receive timeout
activate Threadpool

Threadpool -->> Client: callback(receive timeout)
deactivate Threadpool
Loading