summaryrefslogtreecommitdiffstats
path: root/third_party/cacheinvalidation/overrides
diff options
context:
space:
mode:
authorakalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-13 02:04:22 +0000
committerakalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-13 02:04:22 +0000
commit5bfa2566e4d2cfbf651df5bb7b76177d3429ae61 (patch)
treee6f6b0d08e2b7ce77ae01cad4ec5c0699cb15d7d /third_party/cacheinvalidation/overrides
parent7a3a965742838666dbfb3665783d08f3976f1d6c (diff)
downloadchromium_src-5bfa2566e4d2cfbf651df5bb7b76177d3429ae61.zip
chromium_src-5bfa2566e4d2cfbf651df5bb7b76177d3429ae61.tar.gz
chromium_src-5bfa2566e4d2cfbf651df5bb7b76177d3429ae61.tar.bz2
[Sync] Rolled cache invalidation API to @49.
Made changes to reflect API changes. Added more partially-applied callback implementations. Added more needed includes. BUG=58556 TEST=Existing unit tests Review URL: http://codereview.chromium.org/3665003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62369 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'third_party/cacheinvalidation/overrides')
-rw-r--r--third_party/cacheinvalidation/overrides/google/cacheinvalidation/callback.h60
-rw-r--r--third_party/cacheinvalidation/overrides/google/cacheinvalidation/gmock.h10
-rw-r--r--third_party/cacheinvalidation/overrides/google/cacheinvalidation/hash_map.h16
-rw-r--r--third_party/cacheinvalidation/overrides/google/cacheinvalidation/md5.h18
-rw-r--r--third_party/cacheinvalidation/overrides/google/cacheinvalidation/scoped_ptr.h16
5 files changed, 120 insertions, 0 deletions
diff --git a/third_party/cacheinvalidation/overrides/google/cacheinvalidation/callback.h b/third_party/cacheinvalidation/overrides/google/cacheinvalidation/callback.h
index d0ec702..5f41f64 100644
--- a/third_party/cacheinvalidation/overrides/google/cacheinvalidation/callback.h
+++ b/third_party/cacheinvalidation/overrides/google/cacheinvalidation/callback.h
@@ -139,6 +139,46 @@ class TwoArgCallbackRunner : public CallbackRunner<Tuple0> {
typename internal::remove_reference<Arg2>::type arg2_;
};
+template <class T, typename Arg1, typename Arg2>
+class TwoArgOnePartialCallbackRunner : public CallbackRunner<Tuple1<Arg2> > {
+ public:
+ TwoArgOnePartialCallbackRunner(T* obj, void (T::*meth)(Arg1, Arg2),
+ Arg1 arg1)
+ : obj_(obj), meth_(meth), arg1_(arg1) {}
+
+ virtual ~TwoArgOnePartialCallbackRunner() {}
+
+ virtual void RunWithParams(const Tuple1<Arg2>& params) {
+ (obj_->*meth_)(arg1_, params.a);
+ }
+
+ private:
+ T* obj_;
+ void (T::*meth_)(Arg1, Arg2);
+ typename internal::remove_reference<Arg1>::type arg1_;
+};
+
+template <class T, typename Arg1, typename Arg2, typename Arg3>
+class ThreeArgCallbackRunner : public CallbackRunner<Tuple0> {
+ public:
+ ThreeArgCallbackRunner(T* obj, void (T::*meth)(Arg1, Arg2, Arg3),
+ Arg1 arg1, Arg2 arg2, Arg3 arg3)
+ : obj_(obj), meth_(meth), arg1_(arg1), arg2_(arg2), arg3_(arg3) {}
+
+ virtual ~ThreeArgCallbackRunner() {}
+
+ virtual void RunWithParams(const Tuple0& params) {
+ (obj_->*meth_)(arg1_, arg2_, arg3_);
+ }
+
+ private:
+ T* obj_;
+ void (T::*meth_)(Arg1, Arg2, Arg3);
+ typename internal::remove_reference<Arg1>::type arg1_;
+ typename internal::remove_reference<Arg2>::type arg2_;
+ typename internal::remove_reference<Arg3>::type arg3_;
+};
+
// Then route the appropriate overloads of NewPermanentCallback() to
// use the above.
@@ -177,6 +217,26 @@ typename Callback0::Type* NewPermanentCallback(
return new TwoArgCallbackRunner<T1, Arg1, Arg2>(object, method, arg1, arg2);
}
+template <class T1, class T2, typename Arg1, typename Arg2>
+typename Callback1<Arg2>::Type* NewPermanentCallback(
+ T1* object,
+ void (T2::*method)(Arg1, Arg2),
+ typename internal::Identity<Arg1>::type arg1) {
+ return new TwoArgOnePartialCallbackRunner<T1, Arg1, Arg2>(
+ object, method, arg1);
+}
+
+template <class T1, class T2, typename Arg1, typename Arg2, typename Arg3>
+typename Callback0::Type* NewPermanentCallback(
+ T1* object,
+ void (T2::*method)(Arg1, Arg2, Arg3),
+ typename internal::Identity<Arg1>::type arg1,
+ typename internal::Identity<Arg2>::type arg2,
+ typename internal::Identity<Arg3>::type arg3) {
+ return new ThreeArgCallbackRunner<T1, Arg1, Arg2, Arg3>
+ (object, method, arg1, arg2, arg3);
+}
+
} // namespace invalidation
#endif // GOOGLE_CACHEINVALIDATION_CALLBACK_H_
diff --git a/third_party/cacheinvalidation/overrides/google/cacheinvalidation/gmock.h b/third_party/cacheinvalidation/overrides/google/cacheinvalidation/gmock.h
new file mode 100644
index 0000000..8afb9fb
--- /dev/null
+++ b/third_party/cacheinvalidation/overrides/google/cacheinvalidation/gmock.h
@@ -0,0 +1,10 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef GOOGLE_CACHEINVALIDATION_GMOCK_H_
+#define GOOGLE_CACHEINVALIDATION_GMOCK_H_
+
+#include "testing/gmock/include/gmock/gmock.h"
+
+#endif // GOOGLE_CACHEINVALIDATION_GMOCK_H_
diff --git a/third_party/cacheinvalidation/overrides/google/cacheinvalidation/hash_map.h b/third_party/cacheinvalidation/overrides/google/cacheinvalidation/hash_map.h
new file mode 100644
index 0000000..3dbe724
--- /dev/null
+++ b/third_party/cacheinvalidation/overrides/google/cacheinvalidation/hash_map.h
@@ -0,0 +1,16 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef GOOGLE_CACHEINVALIDATION_HASH_MAP_H_
+#define GOOGLE_CACHEINVALIDATION_HASH_MAP_H_
+
+#include "base/hash_tables.h"
+
+namespace invalidation {
+
+using base::hash_map;
+
+} // namespace invalidation
+
+#endif // GOOGLE_CACHEINVALIDATION_HASH_MAP_H_
diff --git a/third_party/cacheinvalidation/overrides/google/cacheinvalidation/md5.h b/third_party/cacheinvalidation/overrides/google/cacheinvalidation/md5.h
new file mode 100644
index 0000000..5627db1
--- /dev/null
+++ b/third_party/cacheinvalidation/overrides/google/cacheinvalidation/md5.h
@@ -0,0 +1,18 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef GOOGLE_CACHEINVALIDATION_MD5_H_
+#define GOOGLE_CACHEINVALIDATION_MD5_H_
+
+#include "base/md5.h"
+
+namespace invalidation {
+
+inline void ComputeMd5Digest(const string& data, string* digest) {
+ *digest = MD5String(data);
+}
+
+} // namespace invalidation
+
+#endif // GOOGLE_CACHEINVALIDATION_MD5_H_
diff --git a/third_party/cacheinvalidation/overrides/google/cacheinvalidation/scoped_ptr.h b/third_party/cacheinvalidation/overrides/google/cacheinvalidation/scoped_ptr.h
new file mode 100644
index 0000000..021d2dd
--- /dev/null
+++ b/third_party/cacheinvalidation/overrides/google/cacheinvalidation/scoped_ptr.h
@@ -0,0 +1,16 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef GOOGLE_CACHEINVALIDATION_SCOPED_PTR_H_
+#define GOOGLE_CACHEINVALIDATION_SCOPED_PTR_H_
+
+#include "base/scoped_ptr.h"
+
+namespace invalidation {
+
+using ::scoped_ptr;
+
+} // namespace invalidation
+
+#endif // GOOGLE_CACHEINVALIDATION_SCOPED_PTR_H_