diff options
author | kinaba@chromium.org <kinaba@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-21 07:38:24 +0000 |
---|---|---|
committer | kinaba@chromium.org <kinaba@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-21 07:38:24 +0000 |
commit | 740fe1eb708c775001dda1758ffab6232831febc (patch) | |
tree | 7266f2b1beaca00986219512829f13b1da50d355 | |
parent | d153e6ff6dafc24c3946184c1831538efe946532 (diff) | |
download | chromium_src-740fe1eb708c775001dda1758ffab6232831febc.zip chromium_src-740fe1eb708c775001dda1758ffab6232831febc.tar.gz chromium_src-740fe1eb708c775001dda1758ffab6232831febc.tar.bz2 |
Stop using reinterpret_cast in gdata_wapi_parser.
BUG=none
Review URL: https://chromiumcodereview.appspot.com/11635035
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174354 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/google_apis/gdata_wapi_parser.cc | 24 | ||||
-rw-r--r-- | chrome/browser/google_apis/gdata_wapi_parser.h | 11 |
2 files changed, 18 insertions, 17 deletions
diff --git a/chrome/browser/google_apis/gdata_wapi_parser.cc b/chrome/browser/google_apis/gdata_wapi_parser.cc index 30d47f8..d3fac42 100644 --- a/chrome/browser/google_apis/gdata_wapi_parser.cc +++ b/chrome/browser/google_apis/gdata_wapi_parser.cc @@ -475,16 +475,18 @@ FeedEntry::~FeedEntry() { } // static +template<typename FeedEntryDescendant> void FeedEntry::RegisterJSONConverter( - base::JSONValueConverter<FeedEntry>* converter) { + base::JSONValueConverter<FeedEntryDescendant>* converter) { converter->RegisterStringField(kETagField, &FeedEntry::etag_); - converter->RegisterRepeatedMessage(kAuthorField, &FeedEntry::authors_); - converter->RegisterRepeatedMessage(kLinkField, &FeedEntry::links_); - converter->RegisterRepeatedMessage(kCategoryField, &FeedEntry::categories_); - converter->RegisterCustomField<base::Time>( - kUpdatedField, - &FeedEntry::updated_time_, - &util::GetTimeFromString); + converter->template RegisterRepeatedMessage<Author>( + kAuthorField, &FeedEntry::authors_); + converter->template RegisterRepeatedMessage<Link>( + kLinkField, &FeedEntry::links_); + converter->template RegisterRepeatedMessage<Category>( + kCategoryField, &FeedEntry::categories_); + converter->template RegisterCustomField<base::Time>( + kUpdatedField, &FeedEntry::updated_time_, &util::GetTimeFromString); } //////////////////////////////////////////////////////////////////////////////// @@ -527,8 +529,7 @@ bool ResourceEntry::ParseChangestamp(const base::Value* value, void ResourceEntry::RegisterJSONConverter( base::JSONValueConverter<ResourceEntry>* converter) { // Inherit the parent registrations. - FeedEntry::RegisterJSONConverter( - reinterpret_cast<base::JSONValueConverter<FeedEntry>*>(converter)); + FeedEntry::RegisterJSONConverter(converter); converter->RegisterStringField( kResourceIdField, &ResourceEntry::resource_id_); converter->RegisterStringField(kIDField, &ResourceEntry::id_); @@ -793,8 +794,7 @@ ResourceList::~ResourceList() { void ResourceList::RegisterJSONConverter( base::JSONValueConverter<ResourceList>* converter) { // inheritance - FeedEntry::RegisterJSONConverter( - reinterpret_cast<base::JSONValueConverter<FeedEntry>*>(converter)); + FeedEntry::RegisterJSONConverter(converter); // TODO(zelidrag): Once we figure out where these will be used, we should // check for valid start_index_ and items_per_page_ values. converter->RegisterCustomField<int>( diff --git a/chrome/browser/google_apis/gdata_wapi_parser.h b/chrome/browser/google_apis/gdata_wapi_parser.h index 7a59b5f..bd430df 100644 --- a/chrome/browser/google_apis/gdata_wapi_parser.h +++ b/chrome/browser/google_apis/gdata_wapi_parser.h @@ -336,11 +336,6 @@ class FeedEntry { // List of entry categories. const ScopedVector<Category>& categories() const { return categories_; } - // Registers the mapping between JSON field names and the members in - // this class. - static void RegisterJSONConverter( - base::JSONValueConverter<FeedEntry>* converter); - void set_etag(const std::string& etag) { etag_ = etag; } void set_authors(ScopedVector<Author>* authors) { authors_.swap(*authors); @@ -356,6 +351,12 @@ class FeedEntry { } protected: + // Registers the mapping between JSON field names and the members in + // this class. + template<typename FeedEntryDescendant> + static void RegisterJSONConverter( + base::JSONValueConverter<FeedEntryDescendant>* converter); + std::string etag_; ScopedVector<Author> authors_; ScopedVector<Link> links_; |