Пример #1
0
        int deserialize(T &dst, char const *const buffer, int const dataLeft) const
        {
            BinRec const *const bin = (BinRec const *) buffer;
            int const dataLen = ntohs(bin->len);

            if (dataLeft < REC_MINSIZE + dataLen) {
                return 0;
            }
            if (!validator_(*bin)) {
                return -1;
            }
            if (!deserializer_(dst, *bin)) {
                return -1;
            }
            return REC_MINSIZE + dataLen;
        }
Пример #2
0
 void operator()(T const& t) const
 {
   validator_(t);
 }