![]() |
PIP 5.9.0
Platform-Independent Primitives
|
Связывает ключи пакетов с обработчиками и десериализует полезную нагрузку перед вызовом. Подробнее...
#include <piparsehelper.h>
Открытые члены | |
| PIParseHelper () | |
| Создает пустой вспомогательный парсер. | |
| void | assign (Key key, std::function< void()> func) |
| Связывает ключ "key" с callback-функцией "func" без аргументов полезной нагрузки. | |
| template<typename T> | |
| void | assign (Key key, std::function< void(const T &)> func) |
| Связывает ключ "key" с callback-функцией "func" с одним десериализуемым аргументом. | |
| template<typename O> | |
| void | assign (Key key, O *obj, void(O::*member_func)()) |
| Связывает ключ "key" с методом объекта "obj" без аргументов. | |
| template<typename T, typename O> | |
| void | assign (Key key, O *obj, void(O::*member_func)(const T &)) |
| Связывает ключ "key" с методом объекта "obj" с одним десериализуемым аргументом. | |
| template<typename L> | |
| void | assign (Key key, L func) |
| Связывает ключ "key" с функтором или lambda с нулем или одним аргументом. | |
| void | parse (Key key, PIByteArray ba) |
| Десериализует полезную нагрузку "ba" и вызывает обработчики, назначенные ключу "key". | |
Связывает ключи пакетов с обработчиками и десериализует полезную нагрузку перед вызовом.
PIParseHelper помогает заменить ручную диспетчеризацию пакетов через switch набором вызовов assign(). Обработчиками могут быть обычные callback-функции, функторы или методы объекта. Тип полезной нагрузки восстанавливается из PIByteArray по сигнатуре выбранного обработчика.
Пример: