looks like magic number (it's better to use sizeof( <type> ) * 3) but it's better to create 
public:
    static const size_t message_header_size = sizeof( uint32_t ) * 3;