Home | History | Annotate | Download | only in notifier
      1 // Copyright 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 //
      5 // Various utilities for dealing with invalidation data types.
      6 
      7 #ifndef SYNC_NOTIFIER_INVALIDATION_UTIL_H_
      8 #define SYNC_NOTIFIER_INVALIDATION_UTIL_H_
      9 
     10 #include <iosfwd>
     11 #include <set>
     12 #include <string>
     13 
     14 #include "base/memory/scoped_ptr.h"
     15 #include "sync/base/sync_export.h"
     16 #include "sync/internal_api/public/base/model_type.h"
     17 
     18 namespace base {
     19 class DictionaryValue;
     20 }  // namespace
     21 
     22 namespace invalidation {
     23 
     24 class Invalidation;
     25 class ObjectId;
     26 
     27 // Gmock print helper
     28 SYNC_EXPORT_PRIVATE void PrintTo(const invalidation::ObjectId& id,
     29                                  std::ostream* os);
     30 
     31 }  // namespace invalidation
     32 
     33 namespace syncer {
     34 
     35 struct SYNC_EXPORT ObjectIdLessThan {
     36   bool operator()(const invalidation::ObjectId& lhs,
     37                   const invalidation::ObjectId& rhs) const;
     38 };
     39 
     40 typedef std::set<invalidation::ObjectId, ObjectIdLessThan> ObjectIdSet;
     41 
     42 SYNC_EXPORT bool RealModelTypeToObjectId(ModelType model_type,
     43                                          invalidation::ObjectId* object_id);
     44 
     45 bool ObjectIdToRealModelType(const invalidation::ObjectId& object_id,
     46                              ModelType* model_type);
     47 
     48 // Caller owns the returned DictionaryValue.
     49 scoped_ptr<base::DictionaryValue> ObjectIdToValue(
     50     const invalidation::ObjectId& object_id);
     51 
     52 bool ObjectIdFromValue(const base::DictionaryValue& value,
     53                        invalidation::ObjectId* out);
     54 
     55 SYNC_EXPORT_PRIVATE std::string ObjectIdToString(
     56     const invalidation::ObjectId& object_id);
     57 
     58 SYNC_EXPORT_PRIVATE ObjectIdSet ModelTypeSetToObjectIdSet(ModelTypeSet models);
     59 ModelTypeSet ObjectIdSetToModelTypeSet(const ObjectIdSet& ids);
     60 
     61 std::string InvalidationToString(
     62     const invalidation::Invalidation& invalidation);
     63 
     64 }  // namespace syncer
     65 
     66 #endif  // SYNC_NOTIFIER_INVALIDATION_UTIL_H_
     67