Home | History | Annotate | Download | only in tools
      1 // Copyright (c) 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 #include "sync/tools/null_invalidation_state_tracker.h"
      6 
      7 #include "base/base64.h"
      8 #include "base/bind.h"
      9 #include "base/callback.h"
     10 #include "base/location.h"
     11 #include "base/logging.h"
     12 #include "base/task_runner.h"
     13 #include "sync/notifier/invalidation_util.h"
     14 
     15 namespace syncer {
     16 
     17 NullInvalidationStateTracker::NullInvalidationStateTracker() {}
     18 NullInvalidationStateTracker::~NullInvalidationStateTracker() {}
     19 
     20 InvalidationStateMap
     21 NullInvalidationStateTracker::GetAllInvalidationStates() const {
     22   return InvalidationStateMap();
     23 }
     24 
     25 void NullInvalidationStateTracker::SetMaxVersionAndPayload(
     26     const invalidation::ObjectId& id,
     27     int64 max_invalidation_version,
     28     const std::string& payload) {
     29   LOG(INFO) << "Setting max invalidation version for "
     30           << ObjectIdToString(id) << " to " << max_invalidation_version
     31           << " with payload " << payload;
     32 }
     33 
     34 void NullInvalidationStateTracker::Forget(const ObjectIdSet& ids) {
     35   for (ObjectIdSet::const_iterator it = ids.begin(); it != ids.end(); ++it) {
     36     LOG(INFO) << "Forgetting invalidation state for " << ObjectIdToString(*it);
     37   }
     38 }
     39 
     40 void NullInvalidationStateTracker::SetInvalidatorClientId(
     41     const std::string& data) {
     42   LOG(INFO) << "Setting invalidator client ID to: " << data;
     43 }
     44 
     45 std::string NullInvalidationStateTracker::GetInvalidatorClientId() const {
     46   // The caller of this function is probably looking for an ID it can use to
     47   // identify this client as the originator of some notifiable change.  It does
     48   // this so the invalidation server can prevent it from being notified of its
     49   // own changes.  This invalidation state tracker doesn't remember its ID, so
     50   // it can't support this feature.
     51   NOTREACHED() << "This state tracker does not support reflection-blocking";
     52   return std::string();
     53 }
     54 
     55 std::string NullInvalidationStateTracker::GetBootstrapData() const {
     56   return std::string();
     57 }
     58 
     59 void NullInvalidationStateTracker::SetBootstrapData(const std::string& data) {
     60   std::string base64_data;
     61   CHECK(base::Base64Encode(data, &base64_data));
     62   LOG(INFO) << "Setting bootstrap data to: " << base64_data;
     63 }
     64 
     65 void NullInvalidationStateTracker::Clear() {
     66   // We have no members to clear.
     67 }
     68 
     69 void NullInvalidationStateTracker::GenerateAckHandles(
     70     const ObjectIdSet& ids,
     71     const scoped_refptr<base::TaskRunner>& task_runner,
     72     base::Callback<void(const AckHandleMap&)> callback) {
     73   AckHandleMap ack_handles;
     74   for (ObjectIdSet::const_iterator it = ids.begin(); it != ids.end(); ++it) {
     75     ack_handles.insert(std::make_pair(*it, AckHandle::InvalidAckHandle()));
     76   }
     77   CHECK(task_runner->PostTask(FROM_HERE, base::Bind(callback, ack_handles)));
     78 }
     79 
     80 void NullInvalidationStateTracker::Acknowledge(const invalidation::ObjectId& id,
     81                                                const AckHandle& ack_handle) {
     82   LOG(INFO) << "Received ack for " << ObjectIdToString(id);
     83 }
     84 
     85 }  // namespace syncer
     86