doc: revert arrows chars in relay protocol
This commit is contained in:
parent
9fa3609c85
commit
0c7d7c3fdc
@ -32,11 +32,11 @@ The _clients_ are connected to _relay_ like shown in this diagram:
|
|||||||
....
|
....
|
||||||
┌──────────┐ Workstation
|
┌──────────┐ Workstation
|
||||||
┌────────┐ ┌───┤ client 1 │ (Linux, Windows,
|
┌────────┐ ┌───┤ client 1 │ (Linux, Windows,
|
||||||
│ irc │◀──┐ ╔═══════════╤═══════╗ │ └──────────┘ BSD, macOS ...)
|
│ irc │◄──┐ ╔═══════════╤═══════╗ │ └──────────┘ BSD, macOS ...)
|
||||||
└────────┘ └──╢ │ ║◀───┘ ┌──────────┐
|
└────────┘ └──╢ │ ║◄───┘ ┌──────────┐
|
||||||
...... ║ WeeChat │ Relay ║◀───────┤ client 2 │ Mobile device
|
...... ║ WeeChat │ Relay ║◄───────┤ client 2 │ Mobile device
|
||||||
┌────────┐ ┌──╢ │ ║◀───┐ └──────────┘ (Android, iPhone ...)
|
┌────────┐ ┌──╢ │ ║◄───┐ └──────────┘ (Android, iPhone ...)
|
||||||
│ jabber │◀──┘ ╚═══════════╧═══════╝ │ ......
|
│ jabber │◄──┘ ╚═══════════╧═══════╝ │ ......
|
||||||
└────────┘ │ ┌──────────┐
|
└────────┘ │ ┌──────────┐
|
||||||
...... └───┤ client N │ Other devices
|
...... └───┤ 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'
|
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'
|
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'
|
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
|
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
|
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'
|
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
|
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'
|
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' }
|
└─────┴─────┴───╨──────┴─────╨──────┴─────┘ 'key2' => 'def' }
|
||||||
└───┘ └───┘ └─┘ └──────────┘ └──────────┘
|
└───┘ └───┘ └─┘ └──────────┘ └──────────┘
|
||||||
type type count item 1 item 2
|
type type count item 1 item 2
|
||||||
@ -1880,7 +1880,7 @@ Example of array with two strings:
|
|||||||
type number of strings length
|
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'
|
'a' 'b' 'c' length 'd' 'e'
|
||||||
@ -1896,7 +1896,7 @@ Example of array with three integers:
|
|||||||
type number of integers 123 (0x7B)
|
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)
|
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
|
type number of strings
|
||||||
@ -1920,49 +1920,49 @@ A _NULL_ array:
|
|||||||
│ Client ├ ─ ─ ─ ─(network)─ ─ ─ ─ ┤ Relay ├────────────────┤ WeeChat │
|
│ Client ├ ─ ─ ─ ─(network)─ ─ ─ ─ ┤ Relay ├────────────────┤ WeeChat │
|
||||||
└────────┘ └───────┘ └─────────┘
|
└────────┘ └───────┘ └─────────┘
|
||||||
║ ║ ║
|
║ ║ ║
|
||||||
╟───────────────────────────────▶ ║ ║
|
╟───────────────────────────────► ║ ║
|
||||||
║ open socket ║ add client ║
|
║ open socket ║ add client ║
|
||||||
║ ║ ║
|
║ ║ ║
|
||||||
╟───────────────────────────────▶ ║ ║
|
╟───────────────────────────────► ║ ║
|
||||||
║ cmd: handshake password=xxx,... ║ negotiate algos ║
|
║ cmd: handshake password=xxx,... ║ negotiate algos ║
|
||||||
║ ║ and options ║
|
║ ║ and options ║
|
||||||
║ ◀───────────────────────────────╢ ║
|
║ ◄───────────────────────────────╢ ║
|
||||||
║ msg: id: "handshake" ... ║ ║
|
║ msg: id: "handshake" ... ║ ║
|
||||||
║ ║ ║
|
║ ║ ║
|
||||||
╟───────────────────────────────▶ ║ ║
|
╟───────────────────────────────► ║ ║
|
||||||
║ cmd: init password=xxx,... ║ authenticate client ║
|
║ cmd: init password=xxx,... ║ authenticate client ║
|
||||||
║ ║ ║
|
║ ║ ║
|
||||||
╟───────────────────────────────▶ ║ ║
|
╟───────────────────────────────► ║ ║
|
||||||
║ cmd: hdata buffer ... ╟───────────────────────▶ ║
|
║ cmd: hdata buffer ... ╟───────────────────────► ║
|
||||||
║ sync ... ║ request hdata ║ read hdata
|
║ sync ... ║ request hdata ║ read hdata
|
||||||
║ ║ ║ values
|
║ ║ ║ values
|
||||||
║ ║ ◀───────────────────────╢
|
║ ║ ◄───────────────────────╢
|
||||||
║ ◀───────────────────────────────╢ hdata ║
|
║ ◄───────────────────────────────╢ hdata ║
|
||||||
create ║ msg: hda buffer ║ ║
|
create ║ msg: hda buffer ║ ║
|
||||||
buffers ║ ║ ║
|
buffers ║ ║ ║
|
||||||
║ ........ ║ ........ ║
|
║ ........ ║ ........ ║
|
||||||
║ ║ ║
|
║ ║ ║
|
||||||
╟───────────────────────────────▶ ║ ║
|
╟───────────────────────────────► ║ ║
|
||||||
║ cmd: input ... ╟───────────────────────▶ ║
|
║ cmd: input ... ╟───────────────────────► ║
|
||||||
║ ║ send data to buffer ║ send data
|
║ ║ send data to buffer ║ send data
|
||||||
║ ║ ║ to buffer
|
║ ║ ║ to buffer
|
||||||
║ ........ ║ ........ ║
|
║ ........ ║ ........ ║
|
||||||
║ ║ ║ signal
|
║ ║ ║ signal
|
||||||
║ ║ ◀───────────────────────╢ received
|
║ ║ ◄───────────────────────╢ received
|
||||||
║ ◀───────────────────────────────╢ signal XXX ║ (hooked by
|
║ ◄───────────────────────────────╢ signal XXX ║ (hooked by
|
||||||
update ║ msg: id: "_buffer_..." ║ ║ relay)
|
update ║ msg: id: "_buffer_..." ║ ║ relay)
|
||||||
buffers ║ ║ ║
|
buffers ║ ║ ║
|
||||||
║ ........ ║ ........ ║
|
║ ........ ║ ........ ║
|
||||||
║ ║ ║
|
║ ║ ║
|
||||||
╟───────────────────────────────▶ ║ ║
|
╟───────────────────────────────► ║ ║
|
||||||
║ cmd: ping ... ║ ║
|
║ cmd: ping ... ║ ║
|
||||||
║ ║ ║
|
║ ║ ║
|
||||||
║ ◀───────────────────────────────╢ ║
|
║ ◄───────────────────────────────╢ ║
|
||||||
measure ║ msg: id: "_pong" ... ║ ║
|
measure ║ msg: id: "_pong" ... ║ ║
|
||||||
response ║ ║ ║
|
response ║ ║ ║
|
||||||
time ║ ........ ║ ........ ║
|
time ║ ........ ║ ........ ║
|
||||||
║ ║ ║
|
║ ║ ║
|
||||||
╟───────────────────────────────▶ ║ ║
|
╟───────────────────────────────► ║ ║
|
||||||
║ cmd: quit ║ disconnect client ║
|
║ cmd: quit ║ disconnect client ║
|
||||||
║ ║ ║
|
║ ║ ║
|
||||||
....
|
....
|
||||||
|
@ -36,11 +36,11 @@ Les _clients_ sont connectés au _relay_ comme dans le diagramme ci-dessous :
|
|||||||
....
|
....
|
||||||
┌──────────┐ Station de travail
|
┌──────────┐ Station de travail
|
||||||
┌────────┐ ┌───┤ client 1 │ (Linux, Windows,
|
┌────────┐ ┌───┤ client 1 │ (Linux, Windows,
|
||||||
│ irc │◀──┐ ╔═══════════╤═══════╗ │ └──────────┘ BSD, macOS ...)
|
│ irc │◄──┐ ╔═══════════╤═══════╗ │ └──────────┘ BSD, macOS ...)
|
||||||
└────────┘ └──╢ │ ║◀───┘ ┌──────────┐
|
└────────┘ └──╢ │ ║◄───┘ ┌──────────┐
|
||||||
...... ║ WeeChat │ Relay ║◀───────┤ client 2 │ Appareil mobile
|
...... ║ WeeChat │ Relay ║◄───────┤ client 2 │ Appareil mobile
|
||||||
┌────────┐ ┌──╢ │ ║◀───┐ └──────────┘ (Android, iPhone ...)
|
┌────────┐ ┌──╢ │ ║◄───┐ └──────────┘ (Android, iPhone ...)
|
||||||
│ jabber │◀──┘ ╚═══════════╧═══════╝ │ ......
|
│ jabber │◄──┘ ╚═══════════╧═══════╝ │ ......
|
||||||
└────────┘ │ ┌──────────┐
|
└────────┘ │ ┌──────────┐
|
||||||
...... └───┤ client N │ Autres appareils
|
...... └───┤ 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'
|
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'
|
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'
|
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
|
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
|
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'
|
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
|
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'
|
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' }
|
└─────┴─────┴───╨──────┴─────╨──────┴─────┘ 'key2' => 'def' }
|
||||||
└───┘ └───┘ └─┘ └──────────┘ └──────────┘
|
└───┘ └───┘ └─┘ └──────────┘ └──────────┘
|
||||||
type type nombre élément 1 élément 2
|
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
|
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'
|
'a' 'b' 'c' longueur 'd' 'e'
|
||||||
@ -1944,7 +1944,7 @@ Exemple de tableau avec trois entiers :
|
|||||||
type nombre d'entiers 123 (0x7B)
|
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)
|
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
|
type nombre de chaînes
|
||||||
@ -1968,49 +1968,49 @@ Un tableau _NULL_ :
|
|||||||
│ Client ├ ─ ─ ─ ─ (réseau)─ ─ ─ ─ ┤ Relay ├────────────────┤ WeeChat │
|
│ Client ├ ─ ─ ─ ─ (réseau)─ ─ ─ ─ ┤ Relay ├────────────────┤ WeeChat │
|
||||||
└────────┘ └───────┘ └─────────┘
|
└────────┘ └───────┘ └─────────┘
|
||||||
║ ║ ║
|
║ ║ ║
|
||||||
╟───────────────────────────────▶ ║ ║
|
╟───────────────────────────────► ║ ║
|
||||||
║ ouverture socket ║ ajout du client ║
|
║ ouverture socket ║ ajout du client ║
|
||||||
║ ║ ║
|
║ ║ ║
|
||||||
╟───────────────────────────────▶ ║ ║
|
╟───────────────────────────────► ║ ║
|
||||||
║ cmd: handshake password=xxx,... ║ négociation algos ║
|
║ cmd: handshake password=xxx,... ║ négociation algos ║
|
||||||
║ ║ et options ║
|
║ ║ et options ║
|
||||||
║ ◀───────────────────────────────╢ ║
|
║ ◄───────────────────────────────╢ ║
|
||||||
║ msg: id: "handshake" ... ║ ║
|
║ msg: id: "handshake" ... ║ ║
|
||||||
║ ║ ║
|
║ ║ ║
|
||||||
╟───────────────────────────────▶ ║ ║
|
╟───────────────────────────────► ║ ║
|
||||||
║ cmd: init password=xxx,... ║ authentification ║
|
║ cmd: init password=xxx,... ║ authentification ║
|
||||||
║ ║ client ║
|
║ ║ client ║
|
||||||
╟───────────────────────────────▶ ║ ║
|
╟───────────────────────────────► ║ ║
|
||||||
║ cmd: hdata buffer ... ╟───────────────────────▶ ║
|
║ cmd: hdata buffer ... ╟───────────────────────► ║
|
||||||
║ sync ... ║ demande de hdata ║ lecture
|
║ sync ... ║ demande de hdata ║ lecture
|
||||||
║ ║ ║ valeurs
|
║ ║ ║ valeurs
|
||||||
║ ║ ◀───────────────────────╢ hdata
|
║ ║ ◄───────────────────────╢ hdata
|
||||||
║ ◀───────────────────────────────╢ hdata ║
|
║ ◄───────────────────────────────╢ hdata ║
|
||||||
créat° ║ msg: hda buffer ║ ║
|
créat° ║ msg: hda buffer ║ ║
|
||||||
tampons ║ ║ ║
|
tampons ║ ║ ║
|
||||||
║ ........ ║ ........ ║
|
║ ........ ║ ........ ║
|
||||||
║ ║ ║
|
║ ║ ║
|
||||||
╟───────────────────────────────▶ ║ ║
|
╟───────────────────────────────► ║ ║
|
||||||
║ cmd: input ... ╟───────────────────────▶ ║
|
║ cmd: input ... ╟───────────────────────► ║
|
||||||
║ ║ envoi données au tampon ║ envoi données
|
║ ║ envoi données au tampon ║ envoi données
|
||||||
║ ║ ║ au tampon
|
║ ║ ║ au tampon
|
||||||
║ ........ ║ ........ ║
|
║ ........ ║ ........ ║
|
||||||
║ ║ ║ signal
|
║ ║ ║ signal
|
||||||
║ ║ ◀───────────────────────╢ reçu
|
║ ║ ◄───────────────────────╢ reçu
|
||||||
║ ◀───────────────────────────────╢ signal XXX ║ (accroché
|
║ ◄───────────────────────────────╢ signal XXX ║ (accroché
|
||||||
MAJ ║ msg: id: "_buffer_..." ║ ║ par relay)
|
MAJ ║ msg: id: "_buffer_..." ║ ║ par relay)
|
||||||
tampons ║ ║ ║
|
tampons ║ ║ ║
|
||||||
║ ........ ║ ........ ║
|
║ ........ ║ ........ ║
|
||||||
║ ║ ║
|
║ ║ ║
|
||||||
╟───────────────────────────────▶ ║ ║
|
╟───────────────────────────────► ║ ║
|
||||||
║ cmd: ping ... ║ ║
|
║ cmd: ping ... ║ ║
|
||||||
║ ║ ║
|
║ ║ ║
|
||||||
║ ◀───────────────────────────────╢ ║
|
║ ◄───────────────────────────────╢ ║
|
||||||
mesure ║ msg: id: "_pong" ... ║ ║
|
mesure ║ msg: id: "_pong" ... ║ ║
|
||||||
temps ║ ║ ║
|
temps ║ ║ ║
|
||||||
réponse ║ ........ ║ ........ ║
|
réponse ║ ........ ║ ........ ║
|
||||||
║ ║ ║
|
║ ║ ║
|
||||||
╟───────────────────────────────▶ ║ ║
|
╟───────────────────────────────► ║ ║
|
||||||
║ cmd: quit ║ déconnexion du client ║
|
║ cmd: quit ║ déconnexion du client ║
|
||||||
║ ║ ║
|
║ ║ ║
|
||||||
....
|
....
|
||||||
|
@ -39,11 +39,11 @@
|
|||||||
....
|
....
|
||||||
┌────────────────┐ ワークステーション
|
┌────────────────┐ ワークステーション
|
||||||
┌────────┐ ┌───┤ クライアント 1 │ (Linux、Windows、
|
┌────────┐ ┌───┤ クライアント 1 │ (Linux、Windows、
|
||||||
│ irc │◀──┐ ╔═══════════╤════════╗ │ └────────────────┘ BSD、macOS ...)
|
│ irc │◄──┐ ╔═══════════╤════════╗ │ └────────────────┘ BSD、macOS ...)
|
||||||
└────────┘ └──╢ │ ║◀───┘ ┌────────────────┐
|
└────────┘ └──╢ │ ║◄───┘ ┌────────────────┐
|
||||||
...... ║ WeeChat │ リレー ║◀───────┤ クライアント 2 │ 携帯デバイス
|
...... ║ WeeChat │ リレー ║◄───────┤ クライアント 2 │ 携帯デバイス
|
||||||
┌────────┐ ┌──╢ │ ║◀───┐ └────────────────┘ (Android、iPhone ...)
|
┌────────┐ ┌──╢ │ ║◄───┐ └────────────────┘ (Android、iPhone ...)
|
||||||
│ jabber │◀──┘ ╚═══════════╧════════╝ │ ......
|
│ jabber │◄──┘ ╚═══════════╧════════╝ │ ......
|
||||||
└────────┘ │ ┌────────────────┐
|
└────────┘ │ ┌────────────────┐
|
||||||
...... └───┤ クライアント N │ その他のデバイス
|
...... └───┤ クライアント 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'
|
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'
|
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'
|
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
|
length
|
||||||
@ -1600,7 +1600,7 @@ _NULL_ 文字列 (C 言語の NULL ポインタ) を表現するにはの長さ
|
|||||||
|
|
||||||
....
|
....
|
||||||
┌────┬────┬────┬────┐
|
┌────┬────┬────┬────┐
|
||||||
│ FF │ FF │ FF │ FF │ ────▶ NULL
|
│ FF │ FF │ FF │ FF │ ────► NULL
|
||||||
└────┴────┴────┴────┘
|
└────┴────┴────┴────┘
|
||||||
└─────────────────┘
|
└─────────────────┘
|
||||||
length
|
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'
|
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
|
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'
|
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' }
|
└─────┴─────┴───╨──────┴─────╨──────┴─────┘ 'key2' => 'def' }
|
||||||
└───┘ └───┘ └─┘ └──────────┘ └──────────┘
|
└───┘ └───┘ └─┘ └──────────┘ └──────────┘
|
||||||
type type count item 1 item 2
|
type type count item 1 item 2
|
||||||
@ -1894,7 +1894,7 @@ infolist buffer
|
|||||||
type number of strings length
|
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'
|
'a' 'b' 'c' length 'd' 'e'
|
||||||
@ -1910,7 +1910,7 @@ infolist buffer
|
|||||||
type number of integers 123 (0x7B)
|
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)
|
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
|
type number of strings
|
||||||
@ -1935,49 +1935,49 @@ _NULL_ 配列:
|
|||||||
│ クライアント ├ ─(ネットワーク)─ ┤ リレー ├──────────────────┤ WeeChat │
|
│ クライアント ├ ─(ネットワーク)─ ┤ リレー ├──────────────────┤ WeeChat │
|
||||||
└──────────────┘ └────────┘ └─────────┘
|
└──────────────┘ └────────┘ └─────────┘
|
||||||
║ ║ ║
|
║ ║ ║
|
||||||
╟───────────────────────────────▶ ║ ║
|
╟───────────────────────────────► ║ ║
|
||||||
║ ソケットをオープン ║ クライアントを追加 ║
|
║ ソケットをオープン ║ クライアントを追加 ║
|
||||||
║ ║ ║
|
║ ║ ║
|
||||||
╟───────────────────────────────▶ ║ ║
|
╟───────────────────────────────► ║ ║
|
||||||
║ cmd: handshake password=xxx,... ║ negotiate algos ║
|
║ cmd: handshake password=xxx,... ║ negotiate algos ║
|
||||||
║ ║ and options ║
|
║ ║ and options ║
|
||||||
║ ◀───────────────────────────────╢ ║
|
║ ◄───────────────────────────────╢ ║
|
||||||
║ msg: id: "handshake" ... ║ ║
|
║ msg: id: "handshake" ... ║ ║
|
||||||
║ ║ ║
|
║ ║ ║
|
||||||
╟───────────────────────────────▶ ║ ║
|
╟───────────────────────────────► ║ ║
|
||||||
║ cmd: init password=xxx,... ║ クライアントを初期化/許可 ║
|
║ cmd: init password=xxx,... ║ クライアントを初期化/許可 ║
|
||||||
║ ║ ║
|
║ ║ ║
|
||||||
╟───────────────────────────────▶ ║ ║
|
╟───────────────────────────────► ║ ║
|
||||||
║ cmd: hdata buffer ... ╟─────────────────────────▶ ║
|
║ cmd: hdata buffer ... ╟─────────────────────────► ║
|
||||||
║ sync ... ║ hdata の要求 ║ hdata
|
║ sync ... ║ hdata の要求 ║ hdata
|
||||||
║ ║ ║ の値を読み出し
|
║ ║ ║ の値を読み出し
|
||||||
║ ║ ◀─────────────────────────╢
|
║ ║ ◄─────────────────────────╢
|
||||||
║ ◀───────────────────────────────╢ hdata ║
|
║ ◄───────────────────────────────╢ hdata ║
|
||||||
バッファ ║ msg: hda buffer ║ ║
|
バッファ ║ msg: hda buffer ║ ║
|
||||||
を作成 ║ ║ ║
|
を作成 ║ ║ ║
|
||||||
║ ........ ║ ........ ║
|
║ ........ ║ ........ ║
|
||||||
║ ║ ║
|
║ ║ ║
|
||||||
╟───────────────────────────────▶ ║ ║
|
╟───────────────────────────────► ║ ║
|
||||||
║ cmd: input ... ╟─────────────────────────▶ ║
|
║ cmd: input ... ╟─────────────────────────► ║
|
||||||
║ ║ バッファにデータを送信 ║ バッファに
|
║ ║ バッファにデータを送信 ║ バッファに
|
||||||
║ ║ ║ データを送信
|
║ ║ ║ データを送信
|
||||||
║ ........ ║ ........ ║
|
║ ........ ║ ........ ║
|
||||||
║ ║ ║ シグナル
|
║ ║ ║ シグナル
|
||||||
║ ║ ◀─────────────────────────╢ の受信
|
║ ║ ◄─────────────────────────╢ の受信
|
||||||
║ ◀───────────────────────────────╢ シグナル XXX ║ (リレー
|
║ ◄───────────────────────────────╢ シグナル XXX ║ (リレー
|
||||||
バッファ ║ msg: id: "_buffer_..." ║ ║ がフック)
|
バッファ ║ msg: id: "_buffer_..." ║ ║ がフック)
|
||||||
を更新 ║ ║ ║
|
を更新 ║ ║ ║
|
||||||
║ ........ ║ ........ ║
|
║ ........ ║ ........ ║
|
||||||
║ ║ ║
|
║ ║ ║
|
||||||
╟───────────────────────────────▶ ║ ║
|
╟───────────────────────────────► ║ ║
|
||||||
║ cmd: ping ... ║ ║
|
║ cmd: ping ... ║ ║
|
||||||
║ ║ ║
|
║ ║ ║
|
||||||
║ ◀───────────────────────────────╢ ║
|
║ ◄───────────────────────────────╢ ║
|
||||||
応答 ║ msg: id: "_pong" ... ║ ║
|
応答 ║ msg: id: "_pong" ... ║ ║
|
||||||
時間 ║ ║ ║
|
時間 ║ ║ ║
|
||||||
を計測 ║ ........ ║ ........ ║
|
を計測 ║ ........ ║ ........ ║
|
||||||
║ ║ ║
|
║ ║ ║
|
||||||
╟───────────────────────────────▶ ║ ║
|
╟───────────────────────────────► ║ ║
|
||||||
║ cmd: quit ║ クライアントを切断 ║
|
║ cmd: quit ║ クライアントを切断 ║
|
||||||
║ ║ ║
|
║ ║ ║
|
||||||
....
|
....
|
||||||
|
Loading…
x
Reference in New Issue
Block a user