Сериализация и десериализация битового поля

Мне вручили документ, который определяет набор сообщений, которые передаются и принимаются по последовательному каналу связи. Я хотел бы принимать входящие сообщения и десериализовать их в объекты, а также сериализовать свои исходящие сообщения. Кодирование по сети установлено и не может быть изменено и состоит из различных битовых полей в заголовке и различных полезных данных, например,

class Message{
int msg_num : 7
int dest_addr : 4
bool SRR : 1
bool IDE : 1
int source_addr : 6
//... and so on...
}

Я рассмотрел использование protobufs , но оказалось, что их метод varint кодировка установлена. Я также рассмотрел boost-сериализацию , но, судя по тому, что я читал до сих пор, не совсем понятно, как там выполняется кодирование.

Итак, несколько вопросов:

  • Могу ли я использовать форсированную сериализацию для преобразования моего байтового потока в объекты?
  • С целью , а не необходимости катить свои собственные процедуры для сериализации (обслуживание беспорядок), существует ли предпочтительный механизм для выполнения моей задачи (например, пользовательский архив ускоренной сериализации, другой метод, который я не обнаружил)

6
задан jdt141 9 February 2012 в 01:46
поделиться