Document request-response flow (#63)

* documented request-response flow

* export result only

* header remove

* formatting
This commit is contained in:
Levi Neely 2024-08-25 23:30:28 +02:00 committed by GitHub
parent 3ca4253033
commit a80e82b7a8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 37 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

37
doc/request-response.org Normal file
View File

@ -0,0 +1,37 @@
#+title: pCloudCC Request-Response Flow
~pcloudcc~ is built upon a client-server
architecture. When the user runs ~pcloudcc -u <username>~, this starts
the server. The server listens for request messages and sends back
response messages.
When the user runs ~pcloudcc -k~, this starts the client's command
line interface. The client sends request messages to and expects a
corresponding response message from the server.
The client and server send and receive messages over a Unix socket
that gets created when the server is started.
#+begin_src plantuml :file img/request-response-00.png :export results
participant user
participant control_tools <<client>>
participant overlay_client <<client>>
participant socket <<net>>
participant poverlay <<server>>
user -> control_tools: input command
control_tools -> control_tools : parse command
control_tools -> overlay_client : SendCall(msgType, reqData, ...)
overlay_client -> socket : write_request
socket -> poverlay : request
poverlay -> poverlay : poverlay_handle_request
poverlay -> poverlay : poverlay_get_response
poverlay -> poverlay : serialize_response_message
poverlay -> socket : response (serialized)
socket -> overlay_client : read_response
overlay_client -> control_tools : (msg, msgsz, payload, payloadsz)
control_tools -> user : print results
#+end_src
[[file:img/request-response-00.png]]