Exemple #1
0
char *BencArray::Encode() const
{
    str::Str<char> bytes(256);
    bytes.Append('l');
    for (size_t i = 0; i < Length(); i++) {
        BencObj *val = value.At(i);
        if (val)
            bytes.AppendAndFree(val->Encode());
    }
    bytes.Append('e');
    return bytes.StealData();
}
Exemple #2
0
char *BencDict::Encode() const
{
    str::Str<char> bytes(256);
    bytes.Append('d');
    for (size_t i = 0; i < Length(); i++) {
        char *key = keys.At(i);
        BencObj *val = values.At(i);
        if (key && val) {
            bytes.AppendFmt("%" PRIuPTR ":%s", str::Len(key), key);
            bytes.AppendAndFree(val->Encode());
        }
    }
    bytes.Append('e');
    return bytes.StealData();
}