bool rfc2047::decode(const char* in, int n, acl::string* out, const char* to_charset /* = "gb2312" */, bool strip_sp /* = false */, bool addInvalid /* = true */) { rfc2047 rfc(strip_sp, false); rfc.decode_update(in, n); return rfc.decode_finish(to_charset, out, addInvalid); }
bool rfc2047::encode(const char* in, int n, acl::string* out, const char* charset /* = "gb2312" */, char coding /* = 'B' */, bool addCrlf /* = true */) { rfc2047 rfc(false, addCrlf); if (rfc.encode_update(in, n, out, charset, coding) == false) return false; return rfc.encode_finish(out); }
std::set<std::string> presets_items_internal::roles(const relation_t *relation, const object_t &obj) const { // collect existing roles first role_collect_functor::RoleCountMap existingRoles; const std::vector<member_t>::const_iterator mitEnd = relation->members.end(); std::vector<member_t>::const_iterator mit = relation->members.begin(); while((mit = std::find_if(mit, mitEnd, member_t::has_role)) != mitEnd) { existingRoles[mit->role]++; mit++; } std::set<std::string> ret; const presets_item *item = nullptr; relation_preset_functor fc(relation, &item); const std::vector<presets_item_t *>::const_iterator itEnd = items.end(); role_collect_functor rfc(ret, existingRoles, presets_type_mask(obj)); if(std::find_if(items.begin(), itEnd, fc) != itEnd) std::for_each(item->roles.begin(), item->roles.end(), rfc); return ret; }
int main() { if( fv(rfc()) == fv(rfi()) ) fail(__LINE__); _PASS; }