Решил тут покопать Protocol Buffer от гугля и посмотреть, как он подойдёт под мои задачи. В целом штука интересная, но одного я никак не могу понять:
Предположим, у меня протокол состоит из трёх частей - приветствие, действие_1 и действие_2, при этом действия могу повторятся сколько угодно раз и в любой последовательности.
Кроме того, в каждом сообщении передаётся требуемое действие и другая служебная информация (например, таймстамп).
В результате можно написать четыре «сообщения»:
message Header
{
required date timestamp = 1;
required string action = 1;
}
message Registartion
{
required string name = 1;
}
message Action1
{
required string data = 1;
}
message Action2
{
required string data = 1;
}
Можно ли как-то сначала проанализировать header и на его основе уже применить парсер для соответствующего действия?