// This file was GENERATED by command: // pump.py callback.h.pump // DO NOT EDIT BY HAND!!! // Copyright 2014 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 MOJO_PUBLIC_CPP_BINDINGS_CALLBACK_H_ #define MOJO_PUBLIC_CPP_BINDINGS_CALLBACK_H_ #include "mojo/public/cpp/bindings/lib/callback_internal.h" #include "mojo/public/cpp/bindings/lib/shared_ptr.h" namespace mojo { template class Callback; template <> class Callback { public: struct Runnable { virtual ~Runnable() {} virtual void Run() const = 0; }; Callback() {} // The Callback assumes ownership of |runnable|. explicit Callback(Runnable* runnable) : sink_(runnable) {} // Any class that is copy-constructable and has a compatible Run method may // be adapted to a Callback using this constructor. template Callback(const Sink& sink) : sink_(new Adapter(sink)) {} void Run() const { if (sink_.get()) sink_->Run(); } private: template struct Adapter : public Runnable { explicit Adapter(const Sink& sink) : sink(sink) {} virtual void Run() const MOJO_OVERRIDE { sink.Run(); } Sink sink; }; internal::SharedPtr sink_; }; template class Callback { public: struct Runnable { virtual ~Runnable() {} virtual void Run( typename internal::Callback_ParamTraits::ForwardType a1) const = 0; }; Callback() {} // The Callback assumes ownership of |runnable|. explicit Callback(Runnable* runnable) : sink_(runnable) {} // Any class that is copy-constructable and has a compatible Run method may // be adapted to a Callback using this constructor. template Callback(const Sink& sink) : sink_(new Adapter(sink)) {} void Run( typename internal::Callback_ParamTraits::ForwardType a1) const { if (sink_.get()) sink_->Run( internal::Callback_Forward(a1)); } private: template struct Adapter : public Runnable { explicit Adapter(const Sink& sink) : sink(sink) {} virtual void Run( typename internal::Callback_ParamTraits::ForwardType a1) const MOJO_OVERRIDE { sink.Run( internal::Callback_Forward(a1)); } Sink sink; }; internal::SharedPtr sink_; }; template class Callback { public: struct Runnable { virtual ~Runnable() {} virtual void Run( typename internal::Callback_ParamTraits::ForwardType a1, typename internal::Callback_ParamTraits::ForwardType a2) const = 0; }; Callback() {} // The Callback assumes ownership of |runnable|. explicit Callback(Runnable* runnable) : sink_(runnable) {} // Any class that is copy-constructable and has a compatible Run method may // be adapted to a Callback using this constructor. template Callback(const Sink& sink) : sink_(new Adapter(sink)) {} void Run( typename internal::Callback_ParamTraits::ForwardType a1, typename internal::Callback_ParamTraits::ForwardType a2) const { if (sink_.get()) sink_->Run( internal::Callback_Forward(a1), internal::Callback_Forward(a2)); } private: template struct Adapter : public Runnable { explicit Adapter(const Sink& sink) : sink(sink) {} virtual void Run( typename internal::Callback_ParamTraits::ForwardType a1, typename internal::Callback_ParamTraits::ForwardType a2) const MOJO_OVERRIDE { sink.Run( internal::Callback_Forward(a1), internal::Callback_Forward(a2)); } Sink sink; }; internal::SharedPtr sink_; }; template class Callback { public: struct Runnable { virtual ~Runnable() {} virtual void Run( typename internal::Callback_ParamTraits::ForwardType a1, typename internal::Callback_ParamTraits::ForwardType a2, typename internal::Callback_ParamTraits::ForwardType a3) const = 0; }; Callback() {} // The Callback assumes ownership of |runnable|. explicit Callback(Runnable* runnable) : sink_(runnable) {} // Any class that is copy-constructable and has a compatible Run method may // be adapted to a Callback using this constructor. template Callback(const Sink& sink) : sink_(new Adapter(sink)) {} void Run( typename internal::Callback_ParamTraits::ForwardType a1, typename internal::Callback_ParamTraits::ForwardType a2, typename internal::Callback_ParamTraits::ForwardType a3) const { if (sink_.get()) sink_->Run( internal::Callback_Forward(a1), internal::Callback_Forward(a2), internal::Callback_Forward(a3)); } private: template struct Adapter : public Runnable { explicit Adapter(const Sink& sink) : sink(sink) {} virtual void Run( typename internal::Callback_ParamTraits::ForwardType a1, typename internal::Callback_ParamTraits::ForwardType a2, typename internal::Callback_ParamTraits::ForwardType a3) const MOJO_OVERRIDE { sink.Run( internal::Callback_Forward(a1), internal::Callback_Forward(a2), internal::Callback_Forward(a3)); } Sink sink; }; internal::SharedPtr sink_; }; template class Callback { public: struct Runnable { virtual ~Runnable() {} virtual void Run( typename internal::Callback_ParamTraits::ForwardType a1, typename internal::Callback_ParamTraits::ForwardType a2, typename internal::Callback_ParamTraits::ForwardType a3, typename internal::Callback_ParamTraits::ForwardType a4) const = 0; }; Callback() {} // The Callback assumes ownership of |runnable|. explicit Callback(Runnable* runnable) : sink_(runnable) {} // Any class that is copy-constructable and has a compatible Run method may // be adapted to a Callback using this constructor. template Callback(const Sink& sink) : sink_(new Adapter(sink)) {} void Run( typename internal::Callback_ParamTraits::ForwardType a1, typename internal::Callback_ParamTraits::ForwardType a2, typename internal::Callback_ParamTraits::ForwardType a3, typename internal::Callback_ParamTraits::ForwardType a4) const { if (sink_.get()) sink_->Run( internal::Callback_Forward(a1), internal::Callback_Forward(a2), internal::Callback_Forward(a3), internal::Callback_Forward(a4)); } private: template struct Adapter : public Runnable { explicit Adapter(const Sink& sink) : sink(sink) {} virtual void Run( typename internal::Callback_ParamTraits::ForwardType a1, typename internal::Callback_ParamTraits::ForwardType a2, typename internal::Callback_ParamTraits::ForwardType a3, typename internal::Callback_ParamTraits::ForwardType a4) const MOJO_OVERRIDE { sink.Run( internal::Callback_Forward(a1), internal::Callback_Forward(a2), internal::Callback_Forward(a3), internal::Callback_Forward(a4)); } Sink sink; }; internal::SharedPtr sink_; }; template class Callback { public: struct Runnable { virtual ~Runnable() {} virtual void Run( typename internal::Callback_ParamTraits::ForwardType a1, typename internal::Callback_ParamTraits::ForwardType a2, typename internal::Callback_ParamTraits::ForwardType a3, typename internal::Callback_ParamTraits::ForwardType a4, typename internal::Callback_ParamTraits::ForwardType a5) const = 0; }; Callback() {} // The Callback assumes ownership of |runnable|. explicit Callback(Runnable* runnable) : sink_(runnable) {} // Any class that is copy-constructable and has a compatible Run method may // be adapted to a Callback using this constructor. template Callback(const Sink& sink) : sink_(new Adapter(sink)) {} void Run( typename internal::Callback_ParamTraits::ForwardType a1, typename internal::Callback_ParamTraits::ForwardType a2, typename internal::Callback_ParamTraits::ForwardType a3, typename internal::Callback_ParamTraits::ForwardType a4, typename internal::Callback_ParamTraits::ForwardType a5) const { if (sink_.get()) sink_->Run( internal::Callback_Forward(a1), internal::Callback_Forward(a2), internal::Callback_Forward(a3), internal::Callback_Forward(a4), internal::Callback_Forward(a5)); } private: template struct Adapter : public Runnable { explicit Adapter(const Sink& sink) : sink(sink) {} virtual void Run( typename internal::Callback_ParamTraits::ForwardType a1, typename internal::Callback_ParamTraits::ForwardType a2, typename internal::Callback_ParamTraits::ForwardType a3, typename internal::Callback_ParamTraits::ForwardType a4, typename internal::Callback_ParamTraits::ForwardType a5) const MOJO_OVERRIDE { sink.Run( internal::Callback_Forward(a1), internal::Callback_Forward(a2), internal::Callback_Forward(a3), internal::Callback_Forward(a4), internal::Callback_Forward(a5)); } Sink sink; }; internal::SharedPtr sink_; }; template class Callback { public: struct Runnable { virtual ~Runnable() {} virtual void Run( typename internal::Callback_ParamTraits::ForwardType a1, typename internal::Callback_ParamTraits::ForwardType a2, typename internal::Callback_ParamTraits::ForwardType a3, typename internal::Callback_ParamTraits::ForwardType a4, typename internal::Callback_ParamTraits::ForwardType a5, typename internal::Callback_ParamTraits::ForwardType a6) const = 0; }; Callback() {} // The Callback assumes ownership of |runnable|. explicit Callback(Runnable* runnable) : sink_(runnable) {} // Any class that is copy-constructable and has a compatible Run method may // be adapted to a Callback using this constructor. template Callback(const Sink& sink) : sink_(new Adapter(sink)) {} void Run( typename internal::Callback_ParamTraits::ForwardType a1, typename internal::Callback_ParamTraits::ForwardType a2, typename internal::Callback_ParamTraits::ForwardType a3, typename internal::Callback_ParamTraits::ForwardType a4, typename internal::Callback_ParamTraits::ForwardType a5, typename internal::Callback_ParamTraits::ForwardType a6) const { if (sink_.get()) sink_->Run( internal::Callback_Forward(a1), internal::Callback_Forward(a2), internal::Callback_Forward(a3), internal::Callback_Forward(a4), internal::Callback_Forward(a5), internal::Callback_Forward(a6)); } private: template struct Adapter : public Runnable { explicit Adapter(const Sink& sink) : sink(sink) {} virtual void Run( typename internal::Callback_ParamTraits::ForwardType a1, typename internal::Callback_ParamTraits::ForwardType a2, typename internal::Callback_ParamTraits::ForwardType a3, typename internal::Callback_ParamTraits::ForwardType a4, typename internal::Callback_ParamTraits::ForwardType a5, typename internal::Callback_ParamTraits::ForwardType a6) const MOJO_OVERRIDE { sink.Run( internal::Callback_Forward(a1), internal::Callback_Forward(a2), internal::Callback_Forward(a3), internal::Callback_Forward(a4), internal::Callback_Forward(a5), internal::Callback_Forward(a6)); } Sink sink; }; internal::SharedPtr sink_; }; template class Callback { public: struct Runnable { virtual ~Runnable() {} virtual void Run( typename internal::Callback_ParamTraits::ForwardType a1, typename internal::Callback_ParamTraits::ForwardType a2, typename internal::Callback_ParamTraits::ForwardType a3, typename internal::Callback_ParamTraits::ForwardType a4, typename internal::Callback_ParamTraits::ForwardType a5, typename internal::Callback_ParamTraits::ForwardType a6, typename internal::Callback_ParamTraits::ForwardType a7) const = 0; }; Callback() {} // The Callback assumes ownership of |runnable|. explicit Callback(Runnable* runnable) : sink_(runnable) {} // Any class that is copy-constructable and has a compatible Run method may // be adapted to a Callback using this constructor. template Callback(const Sink& sink) : sink_(new Adapter(sink)) {} void Run( typename internal::Callback_ParamTraits::ForwardType a1, typename internal::Callback_ParamTraits::ForwardType a2, typename internal::Callback_ParamTraits::ForwardType a3, typename internal::Callback_ParamTraits::ForwardType a4, typename internal::Callback_ParamTraits::ForwardType a5, typename internal::Callback_ParamTraits::ForwardType a6, typename internal::Callback_ParamTraits::ForwardType a7) const { if (sink_.get()) sink_->Run( internal::Callback_Forward(a1), internal::Callback_Forward(a2), internal::Callback_Forward(a3), internal::Callback_Forward(a4), internal::Callback_Forward(a5), internal::Callback_Forward(a6), internal::Callback_Forward(a7)); } private: template struct Adapter : public Runnable { explicit Adapter(const Sink& sink) : sink(sink) {} virtual void Run( typename internal::Callback_ParamTraits::ForwardType a1, typename internal::Callback_ParamTraits::ForwardType a2, typename internal::Callback_ParamTraits::ForwardType a3, typename internal::Callback_ParamTraits::ForwardType a4, typename internal::Callback_ParamTraits::ForwardType a5, typename internal::Callback_ParamTraits::ForwardType a6, typename internal::Callback_ParamTraits::ForwardType a7) const MOJO_OVERRIDE { sink.Run( internal::Callback_Forward(a1), internal::Callback_Forward(a2), internal::Callback_Forward(a3), internal::Callback_Forward(a4), internal::Callback_Forward(a5), internal::Callback_Forward(a6), internal::Callback_Forward(a7)); } Sink sink; }; internal::SharedPtr sink_; }; } // namespace mojo #endif // MOJO_PUBLIC_CPP_BINDINGS_CALLBACK_H_