doc: revert arrows chars in relay protocol

master
Sébastien Helleu 2020-04-14 22:16:48 +02:00
parent 9fa3609c85
commit 0c7d7c3fdc
3 changed files with 105 additions and 105 deletions

View File

@ -32,11 +32,11 @@ The _clients_ are connected to _relay_ like shown in this diagram:
....
┌──────────┐ Workstation
┌────────┐ ┌───┤ client 1 │ (Linux, Windows,
│ irc │──┐ ╔═══════════╤═══════╗ │ └──────────┘ BSD, macOS ...)
└────────┘ └──╢ │ ║───┘ ┌──────────┐
...... ║ WeeChat │ Relay ║───────┤ client 2 │ Mobile device
┌────────┐ ┌──╢ │ ║───┐ └──────────┘ (Android, iPhone ...)
│ jabber │──┘ ╚═══════════╧═══════╝ │ ......
│ irc │──┐ ╔═══════════╤═══════╗ │ └──────────┘ BSD, macOS ...)
└────────┘ └──╢ │ ║───┘ ┌──────────┐
...... ║ WeeChat │ Relay ║───────┤ client 2 │ Mobile device
┌────────┐ ┌──╢ │ ║───┐ └──────────┘ (Android, iPhone ...)
│ jabber │──┘ ╚═══════════╧═══════╝ │ ......
└────────┘ │ ┌──────────┐
...... └───┤ client N │ Other devices
└──────────┘
@ -1510,7 +1510,7 @@ Example:
....
┌────┐
│ 41 │ ──── 65 (0x41: "A")
│ 41 │ ──── 65 (0x41: "A")
└────┘
....
@ -1526,11 +1526,11 @@ Examples:
....
┌────┬────┬────┬────┐
│ 00 │ 01 │ E2 │ 40 │ ──── 123456
│ 00 │ 01 │ E2 │ 40 │ ──── 123456
└────┴────┴────┴────┘
┌────┬────┬────┬────┐
│ FF │ FE │ 1D │ C0 │ ──── -123456
│ FF │ FE │ 1D │ C0 │ ──── -123456
└────┴────┴────┴────┘
....
@ -1545,13 +1545,13 @@ Examples:
....
┌────╥────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
│ 0A ║ 31 │ 32 │ 33 │ 34 │ 35 │ 36 │ 37 │ 38 │ 39 │ 30 │ ──── 1234567890
│ 0A ║ 31 │ 32 │ 33 │ 34 │ 35 │ 36 │ 37 │ 38 │ 39 │ 30 │ ──── 1234567890
└────╨────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘
└──┘ └───────────────────────────────────────────────┘
length '1' '2' '3' '4' '5' '6' '7' '8' '9' '0'
┌────╥────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
│ 0B ║ 2D │ 31 │ 32 │ 33 │ 34 │ 35 │ 36 │ 37 │ 38 │ 39 │ 30 │ ──── -1234567890
│ 0B ║ 2D │ 31 │ 32 │ 33 │ 34 │ 35 │ 36 │ 37 │ 38 │ 39 │ 30 │ ──── -1234567890
└────╨────┴────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘
└──┘ └────────────────────────────────────────────────────┘
length '-' '1' '2' '3' '4' '5' '6' '7' '8' '9' '0'
@ -1566,7 +1566,7 @@ Example:
....
┌────┬────┬────┬────╥────┬────┬────┬────┬────┐
│ 00 │ 00 │ 00 │ 05 ║ 68 │ 65 │ 6C │ 6C │ 6F │ ──── "hello"
│ 00 │ 00 │ 00 │ 05 ║ 68 │ 65 │ 6C │ 6C │ 6F │ ──── "hello"
└────┴────┴────┴────╨────┴────┴────┴────┴────┘
└─────────────────┘ └──────────────────────┘
length 'h' 'e' 'l' 'l' 'o'
@ -1576,7 +1576,7 @@ An empty string has a length of zero:
....
┌────┬────┬────┬────┐
│ 00 │ 00 │ 00 │ 00 │ ──── ""
│ 00 │ 00 │ 00 │ 00 │ ──── ""
└────┴────┴────┴────┘
└─────────────────┘
length
@ -1586,7 +1586,7 @@ A _NULL_ string (NULL pointer in C) has a length of -1:
....
┌────┬────┬────┬────┐
│ FF │ FF │ FF │ FF │ ──── NULL
│ FF │ FF │ FF │ FF │ ──── NULL
└────┴────┴────┴────┘
└─────────────────┘
length
@ -1606,7 +1606,7 @@ Example:
....
┌────╥────┬────┬────┬────┬────┬────┬────┬────┬────┐
│ 09 ║ 31 │ 61 │ 32 │ 62 │ 33 │ 63 │ 34 │ 64 │ 35 │ ──── 0x1a2b3c4d5
│ 09 ║ 31 │ 61 │ 32 │ 62 │ 33 │ 63 │ 34 │ 64 │ 35 │ ──── 0x1a2b3c4d5
└────╨────┴────┴────┴────┴────┴────┴────┴────┴────┘
└──┘ └──────────────────────────────────────────┘
length '1' 'a' '2' 'b' '3' 'c' '4' 'd' '5'
@ -1616,7 +1616,7 @@ A _NULL_ pointer has a length of 1 with value 0:
....
┌────╥────┐
│ 01 ║ 00 │ ──── NULL (0x0)
│ 01 ║ 00 │ ──── NULL (0x0)
└────╨────┘
└──┘ └──┘
length 0
@ -1631,7 +1631,7 @@ Example:
....
┌────╥────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
│ 0A ║ 31 │ 33 │ 32 │ 31 │ 39 │ 39 │ 33 │ 34 │ 35 │ 36 │ ──── 1321993456
│ 0A ║ 31 │ 33 │ 32 │ 31 │ 39 │ 39 │ 33 │ 34 │ 35 │ 36 │ ──── 1321993456
└────╨────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘
└──┘ └───────────────────────────────────────────────┘
length '1' '3' '2' '1' '9' '9' '3' '4' '5' '6'
@ -1653,7 +1653,7 @@ Example:
....
┌─────┬─────┬───╥──────┬─────╥──────┬─────┐
│ str │ str │ 2 ║ key1 │ abc ║ key2 │ def │ ──── { 'key1' => 'abc',
│ str │ str │ 2 ║ key1 │ abc ║ key2 │ def │ ──── { 'key1' => 'abc',
└─────┴─────┴───╨──────┴─────╨──────┴─────┘ 'key2' => 'def' }
└───┘ └───┘ └─┘ └──────────┘ └──────────┘
type type count item 1 item 2
@ -1880,7 +1880,7 @@ Example of array with two strings:
type number of strings length
──╥────┬────┬────╥────┬────┬────┬────╥────┬────┐
... ║ 61 │ 62 │ 63 ║ 00 │ 00 │ 00 │ 02 ║ 64 │ 65 │ ──── [ "abc", "de" ]
... ║ 61 │ 62 │ 63 ║ 00 │ 00 │ 00 │ 02 ║ 64 │ 65 │ ──── [ "abc", "de" ]
──╨────┴────┴────╨────┴────┴────┴────╨────┴────┘
└────────────┘ └─────────────────┘ └───────┘
'a' 'b' 'c' length 'd' 'e'
@ -1896,7 +1896,7 @@ Example of array with three integers:
type number of integers 123 (0x7B)
──╥────┬────┬────┬────╥────┬────┬────┬────┐
... ║ 00 │ 00 │ 01 │ C8 ║ 00 │ 00 │ 03 │ 15 │ ──── [ 123, 456, 789 ]
... ║ 00 │ 00 │ 01 │ C8 ║ 00 │ 00 │ 03 │ 15 │ ──── [ 123, 456, 789 ]
──╨────┴────┴────┴────╨────┴────┴────┴────┘
└─────────────────┘ └─────────────────┘
456 (0x1C8) 789 (0x315)
@ -1906,7 +1906,7 @@ A _NULL_ array:
....
┌─────╥────┬────┬────┬────┐
│ str ║ 00 │ 00 │ 00 │ 00 │ ──── NULL
│ str ║ 00 │ 00 │ 00 │ 00 │ ──── NULL
└─────╨────┴────┴────┴────┘
└───┘ └─────────────────┘
type number of strings
@ -1920,49 +1920,49 @@ A _NULL_ array:
│ Client ├ ─ ─ ─ ─(network)─ ─ ─ ─ ┤ Relay ├────────────────┤ WeeChat │
└────────┘ └───────┘ └─────────┘
║ ║ ║
╟─────────────────────────────── ║ ║
╟─────────────────────────────── ║ ║
║ open socket ║ add client ║
║ ║ ║
╟─────────────────────────────── ║ ║
╟─────────────────────────────── ║ ║
║ cmd: handshake password=xxx,... ║ negotiate algos ║
║ ║ and options ║
───────────────────────────────╢ ║
───────────────────────────────╢ ║
║ msg: id: "handshake" ... ║ ║
║ ║ ║
╟─────────────────────────────── ║ ║
╟─────────────────────────────── ║ ║
║ cmd: init password=xxx,... ║ authenticate client ║
║ ║ ║
╟─────────────────────────────── ║ ║
║ cmd: hdata buffer ... ╟───────────────────────
╟─────────────────────────────── ║ ║
║ cmd: hdata buffer ... ╟───────────────────────
║ sync ... ║ request hdata ║ read hdata
║ ║ ║ values
║ ║ ───────────────────────╢
───────────────────────────────╢ hdata ║
║ ║ ───────────────────────╢
───────────────────────────────╢ hdata ║
create ║ msg: hda buffer ║ ║
buffers ║ ║ ║
║ ........ ║ ........ ║
║ ║ ║
╟─────────────────────────────── ║ ║
║ cmd: input ... ╟───────────────────────
╟─────────────────────────────── ║ ║
║ cmd: input ... ╟───────────────────────
║ ║ send data to buffer ║ send data
║ ║ ║ to buffer
║ ........ ║ ........ ║
║ ║ ║ signal
║ ║ ───────────────────────╢ received
───────────────────────────────╢ signal XXX ║ (hooked by
║ ║ ───────────────────────╢ received
───────────────────────────────╢ signal XXX ║ (hooked by
update ║ msg: id: "_buffer_..." ║ ║ relay)
buffers ║ ║ ║
║ ........ ║ ........ ║
║ ║ ║
╟─────────────────────────────── ║ ║
╟─────────────────────────────── ║ ║
║ cmd: ping ... ║ ║
║ ║ ║
───────────────────────────────╢ ║
───────────────────────────────╢ ║
measure ║ msg: id: "_pong" ... ║ ║
response ║ ║ ║
time ║ ........ ║ ........ ║
║ ║ ║
╟─────────────────────────────── ║ ║
╟─────────────────────────────── ║ ║
║ cmd: quit ║ disconnect client ║
║ ║ ║
....

View File

@ -36,11 +36,11 @@ Les _clients_ sont connectés au _relay_ comme dans le diagramme ci-dessous :
....
┌──────────┐ Station de travail
┌────────┐ ┌───┤ client 1 │ (Linux, Windows,
│ irc │──┐ ╔═══════════╤═══════╗ │ └──────────┘ BSD, macOS ...)
└────────┘ └──╢ │ ║───┘ ┌──────────┐
...... ║ WeeChat │ Relay ║───────┤ client 2 │ Appareil mobile
┌────────┐ ┌──╢ │ ║───┐ └──────────┘ (Android, iPhone ...)
│ jabber │──┘ ╚═══════════╧═══════╝ │ ......
│ irc │──┐ ╔═══════════╤═══════╗ │ └──────────┘ BSD, macOS ...)
└────────┘ └──╢ │ ║───┘ ┌──────────┐
...... ║ WeeChat │ Relay ║───────┤ client 2 │ Appareil mobile
┌────────┐ ┌──╢ │ ║───┐ └──────────┘ (Android, iPhone ...)
│ jabber │──┘ ╚═══════════╧═══════╝ │ ......
└────────┘ │ ┌──────────┐
...... └───┤ client N │ Autres appareils
└──────────┘
@ -1547,7 +1547,7 @@ Exemple :
....
┌────┐
│ 41 │ ──── 65 (0x41: "A")
│ 41 │ ──── 65 (0x41: "A")
└────┘
....
@ -1563,11 +1563,11 @@ Exemples :
....
┌────┬────┬────┬────┐
│ 00 │ 01 │ E2 │ 40 │ ──── 123456
│ 00 │ 01 │ E2 │ 40 │ ──── 123456
└────┴────┴────┴────┘
┌────┬────┬────┬────┐
│ FF │ FE │ 1D │ C0 │ ──── -123456
│ FF │ FE │ 1D │ C0 │ ──── -123456
└────┴────┴────┴────┘
....
@ -1583,13 +1583,13 @@ Exemples :
....
┌────╥────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
│ 0A ║ 31 │ 32 │ 33 │ 34 │ 35 │ 36 │ 37 │ 38 │ 39 │ 30 │ ──── 1234567890
│ 0A ║ 31 │ 32 │ 33 │ 34 │ 35 │ 36 │ 37 │ 38 │ 39 │ 30 │ ──── 1234567890
└────╨────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘
└──┘ └───────────────────────────────────────────────┘
long. '1' '2' '3' '4' '5' '6' '7' '8' '9' '0'
┌────╥────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
│ 0B ║ 2D │ 31 │ 32 │ 33 │ 34 │ 35 │ 36 │ 37 │ 38 │ 39 │ 30 │ ──── -1234567890
│ 0B ║ 2D │ 31 │ 32 │ 33 │ 34 │ 35 │ 36 │ 37 │ 38 │ 39 │ 30 │ ──── -1234567890
└────╨────┴────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘
└──┘ └────────────────────────────────────────────────────┘
long. '-' '1' '2' '3' '4' '5' '6' '7' '8' '9' '0'
@ -1605,7 +1605,7 @@ Exemple :
....
┌────┬────┬────┬────╥────┬────┬────┬────┬────┐
│ 00 │ 00 │ 00 │ 05 ║ 68 │ 65 │ 6C │ 6C │ 6F │ ──── "hello"
│ 00 │ 00 │ 00 │ 05 ║ 68 │ 65 │ 6C │ 6C │ 6F │ ──── "hello"
└────┴────┴────┴────╨────┴────┴────┴────┴────┘
└─────────────────┘ └──────────────────────┘
longueur 'h' 'e' 'l' 'l' 'o'
@ -1615,7 +1615,7 @@ Une chaîne vide a une longueur de zéro :
....
┌────┬────┬────┬────┐
│ 00 │ 00 │ 00 │ 00 │ ──── ""
│ 00 │ 00 │ 00 │ 00 │ ──── ""
└────┴────┴────┴────┘
└─────────────────┘
longueur
@ -1625,7 +1625,7 @@ Une chaîne _NULL_ (pointeur NULL en C) a une longueur de -1 :
....
┌────┬────┬────┬────┐
│ FF │ FF │ FF │ FF │ ──── NULL
│ FF │ FF │ FF │ FF │ ──── NULL
└────┴────┴────┴────┘
└─────────────────┘
longueur
@ -1647,7 +1647,7 @@ Exemple :
....
┌────╥────┬────┬────┬────┬────┬────┬────┬────┬────┐
│ 09 ║ 31 │ 61 │ 32 │ 62 │ 33 │ 63 │ 34 │ 64 │ 35 │ ──── 0x1a2b3c4d5
│ 09 ║ 31 │ 61 │ 32 │ 62 │ 33 │ 63 │ 34 │ 64 │ 35 │ ──── 0x1a2b3c4d5
└────╨────┴────┴────┴────┴────┴────┴────┴────┴────┘
└──┘ └──────────────────────────────────────────┘
long. '1' 'a' '2' 'b' '3' 'c' '4' 'd' '5'
@ -1657,7 +1657,7 @@ Un pointeur _NULL_ a une longueur de 1 avec la valeur 0 :
....
┌────╥────┐
│ 01 ║ 00 │ ──── NULL (0x0)
│ 01 ║ 00 │ ──── NULL (0x0)
└────╨────┘
└──┘ └──┘
long. 0
@ -1673,7 +1673,7 @@ Exemple :
....
┌────╥────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
│ 0A ║ 31 │ 33 │ 32 │ 31 │ 39 │ 39 │ 33 │ 34 │ 35 │ 36 │ ──── 1321993456
│ 0A ║ 31 │ 33 │ 32 │ 31 │ 39 │ 39 │ 33 │ 34 │ 35 │ 36 │ ──── 1321993456
└────╨────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘
└──┘ └───────────────────────────────────────────────┘
long. '1' '3' '2' '1' '9' '9' '3' '4' '5' '6'
@ -1696,7 +1696,7 @@ Exemple :
....
┌─────┬─────┬───╥──────┬─────╥──────┬─────┐
│ str │ str │ 2 ║ key1 │ abc ║ key2 │ def │ ──── { 'key1' => 'abc',
│ str │ str │ 2 ║ key1 │ abc ║ key2 │ def │ ──── { 'key1' => 'abc',
└─────┴─────┴───╨──────┴─────╨──────┴─────┘ 'key2' => 'def' }
└───┘ └───┘ └─┘ └──────────┘ └──────────┘
type type nombre élément 1 élément 2
@ -1928,7 +1928,7 @@ Exemple de tableau avec deux chaînes de caractères :
type nombre de chaînes longueur
──╥────┬────┬────╥────┬────┬────┬────╥────┬────┐
... ║ 61 │ 62 │ 63 ║ 00 │ 00 │ 00 │ 02 ║ 64 │ 65 │ ──── [ "abc", "de" ]
... ║ 61 │ 62 │ 63 ║ 00 │ 00 │ 00 │ 02 ║ 64 │ 65 │ ──── [ "abc", "de" ]
──╨────┴────┴────╨────┴────┴────┴────╨────┴────┘
└────────────┘ └─────────────────┘ └───────┘
'a' 'b' 'c' longueur 'd' 'e'
@ -1944,7 +1944,7 @@ Exemple de tableau avec trois entiers :
type nombre d'entiers 123 (0x7B)
──╥────┬────┬────┬────╥────┬────┬────┬────┐
... ║ 00 │ 00 │ 01 │ C8 ║ 00 │ 00 │ 03 │ 15 │ ──── [ 123, 456, 789 ]
... ║ 00 │ 00 │ 01 │ C8 ║ 00 │ 00 │ 03 │ 15 │ ──── [ 123, 456, 789 ]
──╨────┴────┴────┴────╨────┴────┴────┴────┘
└─────────────────┘ └─────────────────┘
456 (0x1C8) 789 (0x315)
@ -1954,7 +1954,7 @@ Un tableau _NULL_ :
....
┌─────╥────┬────┬────┬────┐
│ str ║ 00 │ 00 │ 00 │ 00 │ ──── NULL
│ str ║ 00 │ 00 │ 00 │ 00 │ ──── NULL
└─────╨────┴────┴────┴────┘
└───┘ └─────────────────┘
type nombre de chaînes
@ -1968,49 +1968,49 @@ Un tableau _NULL_ :
│ Client ├ ─ ─ ─ ─ (réseau)─ ─ ─ ─ ┤ Relay ├────────────────┤ WeeChat │
└────────┘ └───────┘ └─────────┘
║ ║ ║
╟─────────────────────────────── ║ ║
╟─────────────────────────────── ║ ║
║ ouverture socket ║ ajout du client ║
║ ║ ║
╟─────────────────────────────── ║ ║
╟─────────────────────────────── ║ ║
║ cmd: handshake password=xxx,... ║ négociation algos ║
║ ║ et options ║
───────────────────────────────╢ ║
───────────────────────────────╢ ║
║ msg: id: "handshake" ... ║ ║
║ ║ ║
╟─────────────────────────────── ║ ║
╟─────────────────────────────── ║ ║
║ cmd: init password=xxx,... ║ authentification ║
║ ║ client ║
╟─────────────────────────────── ║ ║
║ cmd: hdata buffer ... ╟───────────────────────
╟─────────────────────────────── ║ ║
║ cmd: hdata buffer ... ╟───────────────────────
║ sync ... ║ demande de hdata ║ lecture
║ ║ ║ valeurs
║ ║ ───────────────────────╢ hdata
───────────────────────────────╢ hdata ║
║ ║ ───────────────────────╢ hdata
───────────────────────────────╢ hdata ║
créat° ║ msg: hda buffer ║ ║
tampons ║ ║ ║
║ ........ ║ ........ ║
║ ║ ║
╟─────────────────────────────── ║ ║
║ cmd: input ... ╟───────────────────────
╟─────────────────────────────── ║ ║
║ cmd: input ... ╟───────────────────────
║ ║ envoi données au tampon ║ envoi données
║ ║ ║ au tampon
║ ........ ║ ........ ║
║ ║ ║ signal
║ ║ ───────────────────────╢ reçu
───────────────────────────────╢ signal XXX ║ (accroché
║ ║ ───────────────────────╢ reçu
───────────────────────────────╢ signal XXX ║ (accroché
MAJ ║ msg: id: "_buffer_..." ║ ║ par relay)
tampons ║ ║ ║
║ ........ ║ ........ ║
║ ║ ║
╟─────────────────────────────── ║ ║
╟─────────────────────────────── ║ ║
║ cmd: ping ... ║ ║
║ ║ ║
───────────────────────────────╢ ║
───────────────────────────────╢ ║
mesure ║ msg: id: "_pong" ... ║ ║
temps ║ ║ ║
réponse ║ ........ ║ ........ ║
║ ║ ║
╟─────────────────────────────── ║ ║
╟─────────────────────────────── ║ ║
║ cmd: quit ║ déconnexion du client ║
║ ║ ║
....

View File

@ -39,11 +39,11 @@
....
┌────────────────┐ ワークステーション
┌────────┐ ┌───┤ クライアント 1 │ (Linux、Windows、
│ irc │──┐ ╔═══════════╤════════╗ │ └────────────────┘ BSD、macOS ...)
└────────┘ └──╢ │ ║───┘ ┌────────────────┐
...... ║ WeeChat │ リレー ║───────┤ クライアント 2 │ 携帯デバイス
┌────────┐ ┌──╢ │ ║───┐ └────────────────┘ (Android、iPhone ...)
│ jabber │──┘ ╚═══════════╧════════╝ │ ......
│ irc │──┐ ╔═══════════╤════════╗ │ └────────────────┘ BSD、macOS ...)
└────────┘ └──╢ │ ║───┘ ┌────────────────┐
...... ║ WeeChat │ リレー ║───────┤ クライアント 2 │ 携帯デバイス
┌────────┐ ┌──╢ │ ║───┐ └────────────────┘ (Android、iPhone ...)
│ jabber │──┘ ╚═══════════╧════════╝ │ ......
└────────┘ │ ┌────────────────┐
...... └───┤ クライアント N │ その他のデバイス
└────────────────┘
@ -1524,7 +1524,7 @@ _WeeChat バージョン 0.3.8 以上で利用可。_
....
┌────┐
│ 41 │ ──── 65 (0x41: "A")
│ 41 │ ──── 65 (0x41: "A")
└────┘
....
@ -1540,11 +1540,11 @@ _WeeChat バージョン 0.3.8 以上で利用可。_
....
┌────┬────┬────┬────┐
│ 00 │ 01 │ E2 │ 40 │ ──── 123456
│ 00 │ 01 │ E2 │ 40 │ ──── 123456
└────┴────┴────┴────┘
┌────┬────┬────┬────┐
│ FF │ FE │ 1D │ C0 │ ──── -123456
│ FF │ FE │ 1D │ C0 │ ──── -123456
└────┴────┴────┴────┘
....
@ -1559,13 +1559,13 @@ _WeeChat バージョン 0.3.8 以上で利用可。_
....
┌────╥────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
│ 0A ║ 31 │ 32 │ 33 │ 34 │ 35 │ 36 │ 37 │ 38 │ 39 │ 30 │ ──── 1234567890
│ 0A ║ 31 │ 32 │ 33 │ 34 │ 35 │ 36 │ 37 │ 38 │ 39 │ 30 │ ──── 1234567890
└────╨────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘
└──┘ └───────────────────────────────────────────────┘
length '1' '2' '3' '4' '5' '6' '7' '8' '9' '0'
┌────╥────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
│ 0B ║ 2D │ 31 │ 32 │ 33 │ 34 │ 35 │ 36 │ 37 │ 38 │ 39 │ 30 │ ──── -1234567890
│ 0B ║ 2D │ 31 │ 32 │ 33 │ 34 │ 35 │ 36 │ 37 │ 38 │ 39 │ 30 │ ──── -1234567890
└────╨────┴────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘
└──┘ └────────────────────────────────────────────────────┘
length '-' '1' '2' '3' '4' '5' '6' '7' '8' '9' '0'
@ -1580,7 +1580,7 @@ length '-' '1' '2' '3' '4' '5' '6' '7' '8' '9' '0'
....
┌────┬────┬────┬────╥────┬────┬────┬────┬────┐
│ 00 │ 00 │ 00 │ 05 ║ 68 │ 65 │ 6C │ 6C │ 6F │ ──── "hello"
│ 00 │ 00 │ 00 │ 05 ║ 68 │ 65 │ 6C │ 6C │ 6F │ ──── "hello"
└────┴────┴────┴────╨────┴────┴────┴────┴────┘
└─────────────────┘ └──────────────────────┘
length 'h' 'e' 'l' 'l' 'o'
@ -1590,7 +1590,7 @@ length '-' '1' '2' '3' '4' '5' '6' '7' '8' '9' '0'
....
┌────┬────┬────┬────┐
│ 00 │ 00 │ 00 │ 00 │ ──── ""
│ 00 │ 00 │ 00 │ 00 │ ──── ""
└────┴────┴────┴────┘
└─────────────────┘
length
@ -1600,7 +1600,7 @@ _NULL_ 文字列 (C 言語の NULL ポインタ) を表現するにはの長さ
....
┌────┬────┬────┬────┐
│ FF │ FF │ FF │ FF │ ──── NULL
│ FF │ FF │ FF │ FF │ ──── NULL
└────┴────┴────┴────┘
└─────────────────┘
length
@ -1620,7 +1620,7 @@ _NULL_ 文字列 (C 言語の NULL ポインタ) を表現するにはの長さ
....
┌────╥────┬────┬────┬────┬────┬────┬────┬────┬────┐
│ 09 ║ 31 │ 61 │ 32 │ 62 │ 33 │ 63 │ 34 │ 64 │ 35 │ ──── 0x1a2b3c4d5
│ 09 ║ 31 │ 61 │ 32 │ 62 │ 33 │ 63 │ 34 │ 64 │ 35 │ ──── 0x1a2b3c4d5
└────╨────┴────┴────┴────┴────┴────┴────┴────┴────┘
└──┘ └──────────────────────────────────────────┘
length '1' 'a' '2' 'b' '3' 'c' '4' 'd' '5'
@ -1630,7 +1630,7 @@ _NULL_ ポインタを表現するには長さを 1 で値を 0 にしてくだ
....
┌────╥────┐
│ 01 ║ 00 │ ──── NULL (0x0)
│ 01 ║ 00 │ ──── NULL (0x0)
└────╨────┘
└──┘ └──┘
length 0
@ -1645,7 +1645,7 @@ length 0
....
┌────╥────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
│ 0A ║ 31 │ 33 │ 32 │ 31 │ 39 │ 39 │ 33 │ 34 │ 35 │ 36 │ ──── 1321993456
│ 0A ║ 31 │ 33 │ 32 │ 31 │ 39 │ 39 │ 33 │ 34 │ 35 │ 36 │ ──── 1321993456
└────╨────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘
└──┘ └───────────────────────────────────────────────┘
length '1' '3' '2' '1' '9' '9' '3' '4' '5' '6'
@ -1667,7 +1667,7 @@ length '1' '3' '2' '1' '9' '9' '3' '4' '5' '6'
....
┌─────┬─────┬───╥──────┬─────╥──────┬─────┐
│ str │ str │ 2 ║ key1 │ abc ║ key2 │ def │ ──── { 'key1' => 'abc',
│ str │ str │ 2 ║ key1 │ abc ║ key2 │ def │ ──── { 'key1' => 'abc',
└─────┴─────┴───╨──────┴─────╨──────┴─────┘ 'key2' => 'def' }
└───┘ └───┘ └─┘ └──────────┘ └──────────┘
type type count item 1 item 2
@ -1894,7 +1894,7 @@ infolist buffer
type number of strings length
──╥────┬────┬────╥────┬────┬────┬────╥────┬────┐
... ║ 61 │ 62 │ 63 ║ 00 │ 00 │ 00 │ 02 ║ 64 │ 65 │ ──── [ "abc", "de" ]
... ║ 61 │ 62 │ 63 ║ 00 │ 00 │ 00 │ 02 ║ 64 │ 65 │ ──── [ "abc", "de" ]
──╨────┴────┴────╨────┴────┴────┴────╨────┴────┘
└────────────┘ └─────────────────┘ └───────┘
'a' 'b' 'c' length 'd' 'e'
@ -1910,7 +1910,7 @@ infolist buffer
type number of integers 123 (0x7B)
──╥────┬────┬────┬────╥────┬────┬────┬────┐
... ║ 00 │ 00 │ 01 │ C8 ║ 00 │ 00 │ 03 │ 15 │ ──── [ 123, 456, 789 ]
... ║ 00 │ 00 │ 01 │ C8 ║ 00 │ 00 │ 03 │ 15 │ ──── [ 123, 456, 789 ]
──╨────┴────┴────┴────╨────┴────┴────┴────┘
└─────────────────┘ └─────────────────┘
456 (0x1C8) 789 (0x315)
@ -1920,7 +1920,7 @@ _NULL_ 配列:
....
┌─────╥────┬────┬────┬────┐
│ str ║ 00 │ 00 │ 00 │ 00 │ ──── NULL
│ str ║ 00 │ 00 │ 00 │ 00 │ ──── NULL
└─────╨────┴────┴────┴────┘
└───┘ └─────────────────┘
type number of strings
@ -1935,49 +1935,49 @@ _NULL_ 配列:
│ クライアント ├ ─(ネットワーク)─ ┤ リレー ├──────────────────┤ WeeChat │
└──────────────┘ └────────┘ └─────────┘
║ ║ ║
╟─────────────────────────────── ║ ║
╟─────────────────────────────── ║ ║
║ ソケットをオープン ║ クライアントを追加 ║
║ ║ ║
╟─────────────────────────────── ║ ║
╟─────────────────────────────── ║ ║
║ cmd: handshake password=xxx,... ║ negotiate algos ║
║ ║ and options ║
───────────────────────────────╢ ║
───────────────────────────────╢ ║
║ msg: id: "handshake" ... ║ ║
║ ║ ║
╟─────────────────────────────── ║ ║
╟─────────────────────────────── ║ ║
║ cmd: init password=xxx,... ║ クライアントを初期化/許可 ║
║ ║ ║
╟─────────────────────────────── ║ ║
║ cmd: hdata buffer ... ╟─────────────────────────
╟─────────────────────────────── ║ ║
║ cmd: hdata buffer ... ╟─────────────────────────
║ sync ... ║ hdata の要求 ║ hdata
║ ║ ║ の値を読み出し
║ ║ ─────────────────────────╢
───────────────────────────────╢ hdata ║
║ ║ ─────────────────────────╢
───────────────────────────────╢ hdata ║
バッファ ║ msg: hda buffer ║ ║
を作成 ║ ║ ║
║ ........ ║ ........ ║
║ ║ ║
╟─────────────────────────────── ║ ║
║ cmd: input ... ╟─────────────────────────
╟─────────────────────────────── ║ ║
║ cmd: input ... ╟─────────────────────────
║ ║ バッファにデータを送信 ║ バッファに
║ ║ ║ データを送信
║ ........ ║ ........ ║
║ ║ ║ シグナル
║ ║ ─────────────────────────╢ の受信
───────────────────────────────╢ シグナル XXX ║ (リレー
║ ║ ─────────────────────────╢ の受信
───────────────────────────────╢ シグナル XXX ║ (リレー
バッファ ║ msg: id: "_buffer_..." ║ ║ がフック)
を更新 ║ ║ ║
║ ........ ║ ........ ║
║ ║ ║
╟─────────────────────────────── ║ ║
╟─────────────────────────────── ║ ║
║ cmd: ping ... ║ ║
║ ║ ║
───────────────────────────────╢ ║
───────────────────────────────╢ ║
応答 ║ msg: id: "_pong" ... ║ ║
時間 ║ ║ ║
を計測 ║ ........ ║ ........ ║
║ ║ ║
╟─────────────────────────────── ║ ║
╟─────────────────────────────── ║ ║
║ cmd: quit ║ クライアントを切断 ║
║ ║ ║
....