diff --git a/doc/en/weechat_relay_protocol.en.adoc b/doc/en/weechat_relay_protocol.en.adoc index a2c9ca0b9..fa2305b4d 100644 --- a/doc/en/weechat_relay_protocol.en.adoc +++ b/doc/en/weechat_relay_protocol.en.adoc @@ -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 ║ ║ ║ ║ .... diff --git a/doc/fr/weechat_relay_protocol.fr.adoc b/doc/fr/weechat_relay_protocol.fr.adoc index 5bcb88e82..e36b3f9f8 100644 --- a/doc/fr/weechat_relay_protocol.fr.adoc +++ b/doc/fr/weechat_relay_protocol.fr.adoc @@ -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 ║ ║ ║ ║ .... diff --git a/doc/ja/weechat_relay_protocol.ja.adoc b/doc/ja/weechat_relay_protocol.ja.adoc index 97ed97278..673fef144 100644 --- a/doc/ja/weechat_relay_protocol.ja.adoc +++ b/doc/ja/weechat_relay_protocol.ja.adoc @@ -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 ║ クライアントを切断 ║ ║ ║ ║ ....