/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=2 et sw=2 tw=80: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. */ // 0 arguments -- template class runnable_args0 : public runnable_args_base { public: runnable_args0(C o, M m) : o_(o), m_(m) {} NS_IMETHOD Run() { ((*o_).*m_)(); return NS_OK; } private: C o_; M m_; }; // 0 arguments -- template class runnable_args0_ret : public runnable_args_base { public: runnable_args0_ret(C o, M m, R *r) : o_(o), m_(m), r_(r) {} NS_IMETHOD Run() { *r_ = ((*o_).*m_)(); return NS_OK; } private: C o_; M m_; R* r_; }; // 1 arguments -- template class runnable_args1 : public runnable_args_base { public: runnable_args1(C o, M m, A0 a0) : o_(o), m_(m), a0_(a0) {} NS_IMETHOD Run() { ((*o_).*m_)(a0_); return NS_OK; } private: C o_; M m_; A0 a0_; }; // 1 arguments -- template class runnable_args1_ret : public runnable_args_base { public: runnable_args1_ret(C o, M m, A0 a0, R *r) : o_(o), m_(m), r_(r), a0_(a0) {} NS_IMETHOD Run() { *r_ = ((*o_).*m_)(a0_); return NS_OK; } private: C o_; M m_; R* r_; A0 a0_; }; // 2 arguments -- template class runnable_args2 : public runnable_args_base { public: runnable_args2(C o, M m, A0 a0, A1 a1) : o_(o), m_(m), a0_(a0), a1_(a1) {} NS_IMETHOD Run() { ((*o_).*m_)(a0_, a1_); return NS_OK; } private: C o_; M m_; A0 a0_; A1 a1_; }; // 2 arguments -- template class runnable_args2_ret : public runnable_args_base { public: runnable_args2_ret(C o, M m, A0 a0, A1 a1, R *r) : o_(o), m_(m), r_(r), a0_(a0), a1_(a1) {} NS_IMETHOD Run() { *r_ = ((*o_).*m_)(a0_, a1_); return NS_OK; } private: C o_; M m_; R* r_; A0 a0_; A1 a1_; }; // 3 arguments -- template class runnable_args3 : public runnable_args_base { public: runnable_args3(C o, M m, A0 a0, A1 a1, A2 a2) : o_(o), m_(m), a0_(a0), a1_(a1), a2_(a2) {} NS_IMETHOD Run() { ((*o_).*m_)(a0_, a1_, a2_); return NS_OK; } private: C o_; M m_; A0 a0_; A1 a1_; A2 a2_; }; // 3 arguments -- template class runnable_args3_ret : public runnable_args_base { public: runnable_args3_ret(C o, M m, A0 a0, A1 a1, A2 a2, R *r) : o_(o), m_(m), r_(r), a0_(a0), a1_(a1), a2_(a2) {} NS_IMETHOD Run() { *r_ = ((*o_).*m_)(a0_, a1_, a2_); return NS_OK; } private: C o_; M m_; R* r_; A0 a0_; A1 a1_; A2 a2_; }; // 4 arguments -- template class runnable_args4 : public runnable_args_base { public: runnable_args4(C o, M m, A0 a0, A1 a1, A2 a2, A3 a3) : o_(o), m_(m), a0_(a0), a1_(a1), a2_(a2), a3_(a3) {} NS_IMETHOD Run() { ((*o_).*m_)(a0_, a1_, a2_, a3_); return NS_OK; } private: C o_; M m_; A0 a0_; A1 a1_; A2 a2_; A3 a3_; }; // 4 arguments -- template class runnable_args4_ret : public runnable_args_base { public: runnable_args4_ret(C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, R *r) : o_(o), m_(m), r_(r), a0_(a0), a1_(a1), a2_(a2), a3_(a3) {} NS_IMETHOD Run() { *r_ = ((*o_).*m_)(a0_, a1_, a2_, a3_); return NS_OK; } private: C o_; M m_; R* r_; A0 a0_; A1 a1_; A2 a2_; A3 a3_; }; // 5 arguments -- template class runnable_args5 : public runnable_args_base { public: runnable_args5(C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4) : o_(o), m_(m), a0_(a0), a1_(a1), a2_(a2), a3_(a3), a4_(a4) {} NS_IMETHOD Run() { ((*o_).*m_)(a0_, a1_, a2_, a3_, a4_); return NS_OK; } private: C o_; M m_; A0 a0_; A1 a1_; A2 a2_; A3 a3_; A4 a4_; }; // 5 arguments -- template class runnable_args5_ret : public runnable_args_base { public: runnable_args5_ret(C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, R *r) : o_(o), m_(m), r_(r), a0_(a0), a1_(a1), a2_(a2), a3_(a3), a4_(a4) {} NS_IMETHOD Run() { *r_ = ((*o_).*m_)(a0_, a1_, a2_, a3_, a4_); return NS_OK; } private: C o_; M m_; R* r_; A0 a0_; A1 a1_; A2 a2_; A3 a3_; A4 a4_; }; // 6 arguments -- template class runnable_args6 : public runnable_args_base { public: runnable_args6(C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) : o_(o), m_(m), a0_(a0), a1_(a1), a2_(a2), a3_(a3), a4_(a4), a5_(a5) {} NS_IMETHOD Run() { ((*o_).*m_)(a0_, a1_, a2_, a3_, a4_, a5_); return NS_OK; } private: C o_; M m_; A0 a0_; A1 a1_; A2 a2_; A3 a3_; A4 a4_; A5 a5_; }; // 6 arguments -- template class runnable_args6_ret : public runnable_args_base { public: runnable_args6_ret(C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, R *r) : o_(o), m_(m), r_(r), a0_(a0), a1_(a1), a2_(a2), a3_(a3), a4_(a4), a5_(a5) {} NS_IMETHOD Run() { *r_ = ((*o_).*m_)(a0_, a1_, a2_, a3_, a4_, a5_); return NS_OK; } private: C o_; M m_; R* r_; A0 a0_; A1 a1_; A2 a2_; A3 a3_; A4 a4_; A5 a5_; }; // 7 arguments -- template class runnable_args7 : public runnable_args_base { public: runnable_args7(C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) : o_(o), m_(m), a0_(a0), a1_(a1), a2_(a2), a3_(a3), a4_(a4), a5_(a5), a6_(a6) {} NS_IMETHOD Run() { ((*o_).*m_)(a0_, a1_, a2_, a3_, a4_, a5_, a6_); return NS_OK; } private: C o_; M m_; A0 a0_; A1 a1_; A2 a2_; A3 a3_; A4 a4_; A5 a5_; A6 a6_; }; // 7 arguments -- template class runnable_args7_ret : public runnable_args_base { public: runnable_args7_ret(C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, R *r) : o_(o), m_(m), r_(r), a0_(a0), a1_(a1), a2_(a2), a3_(a3), a4_(a4), a5_(a5), a6_(a6) {} NS_IMETHOD Run() { *r_ = ((*o_).*m_)(a0_, a1_, a2_, a3_, a4_, a5_, a6_); return NS_OK; } private: C o_; M m_; R* r_; A0 a0_; A1 a1_; A2 a2_; A3 a3_; A4 a4_; A5 a5_; A6 a6_; }; // 8 arguments -- template class runnable_args8 : public runnable_args_base { public: runnable_args8(C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) : o_(o), m_(m), a0_(a0), a1_(a1), a2_(a2), a3_(a3), a4_(a4), a5_(a5), a6_(a6), a7_(a7) {} NS_IMETHOD Run() { ((*o_).*m_)(a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_); return NS_OK; } private: C o_; M m_; A0 a0_; A1 a1_; A2 a2_; A3 a3_; A4 a4_; A5 a5_; A6 a6_; A7 a7_; }; // 8 arguments -- template class runnable_args8_ret : public runnable_args_base { public: runnable_args8_ret(C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, R *r) : o_(o), m_(m), r_(r), a0_(a0), a1_(a1), a2_(a2), a3_(a3), a4_(a4), a5_(a5), a6_(a6), a7_(a7) {} NS_IMETHOD Run() { *r_ = ((*o_).*m_)(a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_); return NS_OK; } private: C o_; M m_; R* r_; A0 a0_; A1 a1_; A2 a2_; A3 a3_; A4 a4_; A5 a5_; A6 a6_; A7 a7_; }; // 9 arguments -- template class runnable_args9 : public runnable_args_base { public: runnable_args9(C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) : o_(o), m_(m), a0_(a0), a1_(a1), a2_(a2), a3_(a3), a4_(a4), a5_(a5), a6_(a6), a7_(a7), a8_(a8) {} NS_IMETHOD Run() { ((*o_).*m_)(a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_); return NS_OK; } private: C o_; M m_; A0 a0_; A1 a1_; A2 a2_; A3 a3_; A4 a4_; A5 a5_; A6 a6_; A7 a7_; A8 a8_; }; // 9 arguments -- template class runnable_args9_ret : public runnable_args_base { public: runnable_args9_ret(C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, R *r) : o_(o), m_(m), r_(r), a0_(a0), a1_(a1), a2_(a2), a3_(a3), a4_(a4), a5_(a5), a6_(a6), a7_(a7), a8_(a8) {} NS_IMETHOD Run() { *r_ = ((*o_).*m_)(a0_, a1_, a2_, a3_, a4_, a5_, a6_, a7_, a8_); return NS_OK; } private: C o_; M m_; R* r_; A0 a0_; A1 a1_; A2 a2_; A3 a3_; A4 a4_; A5 a5_; A6 a6_; A7 a7_; A8 a8_; }; // 0 arguments -- template runnable_args0* WrapRunnable(C o, M m) { return new runnable_args0 (o, m); } // 0 arguments -- template runnable_args0_ret* WrapRunnableRet(C o, M m, R* r) { return new runnable_args0_ret (o, m, r); } // 1 arguments -- template runnable_args1* WrapRunnable(C o, M m, A0 a0) { return new runnable_args1 (o, m, a0); } // 1 arguments -- template runnable_args1_ret* WrapRunnableRet(C o, M m, A0 a0, R* r) { return new runnable_args1_ret (o, m, a0, r); } // 2 arguments -- template runnable_args2* WrapRunnable(C o, M m, A0 a0, A1 a1) { return new runnable_args2 (o, m, a0, a1); } // 2 arguments -- template runnable_args2_ret* WrapRunnableRet(C o, M m, A0 a0, A1 a1, R* r) { return new runnable_args2_ret (o, m, a0, a1, r); } // 3 arguments -- template runnable_args3* WrapRunnable(C o, M m, A0 a0, A1 a1, A2 a2) { return new runnable_args3 (o, m, a0, a1, a2); } // 3 arguments -- template runnable_args3_ret* WrapRunnableRet(C o, M m, A0 a0, A1 a1, A2 a2, R* r) { return new runnable_args3_ret (o, m, a0, a1, a2, r); } // 4 arguments -- template runnable_args4* WrapRunnable(C o, M m, A0 a0, A1 a1, A2 a2, A3 a3) { return new runnable_args4 (o, m, a0, a1, a2, a3); } // 4 arguments -- template runnable_args4_ret* WrapRunnableRet(C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, R* r) { return new runnable_args4_ret (o, m, a0, a1, a2, a3, r); } // 5 arguments -- template runnable_args5* WrapRunnable(C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4) { return new runnable_args5 (o, m, a0, a1, a2, a3, a4); } // 5 arguments -- template runnable_args5_ret* WrapRunnableRet(C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, R* r) { return new runnable_args5_ret (o, m, a0, a1, a2, a3, a4, r); } // 6 arguments -- template runnable_args6* WrapRunnable(C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { return new runnable_args6 (o, m, a0, a1, a2, a3, a4, a5); } // 6 arguments -- template runnable_args6_ret* WrapRunnableRet(C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, R* r) { return new runnable_args6_ret (o, m, a0, a1, a2, a3, a4, a5, r); } // 7 arguments -- template runnable_args7* WrapRunnable(C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) { return new runnable_args7 (o, m, a0, a1, a2, a3, a4, a5, a6); } // 7 arguments -- template runnable_args7_ret* WrapRunnableRet(C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, R* r) { return new runnable_args7_ret (o, m, a0, a1, a2, a3, a4, a5, a6, r); } // 8 arguments -- template runnable_args8* WrapRunnable(C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) { return new runnable_args8 (o, m, a0, a1, a2, a3, a4, a5, a6, a7); } // 8 arguments -- template runnable_args8_ret* WrapRunnableRet(C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, R* r) { return new runnable_args8_ret (o, m, a0, a1, a2, a3, a4, a5, a6, a7, r); } // 9 arguments -- template runnable_args9* WrapRunnable(C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) { return new runnable_args9 (o, m, a0, a1, a2, a3, a4, a5, a6, a7, a8); } // 9 arguments -- template runnable_args9_ret* WrapRunnableRet(C o, M m, A0 a0, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, R* r) { return new runnable_args9_ret (o, m, a0, a1, a2, a3, a4, a5, a6, a7, a8, r); }