SSP/README.md

84 lines
4.3 KiB
Markdown
Raw Normal View History

2019-04-24 14:55:01 +03:00
# Спецификация протокола SSP
2013-03-21 14:27:53 +04:00
*Версия 1.2.3*
2013-03-21 14:29:25 +04:00
2019-04-24 14:55:01 +03:00
## Определения
2013-03-21 14:29:25 +04:00
*SSP (SimpleSmokeProtocol)* - простой протокол установления соглашения для
совместного похода до мест разрешенных для курения.
*Вызывающая сторона* - субъект инициирующий запрос
*Вызываемая сторона* - субъект принимающий запрос
2019-04-24 14:55:01 +03:00
## Описание команд протокола
2013-03-21 14:29:25 +04:00
2019-04-24 14:56:15 +03:00
`?` - запрос, инициирующий протокол. Соответствует фразе «Пойдем курить?»
2013-03-21 14:29:25 +04:00
2019-04-24 14:58:13 +03:00
`?X` - запрос, инициирующий протокол идти курить, но с отсрочкой на X минут. Соответствует фразе «Пойдем курить через X минут?»
2019-04-24 14:56:15 +03:00
`!` - ответ на запрос инициирующий запрос, подразумевающий ответное желание идти
2013-03-21 14:29:25 +04:00
курить. Соответствует фразе «Да, пошли»
2019-04-24 14:56:15 +03:00
`#` - ответ на запрос инициирующий запрос, подразумевающий отказ от похода курить.
2013-03-21 14:29:25 +04:00
Соответствует фразе «Нет, не хочу»
2019-04-24 14:58:13 +03:00
`#X` - ответ на запрос инициирующий запрос, подразумевающий отказ от похода курить.
Соответствует фразе «Нет, не хочу, X минут назад курил».
В случае, если точное время определить не представляется возможным, следует использовать
2019-04-24 14:58:13 +03:00
знак `~` («тильда»), подразумевающий неопределённое, но небольшое (до 45 минут) время.
В случае бо́льшего времени, возможно, следует использовать простой негативный
2019-04-24 14:56:15 +03:00
ответ - `#` либо отвечать позитивным ответом - `!`.
2019-04-24 14:58:13 +03:00
`@X` - ответ на запрос инициирующий запрос, подразумевающий ответное желание
идти курить но с отсрочкой на X минут. В случае, если точное время определить
не представляется возможным, следует использовать знак `~` («тильда»), подразумевающий
неопределённое, но небольшое (до 15 минут) время. В случае бо́льшего
2019-04-24 14:58:13 +03:00
времени, следует использовать негативный ответ - `#`. Соответствует фразе «Пошли,
но через X минут.»
2013-03-21 14:29:25 +04:00
2019-04-24 14:58:13 +03:00
`>` - синхронизирующая команда, обозначающая начало исполнения протокола вызывающей стороной. Соответствует фразе «Выхожу!».
2013-03-21 14:29:25 +04:00
2019-04-24 14:58:13 +03:00
`>>` - синхронизирующая команда, обозначающая начало исполнения протокола вызываемой стороной. Соответствует фразе «Я тоже выхожу».
2013-03-21 14:29:25 +04:00
2019-04-24 14:55:01 +03:00
## Пример использования протокола
2013-03-21 14:29:25 +04:00
X - вызывающий
Y - вызываемый
2019-04-24 14:55:01 +03:00
### Пример 1
2013-03-21 14:29:25 +04:00
X: ? («Пойдем курить?»)
Y: ! («Да, пошли»)
X: > («Выхожу!»)
Y: >> («Я тоже выхожу.»)
2019-04-24 14:55:01 +03:00
### Пример 2
2013-03-21 14:29:25 +04:00
X: ? («Пойдем курить?»)
Y: @5 («Пошли, но через 5 минут.»)
Y: ! («Да, пошли»)
X: > («Выхожу!»)
Y: >> («Я тоже выхожу.»)
2019-04-24 14:55:01 +03:00
### Пример 3
2013-03-21 14:29:25 +04:00
X: ? («Пойдем курить?»)
Y: # («Нет, не хочу»)
2019-04-24 14:55:01 +03:00
### Пример 4
X: ? («Пойдем курить?»)
Y: #20 («Нет, не хочу, 20 минут назад курил»)
2019-04-24 14:55:01 +03:00
### Пример 5
X: ? («Пойдем курить?»)
Y: #~ («Нет, не хочу, только что курил»)
2019-04-24 14:55:01 +03:00
### Пример 6
X: ?10 («Пойдем курить через 10 минут?»)
Y: #2 («Нет, не хочу, 2 минуты назад курил»)