Я читал сообщение в блоге на Anthony Williams website, когда я как-то бродил на примере его библиотеки :: thread, его barber shop example.Как работает этот шаблон?
В ней он имеет ряд через структуры, которые не унаследовать от всего:
struct start_haircut {};
struct no_room {};
struct shop_closed {};
Он имеет receive
функцию, что цепи .match()
шаблон к:
jss::actor::receive()
.match<start_haircut>(
[&](start_haircut){
//...
})
.match<no_room>(
[&](no_room){
//...
})
.match<shop_closed>(
[&](shop_closed)
{
//...
});
Функция receive возвращает объект unspecified_message_receiver
, который указывает тип (shop_closed
и т. д.) и обработчик лямбда.
Что входит в функции receive
и match
? Как взаимодействуют функции receive
и match
?
Это интересный шаблон, который может иметь приложения за пределами модели потоковой передачи, в которой он используется. Меня это интересует для связи через tcp между датчиками, где переносятся небольшие пакеты сообщений и небольшие объемы данных.
Похоже, что некоторые формы отправки тегов. Кроме того, я бы сказал, что это скорее «шаблон реализации», чем «шаблон дизайна». –
Если есть лучший тег, тогда не стесняйтесь его менять. –