b1f0668138
Для бо́льшей гибкости описания
78 lines
3.9 KiB
Markdown
78 lines
3.9 KiB
Markdown
#Спецификация протокола SSP
|
||
|
||
*Версия 1.2.2*
|
||
|
||
##Определения
|
||
|
||
*SSP (SimpleSmokeProtocol)* - простой протокол установления соглашения для
|
||
совместного похода до мест разрешенных для курения.
|
||
|
||
*Вызывающая сторона* - субъект инициирующий запрос
|
||
|
||
*Вызываемая сторона* - субъект принимающий запрос
|
||
|
||
##Описание команд протокола
|
||
|
||
? - запрос, инициирующий протокол. Соответствует фразе «Пойдем курить?»
|
||
|
||
! - ответ на запрос инициирующий запрос, подразумевающий ответное желание идти
|
||
курить. Соответствует фразе «Да, пошли»
|
||
|
||
\# - ответ на запрос инициирующий запрос, подразумевающий отказ от похода курить.
|
||
Соответствует фразе «Нет, не хочу»
|
||
|
||
\#*число* - ответ на запрос инициирующий запрос, подразумевающий отказ от похода курить.
|
||
Соответствует фразе «Нет, не хочу, \*число\* минут назад курил».
|
||
В случае, если точное время определить не представляется возможным, следует использовать
|
||
знак ~ («тильда»), подразумевающий неопределённое, но небольшое (до 45 минут) время.
|
||
В случае бо́льшего времени, возможно, следует использовать простой негативный
|
||
ответ - # либо отвечать позитивным ответом - !.
|
||
|
||
@*число* - ответ на запрос инициирующий запрос, подразумевающий ответное желание
|
||
идти курить но с отсрочкой на \*число\* минут. В случае, если точное время определить
|
||
не представляется возможным, следует использовать знак ~ («тильда»), подразумевающий
|
||
неопределённое, но небольшое (до 15 минут) время. В случае бо́льшего
|
||
времени, следует использовать негативный ответ - #. Соответствует фразе «Пошли,
|
||
но через \*число\* минут.»
|
||
|
||
\> - синхронизирующая команда, обозначающая начало исполнения протокола вызывающей стороной. Соответствует фразе «Выхожу!»
|
||
|
||
\>\> - синхронизирующая команда, обозначающая начало исполнения протокола вызываемой стороной. Соответствует фразе «Я тоже выхожу.»
|
||
|
||
##Пример использования протокола
|
||
|
||
X - вызывающий
|
||
Y - вызываемый
|
||
|
||
###Пример 1
|
||
|
||
X: ? («Пойдем курить?»)
|
||
Y: ! («Да, пошли»)
|
||
X: > («Выхожу!»)
|
||
Y: >> («Я тоже выхожу.»)
|
||
|
||
###Пример 2
|
||
|
||
X: ? («Пойдем курить?»)
|
||
Y: @5 («Пошли, но через 5 минут.»)
|
||
Y: ! («Да, пошли»)
|
||
X: > («Выхожу!»)
|
||
Y: >> («Я тоже выхожу.»)
|
||
|
||
###Пример 3
|
||
|
||
X: ? («Пойдем курить?»)
|
||
Y: # («Нет, не хочу»)
|
||
|
||
###Пример 4
|
||
|
||
X: ? («Пойдем курить?»)
|
||
Y: #20 («Нет, не хочу, 20 минут назад курил»)
|
||
|
||
###Пример 5
|
||
|
||
X: ? («Пойдем курить?»)
|
||
Y: #~ («Нет, не хочу, только что курил»)
|
||
|
||
|