void check_starr(int n, const char* A[], const SA& sa) { ASSERT_EQ(n, sa.length()); for (int i = 0; i < n; ++i) { std::string p = sa.get_str(i); ASSERT_EQ(p, A[i]); } for (int i = 0; i < n; ++i) { StringPtr pt = sa.get(i); unsigned slen = strlen(A[i]); ASSERT_EQ(slen, pt->length()); ASSERT_EQ(0, strncmp(A[i], pt->c_str(), slen)); } }
ParsedEntity::ParsedEntity(StringPtr content) { const char * cContent = content->c_str(); shared_ptr<cJSON> jsonPtr(cJSON_Parse(cContent), null_deleter()); json.swap(jsonPtr); if(json && json->string) { key = MakeStringPtr(json->string); } else { key = MakeStringPtr(""); } type = determineType(); }
ParsedEntityPtr ParsedEntity::getObjectValue(StringPtr key) { cJSONPtr ret(cJSON_GetObjectItem(json.get(), key->c_str()), null_deleter()); return MakeParsedEntity(ret); }