Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(983)

Unified Diff: third_party/WebKit/Source/wtf/Functional.h

Issue 1436153002: Apply clang-format with Chromium-style without column limit. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/WebKit/Source/wtf/Forward.h ('k') | third_party/WebKit/Source/wtf/FunctionalTest.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/wtf/Functional.h
diff --git a/third_party/WebKit/Source/wtf/Functional.h b/third_party/WebKit/Source/wtf/Functional.h
index 9475043956c77a8f96836a2c080098c858075ad1..edb7ea8b98b6c586f855c4030b60decef9dc535d 100644
--- a/third_party/WebKit/Source/wtf/Functional.h
+++ b/third_party/WebKit/Source/wtf/Functional.h
@@ -43,285 +43,251 @@ namespace WTF {
// A FunctionWrapper is a class template that can wrap a function pointer or a member function pointer and
// provide a unified interface for calling that function.
-template<typename>
+template <typename>
class FunctionWrapper;
// Bound static functions:
-template<typename R, typename... Params>
-class FunctionWrapper<R(*)(Params...)> {
-public:
- typedef R ResultType;
-
- explicit FunctionWrapper(R(*function)(Params...))
- : m_function(function)
- {
- }
-
- R operator()(Params... params)
- {
- return m_function(params...);
- }
-
-private:
- R(*m_function)(Params...);
+template <typename R, typename... Params>
+class FunctionWrapper<R (*)(Params...)> {
+ public:
+ typedef R ResultType;
+
+ explicit FunctionWrapper(R (*function)(Params...))
+ : m_function(function) {
+ }
+
+ R operator()(Params... params) {
+ return m_function(params...);
+ }
+
+ private:
+ R (*m_function)
+ (Params...);
};
// Bound member functions:
-template<typename R, typename C, typename... Params>
-class FunctionWrapper<R(C::*)(Params...)> {
-public:
- typedef R ResultType;
-
- explicit FunctionWrapper(R(C::*function)(Params...))
- : m_function(function)
- {
- }
-
- R operator()(C* c, Params... params)
- {
- return (c->*m_function)(params...);
- }
-
- R operator()(PassOwnPtr<C> c, Params... params)
- {
- return (c.get()->*m_function)(params...);
- }
-
- R operator()(const WeakPtr<C>& c, Params... params)
- {
- C* obj = c.get();
- if (!obj)
- return R();
- return (obj->*m_function)(params...);
- }
-
-private:
- R(C::*m_function)(Params...);
+template <typename R, typename C, typename... Params>
+class FunctionWrapper<R (C::*)(Params...)> {
+ public:
+ typedef R ResultType;
+
+ explicit FunctionWrapper(R (C::*function)(Params...))
+ : m_function(function) {
+ }
+
+ R operator()(C* c, Params... params) {
+ return (c->*m_function)(params...);
+ }
+
+ R operator()(PassOwnPtr<C> c, Params... params) {
+ return (c.get()->*m_function)(params...);
+ }
+
+ R operator()(const WeakPtr<C>& c, Params... params) {
+ C* obj = c.get();
+ if (!obj)
+ return R();
+ return (obj->*m_function)(params...);
+ }
+
+ private:
+ R (C::*m_function)
+ (Params...);
};
-template<typename T> struct ParamStorageTraits {
- typedef T StorageType;
+template <typename T>
+struct ParamStorageTraits {
+ typedef T StorageType;
- static StorageType wrap(const T& value) { return value; }
- static const T& unwrap(const StorageType& value) { return value; }
+ static StorageType wrap(const T& value) { return value; }
+ static const T& unwrap(const StorageType& value) { return value; }
};
-template<typename T> struct ParamStorageTraits<PassRefPtr<T>> {
- typedef RefPtr<T> StorageType;
+template <typename T>
+struct ParamStorageTraits<PassRefPtr<T>> {
+ typedef RefPtr<T> StorageType;
- static StorageType wrap(PassRefPtr<T> value) { return value; }
- static T* unwrap(const StorageType& value) { return value.get(); }
+ static StorageType wrap(PassRefPtr<T> value) { return value; }
+ static T* unwrap(const StorageType& value) { return value.get(); }
};
-template<typename T> struct ParamStorageTraits<RefPtr<T>> {
- typedef RefPtr<T> StorageType;
+template <typename T>
+struct ParamStorageTraits<RefPtr<T>> {
+ typedef RefPtr<T> StorageType;
- static StorageType wrap(RefPtr<T> value) { return value.release(); }
- static T* unwrap(const StorageType& value) { return value.get(); }
+ static StorageType wrap(RefPtr<T> value) { return value.release(); }
+ static T* unwrap(const StorageType& value) { return value.get(); }
};
-template<typename> class RetainPtr;
+template <typename>
+class RetainPtr;
-template<typename T> struct ParamStorageTraits<RetainPtr<T>> {
- typedef RetainPtr<T> StorageType;
+template <typename T>
+struct ParamStorageTraits<RetainPtr<T>> {
+ typedef RetainPtr<T> StorageType;
- static StorageType wrap(const RetainPtr<T>& value) { return value; }
- static typename RetainPtr<T>::PtrType unwrap(const StorageType& value) { return value.get(); }
+ static StorageType wrap(const RetainPtr<T>& value) { return value; }
+ static typename RetainPtr<T>::PtrType unwrap(const StorageType& value) { return value.get(); }
};
-template<typename>
+template <typename>
class Function;
-template<typename R, typename... Args>
+template <typename R, typename... Args>
class Function<R(Args...)> {
- WTF_MAKE_NONCOPYABLE(Function);
-public:
- virtual ~Function() { }
- virtual R operator()(Args... args) = 0;
-protected:
- Function() = default;
+ WTF_MAKE_NONCOPYABLE(Function);
+
+ public:
+ virtual ~Function() {}
+ virtual R operator()(Args... args) = 0;
+
+ protected:
+ Function() = default;
};
-template<int boundArgsCount, typename FunctionWrapper, typename FunctionType>
+template <int boundArgsCount, typename FunctionWrapper, typename FunctionType>
class PartBoundFunctionImpl;
// Specialization for unbound functions.
-template<typename FunctionWrapper, typename R, typename... UnboundParams>
+template <typename FunctionWrapper, typename R, typename... UnboundParams>
class PartBoundFunctionImpl<0, FunctionWrapper, R(UnboundParams...)> final : public Function<typename FunctionWrapper::ResultType(UnboundParams...)> {
-public:
- PartBoundFunctionImpl(FunctionWrapper functionWrapper)
- : m_functionWrapper(functionWrapper)
- {
- }
-
- typename FunctionWrapper::ResultType operator()(UnboundParams... params) override
- {
- return m_functionWrapper(params...);
- }
-
-private:
- FunctionWrapper m_functionWrapper;
+ public:
+ PartBoundFunctionImpl(FunctionWrapper functionWrapper)
+ : m_functionWrapper(functionWrapper) {
+ }
+
+ typename FunctionWrapper::ResultType operator()(UnboundParams... params) override {
+ return m_functionWrapper(params...);
+ }
+
+ private:
+ FunctionWrapper m_functionWrapper;
};
-template<typename FunctionWrapper, typename R, typename P1, typename... UnboundParams>
+template <typename FunctionWrapper, typename R, typename P1, typename... UnboundParams>
class PartBoundFunctionImpl<1, FunctionWrapper, R(P1, UnboundParams...)> final : public Function<typename FunctionWrapper::ResultType(UnboundParams...)> {
-public:
- PartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1)
- : m_functionWrapper(functionWrapper)
- , m_p1(ParamStorageTraits<P1>::wrap(p1))
- {
- }
-
- typename FunctionWrapper::ResultType operator()(UnboundParams... params) override
- {
- return m_functionWrapper(ParamStorageTraits<P1>::unwrap(m_p1), params...);
- }
-
-private:
- FunctionWrapper m_functionWrapper;
- typename ParamStorageTraits<P1>::StorageType m_p1;
+ public:
+ PartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1)
+ : m_functionWrapper(functionWrapper), m_p1(ParamStorageTraits<P1>::wrap(p1)) {
+ }
+
+ typename FunctionWrapper::ResultType operator()(UnboundParams... params) override {
+ return m_functionWrapper(ParamStorageTraits<P1>::unwrap(m_p1), params...);
+ }
+
+ private:
+ FunctionWrapper m_functionWrapper;
+ typename ParamStorageTraits<P1>::StorageType m_p1;
};
-template<typename FunctionWrapper, typename R, typename P1, typename P2, typename... UnboundParams>
+template <typename FunctionWrapper, typename R, typename P1, typename P2, typename... UnboundParams>
class PartBoundFunctionImpl<2, FunctionWrapper, R(P1, P2, UnboundParams...)> final : public Function<typename FunctionWrapper::ResultType(UnboundParams...)> {
-public:
- PartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, const P2& p2)
- : m_functionWrapper(functionWrapper)
- , m_p1(ParamStorageTraits<P1>::wrap(p1))
- , m_p2(ParamStorageTraits<P2>::wrap(p2))
- {
- }
-
- typename FunctionWrapper::ResultType operator()(UnboundParams... params) override
- {
- return m_functionWrapper(ParamStorageTraits<P1>::unwrap(m_p1), ParamStorageTraits<P2>::unwrap(m_p2), params...);
- }
-
-private:
- FunctionWrapper m_functionWrapper;
- typename ParamStorageTraits<P1>::StorageType m_p1;
- typename ParamStorageTraits<P2>::StorageType m_p2;
+ public:
+ PartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, const P2& p2)
+ : m_functionWrapper(functionWrapper), m_p1(ParamStorageTraits<P1>::wrap(p1)), m_p2(ParamStorageTraits<P2>::wrap(p2)) {
+ }
+
+ typename FunctionWrapper::ResultType operator()(UnboundParams... params) override {
+ return m_functionWrapper(ParamStorageTraits<P1>::unwrap(m_p1), ParamStorageTraits<P2>::unwrap(m_p2), params...);
+ }
+
+ private:
+ FunctionWrapper m_functionWrapper;
+ typename ParamStorageTraits<P1>::StorageType m_p1;
+ typename ParamStorageTraits<P2>::StorageType m_p2;
};
-template<typename FunctionWrapper, typename R, typename P1, typename P2, typename P3, typename... UnboundParams>
+template <typename FunctionWrapper, typename R, typename P1, typename P2, typename P3, typename... UnboundParams>
class PartBoundFunctionImpl<3, FunctionWrapper, R(P1, P2, P3, UnboundParams...)> final : public Function<typename FunctionWrapper::ResultType(UnboundParams...)> {
-public:
- PartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, const P2& p2, const P3& p3)
- : m_functionWrapper(functionWrapper)
- , m_p1(ParamStorageTraits<P1>::wrap(p1))
- , m_p2(ParamStorageTraits<P2>::wrap(p2))
- , m_p3(ParamStorageTraits<P3>::wrap(p3))
- {
- }
-
- typename FunctionWrapper::ResultType operator()(UnboundParams... params) override
- {
- return m_functionWrapper(ParamStorageTraits<P1>::unwrap(m_p1), ParamStorageTraits<P2>::unwrap(m_p2), ParamStorageTraits<P3>::unwrap(m_p3), params...);
- }
-
-private:
- FunctionWrapper m_functionWrapper;
- typename ParamStorageTraits<P1>::StorageType m_p1;
- typename ParamStorageTraits<P2>::StorageType m_p2;
- typename ParamStorageTraits<P3>::StorageType m_p3;
+ public:
+ PartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, const P2& p2, const P3& p3)
+ : m_functionWrapper(functionWrapper), m_p1(ParamStorageTraits<P1>::wrap(p1)), m_p2(ParamStorageTraits<P2>::wrap(p2)), m_p3(ParamStorageTraits<P3>::wrap(p3)) {
+ }
+
+ typename FunctionWrapper::ResultType operator()(UnboundParams... params) override {
+ return m_functionWrapper(ParamStorageTraits<P1>::unwrap(m_p1), ParamStorageTraits<P2>::unwrap(m_p2), ParamStorageTraits<P3>::unwrap(m_p3), params...);
+ }
+
+ private:
+ FunctionWrapper m_functionWrapper;
+ typename ParamStorageTraits<P1>::StorageType m_p1;
+ typename ParamStorageTraits<P2>::StorageType m_p2;
+ typename ParamStorageTraits<P3>::StorageType m_p3;
};
-template<typename FunctionWrapper, typename R, typename P1, typename P2, typename P3, typename P4, typename... UnboundParams>
+template <typename FunctionWrapper, typename R, typename P1, typename P2, typename P3, typename P4, typename... UnboundParams>
class PartBoundFunctionImpl<4, FunctionWrapper, R(P1, P2, P3, P4, UnboundParams...)> final : public Function<typename FunctionWrapper::ResultType(UnboundParams...)> {
-public:
- PartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, const P2& p2, const P3& p3, const P4& p4)
- : m_functionWrapper(functionWrapper)
- , m_p1(ParamStorageTraits<P1>::wrap(p1))
- , m_p2(ParamStorageTraits<P2>::wrap(p2))
- , m_p3(ParamStorageTraits<P3>::wrap(p3))
- , m_p4(ParamStorageTraits<P4>::wrap(p4))
- {
- }
-
- typename FunctionWrapper::ResultType operator()(UnboundParams... params) override
- {
- return m_functionWrapper(ParamStorageTraits<P1>::unwrap(m_p1), ParamStorageTraits<P2>::unwrap(m_p2), ParamStorageTraits<P3>::unwrap(m_p3), ParamStorageTraits<P4>::unwrap(m_p4), params...);
- }
-
-private:
- FunctionWrapper m_functionWrapper;
- typename ParamStorageTraits<P1>::StorageType m_p1;
- typename ParamStorageTraits<P2>::StorageType m_p2;
- typename ParamStorageTraits<P3>::StorageType m_p3;
- typename ParamStorageTraits<P4>::StorageType m_p4;
+ public:
+ PartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, const P2& p2, const P3& p3, const P4& p4)
+ : m_functionWrapper(functionWrapper), m_p1(ParamStorageTraits<P1>::wrap(p1)), m_p2(ParamStorageTraits<P2>::wrap(p2)), m_p3(ParamStorageTraits<P3>::wrap(p3)), m_p4(ParamStorageTraits<P4>::wrap(p4)) {
+ }
+
+ typename FunctionWrapper::ResultType operator()(UnboundParams... params) override {
+ return m_functionWrapper(ParamStorageTraits<P1>::unwrap(m_p1), ParamStorageTraits<P2>::unwrap(m_p2), ParamStorageTraits<P3>::unwrap(m_p3), ParamStorageTraits<P4>::unwrap(m_p4), params...);
+ }
+
+ private:
+ FunctionWrapper m_functionWrapper;
+ typename ParamStorageTraits<P1>::StorageType m_p1;
+ typename ParamStorageTraits<P2>::StorageType m_p2;
+ typename ParamStorageTraits<P3>::StorageType m_p3;
+ typename ParamStorageTraits<P4>::StorageType m_p4;
};
-template<typename FunctionWrapper, typename R, typename P1, typename P2, typename P3, typename P4, typename P5, typename... UnboundParams>
+template <typename FunctionWrapper, typename R, typename P1, typename P2, typename P3, typename P4, typename P5, typename... UnboundParams>
class PartBoundFunctionImpl<5, FunctionWrapper, R(P1, P2, P3, P4, P5, UnboundParams...)> final : public Function<typename FunctionWrapper::ResultType(UnboundParams...)> {
-public:
- PartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, const P2& p2, const P3& p3, const P4& p4, const P5& p5)
- : m_functionWrapper(functionWrapper)
- , m_p1(ParamStorageTraits<P1>::wrap(p1))
- , m_p2(ParamStorageTraits<P2>::wrap(p2))
- , m_p3(ParamStorageTraits<P3>::wrap(p3))
- , m_p4(ParamStorageTraits<P4>::wrap(p4))
- , m_p5(ParamStorageTraits<P5>::wrap(p5))
- {
- }
-
- typename FunctionWrapper::ResultType operator()(UnboundParams... params) override
- {
- return m_functionWrapper(ParamStorageTraits<P1>::unwrap(m_p1), ParamStorageTraits<P2>::unwrap(m_p2), ParamStorageTraits<P3>::unwrap(m_p3), ParamStorageTraits<P4>::unwrap(m_p4), ParamStorageTraits<P5>::unwrap(m_p5), params...);
- }
-
-private:
- FunctionWrapper m_functionWrapper;
- typename ParamStorageTraits<P1>::StorageType m_p1;
- typename ParamStorageTraits<P2>::StorageType m_p2;
- typename ParamStorageTraits<P3>::StorageType m_p3;
- typename ParamStorageTraits<P4>::StorageType m_p4;
- typename ParamStorageTraits<P5>::StorageType m_p5;
+ public:
+ PartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, const P2& p2, const P3& p3, const P4& p4, const P5& p5)
+ : m_functionWrapper(functionWrapper), m_p1(ParamStorageTraits<P1>::wrap(p1)), m_p2(ParamStorageTraits<P2>::wrap(p2)), m_p3(ParamStorageTraits<P3>::wrap(p3)), m_p4(ParamStorageTraits<P4>::wrap(p4)), m_p5(ParamStorageTraits<P5>::wrap(p5)) {
+ }
+
+ typename FunctionWrapper::ResultType operator()(UnboundParams... params) override {
+ return m_functionWrapper(ParamStorageTraits<P1>::unwrap(m_p1), ParamStorageTraits<P2>::unwrap(m_p2), ParamStorageTraits<P3>::unwrap(m_p3), ParamStorageTraits<P4>::unwrap(m_p4), ParamStorageTraits<P5>::unwrap(m_p5), params...);
+ }
+
+ private:
+ FunctionWrapper m_functionWrapper;
+ typename ParamStorageTraits<P1>::StorageType m_p1;
+ typename ParamStorageTraits<P2>::StorageType m_p2;
+ typename ParamStorageTraits<P3>::StorageType m_p3;
+ typename ParamStorageTraits<P4>::StorageType m_p4;
+ typename ParamStorageTraits<P5>::StorageType m_p5;
};
-template<typename FunctionWrapper, typename R, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename... UnboundParams>
+template <typename FunctionWrapper, typename R, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename... UnboundParams>
class PartBoundFunctionImpl<6, FunctionWrapper, R(P1, P2, P3, P4, P5, P6, UnboundParams...)> final : public Function<typename FunctionWrapper::ResultType(UnboundParams...)> {
-public:
- PartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, const P2& p2, const P3& p3, const P4& p4, const P5& p5, const P6& p6)
- : m_functionWrapper(functionWrapper)
- , m_p1(ParamStorageTraits<P1>::wrap(p1))
- , m_p2(ParamStorageTraits<P2>::wrap(p2))
- , m_p3(ParamStorageTraits<P3>::wrap(p3))
- , m_p4(ParamStorageTraits<P4>::wrap(p4))
- , m_p5(ParamStorageTraits<P5>::wrap(p5))
- , m_p6(ParamStorageTraits<P6>::wrap(p6))
- {
- }
-
- typename FunctionWrapper::ResultType operator()(UnboundParams... params) override
- {
- return m_functionWrapper(ParamStorageTraits<P1>::unwrap(m_p1), ParamStorageTraits<P2>::unwrap(m_p2), ParamStorageTraits<P3>::unwrap(m_p3), ParamStorageTraits<P4>::unwrap(m_p4), ParamStorageTraits<P5>::unwrap(m_p5), ParamStorageTraits<P6>::unwrap(m_p6), params...);
- }
-
-private:
- FunctionWrapper m_functionWrapper;
- typename ParamStorageTraits<P1>::StorageType m_p1;
- typename ParamStorageTraits<P2>::StorageType m_p2;
- typename ParamStorageTraits<P3>::StorageType m_p3;
- typename ParamStorageTraits<P4>::StorageType m_p4;
- typename ParamStorageTraits<P5>::StorageType m_p5;
- typename ParamStorageTraits<P6>::StorageType m_p6;
+ public:
+ PartBoundFunctionImpl(FunctionWrapper functionWrapper, const P1& p1, const P2& p2, const P3& p3, const P4& p4, const P5& p5, const P6& p6)
+ : m_functionWrapper(functionWrapper), m_p1(ParamStorageTraits<P1>::wrap(p1)), m_p2(ParamStorageTraits<P2>::wrap(p2)), m_p3(ParamStorageTraits<P3>::wrap(p3)), m_p4(ParamStorageTraits<P4>::wrap(p4)), m_p5(ParamStorageTraits<P5>::wrap(p5)), m_p6(ParamStorageTraits<P6>::wrap(p6)) {
+ }
+
+ typename FunctionWrapper::ResultType operator()(UnboundParams... params) override {
+ return m_functionWrapper(ParamStorageTraits<P1>::unwrap(m_p1), ParamStorageTraits<P2>::unwrap(m_p2), ParamStorageTraits<P3>::unwrap(m_p3), ParamStorageTraits<P4>::unwrap(m_p4), ParamStorageTraits<P5>::unwrap(m_p5), ParamStorageTraits<P6>::unwrap(m_p6), params...);
+ }
+
+ private:
+ FunctionWrapper m_functionWrapper;
+ typename ParamStorageTraits<P1>::StorageType m_p1;
+ typename ParamStorageTraits<P2>::StorageType m_p2;
+ typename ParamStorageTraits<P3>::StorageType m_p3;
+ typename ParamStorageTraits<P4>::StorageType m_p4;
+ typename ParamStorageTraits<P5>::StorageType m_p5;
+ typename ParamStorageTraits<P6>::StorageType m_p6;
};
-template<typename... UnboundArgs, typename FunctionType, typename... BoundArgs>
-PassOwnPtr<Function<typename FunctionWrapper<FunctionType>::ResultType(UnboundArgs...)>> bind(FunctionType function, const BoundArgs&... boundArgs)
-{
- const int boundArgsCount = sizeof...(BoundArgs);
- using BoundFunctionType = PartBoundFunctionImpl<boundArgsCount, FunctionWrapper<FunctionType>, typename FunctionWrapper<FunctionType>::ResultType(BoundArgs..., UnboundArgs...)>;
- return adoptPtr(new BoundFunctionType(FunctionWrapper<FunctionType>(function), boundArgs...));
+template <typename... UnboundArgs, typename FunctionType, typename... BoundArgs>
+PassOwnPtr<Function<typename FunctionWrapper<FunctionType>::ResultType(UnboundArgs...)>> bind(FunctionType function, const BoundArgs&... boundArgs) {
+ const int boundArgsCount = sizeof...(BoundArgs);
+ using BoundFunctionType = PartBoundFunctionImpl<boundArgsCount, FunctionWrapper<FunctionType>, typename FunctionWrapper<FunctionType>::ResultType(BoundArgs..., UnboundArgs...)>;
+ return adoptPtr(new BoundFunctionType(FunctionWrapper<FunctionType>(function), boundArgs...));
}
typedef Function<void()> Closure;
-
}
using WTF::Function;
using WTF::bind;
using WTF::Closure;
-#endif // WTF_Functional_h
+#endif // WTF_Functional_h
« no previous file with comments | « third_party/WebKit/Source/wtf/Forward.h ('k') | third_party/WebKit/Source/wtf/FunctionalTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698