105#ifndef INCLUDE_OLA_CALLBACK_H_
106#define INCLUDE_OLA_CALLBACK_H_
118template <
typename ReturnType>
122 virtual ReturnType Run() = 0;
128template <
typename ReturnType>
132 ReturnType Run() {
return this->DoRun(); }
134 virtual ReturnType DoRun() = 0;
140template <
typename ReturnType>
145 ReturnType ret = this->DoRun();
150 virtual ReturnType DoRun() = 0;
165 virtual void DoRun() = 0;
171template <
typename Parent,
typename ReturnType>
174 typedef ReturnType (*Function)();
177 m_callback(callback) {}
193template <
typename ReturnType>
195 ReturnType (*callback)()) {
210template <
typename ReturnType>
212 ReturnType (*callback)()) {
223template <
typename Class,
typename Parent,
typename ReturnType>
226 typedef ReturnType (Class::*Method)();
230 m_callback(callback) {}
232 return (m_object->*m_callback)();
249template <
typename Class,
typename ReturnType>
252 ReturnType (Class::*method)()) {
270template <
typename Class,
typename ReturnType>
273 ReturnType (Class::*method)()) {
285template <
typename Parent,
typename ReturnType,
typename A0>
288 typedef ReturnType (*Function)(A0);
291 m_callback(callback),
294 return m_callback(m_a0);
311template <
typename ReturnType,
typename A0>
313 ReturnType (*callback)(A0),
333template <
typename ReturnType,
typename A0>
335 ReturnType (*callback)(A0),
349template <
typename Class,
typename Parent,
typename ReturnType,
typename A0>
352 typedef ReturnType (Class::*Method)(A0);
356 m_callback(callback),
359 return (m_object->*m_callback)(m_a0);
379template <
typename Class,
typename ReturnType,
typename A0>
382 ReturnType (Class::*method)(A0),
405template <
typename Class,
typename ReturnType,
typename A0>
408 ReturnType (Class::*method)(A0),
423template <
typename Parent,
typename ReturnType,
typename A0,
typename A1>
426 typedef ReturnType (*Function)(A0, A1);
429 m_callback(callback),
433 return m_callback(m_a0, m_a1);
453template <
typename ReturnType,
typename A0,
typename A1>
455 ReturnType (*callback)(A0, A1),
480template <
typename ReturnType,
typename A0,
typename A1>
482 ReturnType (*callback)(A0, A1),
499template <
typename Class,
typename Parent,
typename ReturnType,
typename A0,
typename A1>
502 typedef ReturnType (Class::*Method)(A0, A1);
506 m_callback(callback),
510 return (m_object->*m_callback)(m_a0, m_a1);
533template <
typename Class,
typename ReturnType,
typename A0,
typename A1>
536 ReturnType (Class::*method)(A0, A1),
564template <
typename Class,
typename ReturnType,
typename A0,
typename A1>
567 ReturnType (Class::*method)(A0, A1),
585template <
typename Parent,
typename ReturnType,
typename A0,
typename A1,
typename A2>
588 typedef ReturnType (*Function)(A0, A1, A2);
591 m_callback(callback),
596 return m_callback(m_a0, m_a1, m_a2);
619template <
typename ReturnType,
typename A0,
typename A1,
typename A2>
621 ReturnType (*callback)(A0, A1, A2),
651template <
typename ReturnType,
typename A0,
typename A1,
typename A2>
653 ReturnType (*callback)(A0, A1, A2),
673template <
typename Class,
typename Parent,
typename ReturnType,
typename A0,
typename A1,
typename A2>
676 typedef ReturnType (Class::*Method)(A0, A1, A2);
680 m_callback(callback),
685 return (m_object->*m_callback)(m_a0, m_a1, m_a2);
711template <
typename Class,
typename ReturnType,
typename A0,
typename A1,
typename A2>
714 ReturnType (Class::*method)(A0, A1, A2),
747template <
typename Class,
typename ReturnType,
typename A0,
typename A1,
typename A2>
750 ReturnType (Class::*method)(A0, A1, A2),
771template <
typename Parent,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3>
774 typedef ReturnType (*Function)(A0, A1, A2, A3);
777 m_callback(callback),
783 return m_callback(m_a0, m_a1, m_a2, m_a3);
809template <
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3>
811 ReturnType (*callback)(A0, A1, A2, A3),
846template <
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3>
848 ReturnType (*callback)(A0, A1, A2, A3),
871template <
typename Class,
typename Parent,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3>
874 typedef ReturnType (Class::*Method)(A0, A1, A2, A3);
878 m_callback(callback),
884 return (m_object->*m_callback)(m_a0, m_a1, m_a2, m_a3);
913template <
typename Class,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3>
916 ReturnType (Class::*method)(A0, A1, A2, A3),
954template <
typename Class,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3>
957 ReturnType (Class::*method)(A0, A1, A2, A3),
981template <
typename ReturnType,
typename Arg0>
985 virtual ReturnType Run(Arg0 arg0) = 0;
991template <
typename ReturnType,
typename Arg0>
995 ReturnType Run(Arg0 arg0) {
return this->DoRun(arg0); }
997 virtual ReturnType DoRun(Arg0 arg0) = 0;
1003template <
typename ReturnType,
typename Arg0>
1007 ReturnType Run(Arg0 arg0) {
1008 ReturnType ret = this->DoRun(arg0);
1013 virtual ReturnType DoRun(Arg0 arg0) = 0;
1019template <
typename Arg0>
1023 void Run(Arg0 arg0) {
1028 virtual void DoRun(Arg0 arg0) = 0;
1034template <
typename Parent,
typename ReturnType,
typename Arg0>
1037 typedef ReturnType (*Function)(Arg0);
1040 m_callback(callback) {}
1041 ReturnType DoRun(Arg0 arg0) {
1042 return m_callback(arg0);
1045 Function m_callback;
1057template <
typename ReturnType,
typename Arg0>
1059 ReturnType (*callback)(Arg0)) {
1076template <
typename ReturnType,
typename Arg0>
1078 ReturnType (*callback)(Arg0)) {
1090template <
typename Class,
typename Parent,
typename ReturnType,
typename Arg0>
1093 typedef ReturnType (Class::*Method)(Arg0);
1097 m_callback(callback) {}
1098 ReturnType DoRun(Arg0 arg0) {
1099 return (m_object->*m_callback)(arg0);
1117template <
typename Class,
typename ReturnType,
typename Arg0>
1120 ReturnType (Class::*method)(Arg0)) {
1140template <
typename Class,
typename ReturnType,
typename Arg0>
1143 ReturnType (Class::*method)(Arg0)) {
1156template <
typename Parent,
typename ReturnType,
typename A0,
typename Arg0>
1159 typedef ReturnType (*Function)(A0, Arg0);
1162 m_callback(callback),
1164 ReturnType DoRun(Arg0 arg0) {
1165 return m_callback(m_a0, arg0);
1168 Function m_callback;
1183template <
typename ReturnType,
typename A0,
typename Arg0>
1185 ReturnType (*callback)(A0, Arg0),
1207template <
typename ReturnType,
typename A0,
typename Arg0>
1209 ReturnType (*callback)(A0, Arg0),
1224template <
typename Class,
typename Parent,
typename ReturnType,
typename A0,
typename Arg0>
1227 typedef ReturnType (Class::*Method)(A0, Arg0);
1231 m_callback(callback),
1233 ReturnType DoRun(Arg0 arg0) {
1234 return (m_object->*m_callback)(m_a0, arg0);
1255template <
typename Class,
typename ReturnType,
typename A0,
typename Arg0>
1258 ReturnType (Class::*method)(A0, Arg0),
1283template <
typename Class,
typename ReturnType,
typename A0,
typename Arg0>
1286 ReturnType (Class::*method)(A0, Arg0),
1302template <
typename Parent,
typename ReturnType,
typename A0,
typename A1,
typename Arg0>
1305 typedef ReturnType (*Function)(A0, A1, Arg0);
1308 m_callback(callback),
1311 ReturnType DoRun(Arg0 arg0) {
1312 return m_callback(m_a0, m_a1, arg0);
1315 Function m_callback;
1333template <
typename ReturnType,
typename A0,
typename A1,
typename Arg0>
1335 ReturnType (*callback)(A0, A1, Arg0),
1362template <
typename ReturnType,
typename A0,
typename A1,
typename Arg0>
1364 ReturnType (*callback)(A0, A1, Arg0),
1382template <
typename Class,
typename Parent,
typename ReturnType,
typename A0,
typename A1,
typename Arg0>
1385 typedef ReturnType (Class::*Method)(A0, A1, Arg0);
1389 m_callback(callback),
1392 ReturnType DoRun(Arg0 arg0) {
1393 return (m_object->*m_callback)(m_a0, m_a1, arg0);
1417template <
typename Class,
typename ReturnType,
typename A0,
typename A1,
typename Arg0>
1420 ReturnType (Class::*method)(A0, A1, Arg0),
1450template <
typename Class,
typename ReturnType,
typename A0,
typename A1,
typename Arg0>
1453 ReturnType (Class::*method)(A0, A1, Arg0),
1472template <
typename Parent,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename Arg0>
1475 typedef ReturnType (*Function)(A0, A1, A2, Arg0);
1478 m_callback(callback),
1482 ReturnType DoRun(Arg0 arg0) {
1483 return m_callback(m_a0, m_a1, m_a2, arg0);
1486 Function m_callback;
1507template <
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename Arg0>
1509 ReturnType (*callback)(A0, A1, A2, Arg0),
1541template <
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename Arg0>
1543 ReturnType (*callback)(A0, A1, A2, Arg0),
1564template <
typename Class,
typename Parent,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename Arg0>
1567 typedef ReturnType (Class::*Method)(A0, A1, A2, Arg0);
1571 m_callback(callback),
1575 ReturnType DoRun(Arg0 arg0) {
1576 return (m_object->*m_callback)(m_a0, m_a1, m_a2, arg0);
1603template <
typename Class,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename Arg0>
1606 ReturnType (Class::*method)(A0, A1, A2, Arg0),
1641template <
typename Class,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename Arg0>
1644 ReturnType (Class::*method)(A0, A1, A2, Arg0),
1666template <
typename Parent,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3,
typename Arg0>
1669 typedef ReturnType (*Function)(A0, A1, A2, A3, Arg0);
1672 m_callback(callback),
1677 ReturnType DoRun(Arg0 arg0) {
1678 return m_callback(m_a0, m_a1, m_a2, m_a3, arg0);
1681 Function m_callback;
1705template <
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3,
typename Arg0>
1707 ReturnType (*callback)(A0, A1, A2, A3, Arg0),
1744template <
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3,
typename Arg0>
1746 ReturnType (*callback)(A0, A1, A2, A3, Arg0),
1770template <
typename Class,
typename Parent,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3,
typename Arg0>
1773 typedef ReturnType (Class::*Method)(A0, A1, A2, A3, Arg0);
1777 m_callback(callback),
1782 ReturnType DoRun(Arg0 arg0) {
1783 return (m_object->*m_callback)(m_a0, m_a1, m_a2, m_a3, arg0);
1813template <
typename Class,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3,
typename Arg0>
1816 ReturnType (Class::*method)(A0, A1, A2, A3, Arg0),
1856template <
typename Class,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3,
typename Arg0>
1859 ReturnType (Class::*method)(A0, A1, A2, A3, Arg0),
1884template <
typename ReturnType,
typename Arg0,
typename Arg1>
1888 virtual ReturnType Run(Arg0 arg0, Arg1 arg1) = 0;
1894template <
typename ReturnType,
typename Arg0,
typename Arg1>
1898 ReturnType Run(Arg0 arg0, Arg1 arg1) {
return this->DoRun(arg0, arg1); }
1900 virtual ReturnType DoRun(Arg0 arg0, Arg1 arg1) = 0;
1906template <
typename ReturnType,
typename Arg0,
typename Arg1>
1910 ReturnType Run(Arg0 arg0, Arg1 arg1) {
1911 ReturnType ret = this->DoRun(arg0, arg1);
1916 virtual ReturnType DoRun(Arg0 arg0, Arg1 arg1) = 0;
1922template <
typename Arg0,
typename Arg1>
1926 void Run(Arg0 arg0, Arg1 arg1) {
1927 this->DoRun(arg0, arg1);
1931 virtual void DoRun(Arg0 arg0, Arg1 arg1) = 0;
1937template <
typename Parent,
typename ReturnType,
typename Arg0,
typename Arg1>
1940 typedef ReturnType (*Function)(Arg0, Arg1);
1943 m_callback(callback) {}
1944 ReturnType DoRun(Arg0 arg0, Arg1 arg1) {
1945 return m_callback(arg0, arg1);
1948 Function m_callback;
1961template <
typename ReturnType,
typename Arg0,
typename Arg1>
1963 ReturnType (*callback)(Arg0, Arg1)) {
1982template <
typename ReturnType,
typename Arg0,
typename Arg1>
1984 ReturnType (*callback)(Arg0, Arg1)) {
1997template <
typename Class,
typename Parent,
typename ReturnType,
typename Arg0,
typename Arg1>
2000 typedef ReturnType (Class::*Method)(Arg0, Arg1);
2004 m_callback(callback) {}
2005 ReturnType DoRun(Arg0 arg0, Arg1 arg1) {
2006 return (m_object->*m_callback)(arg0, arg1);
2025template <
typename Class,
typename ReturnType,
typename Arg0,
typename Arg1>
2028 ReturnType (Class::*method)(Arg0, Arg1)) {
2050template <
typename Class,
typename ReturnType,
typename Arg0,
typename Arg1>
2053 ReturnType (Class::*method)(Arg0, Arg1)) {
2067template <
typename Parent,
typename ReturnType,
typename A0,
typename Arg0,
typename Arg1>
2070 typedef ReturnType (*Function)(A0, Arg0, Arg1);
2073 m_callback(callback),
2075 ReturnType DoRun(Arg0 arg0, Arg1 arg1) {
2076 return m_callback(m_a0, arg0, arg1);
2079 Function m_callback;
2095template <
typename ReturnType,
typename A0,
typename Arg0,
typename Arg1>
2097 ReturnType (*callback)(A0, Arg0, Arg1),
2121template <
typename ReturnType,
typename A0,
typename Arg0,
typename Arg1>
2123 ReturnType (*callback)(A0, Arg0, Arg1),
2139template <
typename Class,
typename Parent,
typename ReturnType,
typename A0,
typename Arg0,
typename Arg1>
2142 typedef ReturnType (Class::*Method)(A0, Arg0, Arg1);
2146 m_callback(callback),
2148 ReturnType DoRun(Arg0 arg0, Arg1 arg1) {
2149 return (m_object->*m_callback)(m_a0, arg0, arg1);
2171template <
typename Class,
typename ReturnType,
typename A0,
typename Arg0,
typename Arg1>
2174 ReturnType (Class::*method)(A0, Arg0, Arg1),
2201template <
typename Class,
typename ReturnType,
typename A0,
typename Arg0,
typename Arg1>
2204 ReturnType (Class::*method)(A0, Arg0, Arg1),
2221template <
typename Parent,
typename ReturnType,
typename A0,
typename A1,
typename Arg0,
typename Arg1>
2224 typedef ReturnType (*Function)(A0, A1, Arg0, Arg1);
2227 m_callback(callback),
2230 ReturnType DoRun(Arg0 arg0, Arg1 arg1) {
2231 return m_callback(m_a0, m_a1, arg0, arg1);
2234 Function m_callback;
2253template <
typename ReturnType,
typename A0,
typename A1,
typename Arg0,
typename Arg1>
2255 ReturnType (*callback)(A0, A1, Arg0, Arg1),
2284template <
typename ReturnType,
typename A0,
typename A1,
typename Arg0,
typename Arg1>
2286 ReturnType (*callback)(A0, A1, Arg0, Arg1),
2305template <
typename Class,
typename Parent,
typename ReturnType,
typename A0,
typename A1,
typename Arg0,
typename Arg1>
2308 typedef ReturnType (Class::*Method)(A0, A1, Arg0, Arg1);
2312 m_callback(callback),
2315 ReturnType DoRun(Arg0 arg0, Arg1 arg1) {
2316 return (m_object->*m_callback)(m_a0, m_a1, arg0, arg1);
2341template <
typename Class,
typename ReturnType,
typename A0,
typename A1,
typename Arg0,
typename Arg1>
2344 ReturnType (Class::*method)(A0, A1, Arg0, Arg1),
2376template <
typename Class,
typename ReturnType,
typename A0,
typename A1,
typename Arg0,
typename Arg1>
2379 ReturnType (Class::*method)(A0, A1, Arg0, Arg1),
2399template <
typename Parent,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename Arg0,
typename Arg1>
2402 typedef ReturnType (*Function)(A0, A1, A2, Arg0, Arg1);
2405 m_callback(callback),
2409 ReturnType DoRun(Arg0 arg0, Arg1 arg1) {
2410 return m_callback(m_a0, m_a1, m_a2, arg0, arg1);
2413 Function m_callback;
2435template <
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename Arg0,
typename Arg1>
2437 ReturnType (*callback)(A0, A1, A2, Arg0, Arg1),
2471template <
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename Arg0,
typename Arg1>
2473 ReturnType (*callback)(A0, A1, A2, Arg0, Arg1),
2495template <
typename Class,
typename Parent,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename Arg0,
typename Arg1>
2498 typedef ReturnType (Class::*Method)(A0, A1, A2, Arg0, Arg1);
2502 m_callback(callback),
2506 ReturnType DoRun(Arg0 arg0, Arg1 arg1) {
2507 return (m_object->*m_callback)(m_a0, m_a1, m_a2, arg0, arg1);
2535template <
typename Class,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename Arg0,
typename Arg1>
2538 ReturnType (Class::*method)(A0, A1, A2, Arg0, Arg1),
2575template <
typename Class,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename Arg0,
typename Arg1>
2578 ReturnType (Class::*method)(A0, A1, A2, Arg0, Arg1),
2601template <
typename Parent,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3,
typename Arg0,
typename Arg1>
2604 typedef ReturnType (*Function)(A0, A1, A2, A3, Arg0, Arg1);
2607 m_callback(callback),
2612 ReturnType DoRun(Arg0 arg0, Arg1 arg1) {
2613 return m_callback(m_a0, m_a1, m_a2, m_a3, arg0, arg1);
2616 Function m_callback;
2641template <
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3,
typename Arg0,
typename Arg1>
2643 ReturnType (*callback)(A0, A1, A2, A3, Arg0, Arg1),
2682template <
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3,
typename Arg0,
typename Arg1>
2684 ReturnType (*callback)(A0, A1, A2, A3, Arg0, Arg1),
2709template <
typename Class,
typename Parent,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3,
typename Arg0,
typename Arg1>
2712 typedef ReturnType (Class::*Method)(A0, A1, A2, A3, Arg0, Arg1);
2716 m_callback(callback),
2721 ReturnType DoRun(Arg0 arg0, Arg1 arg1) {
2722 return (m_object->*m_callback)(m_a0, m_a1, m_a2, m_a3, arg0, arg1);
2753template <
typename Class,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3,
typename Arg0,
typename Arg1>
2756 ReturnType (Class::*method)(A0, A1, A2, A3, Arg0, Arg1),
2798template <
typename Class,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3,
typename Arg0,
typename Arg1>
2801 ReturnType (Class::*method)(A0, A1, A2, A3, Arg0, Arg1),
2827template <
typename ReturnType,
typename Arg0,
typename Arg1,
typename Arg2>
2831 virtual ReturnType Run(Arg0 arg0, Arg1 arg1, Arg2 arg2) = 0;
2837template <
typename ReturnType,
typename Arg0,
typename Arg1,
typename Arg2>
2841 ReturnType Run(Arg0 arg0, Arg1 arg1, Arg2 arg2) {
return this->DoRun(arg0, arg1, arg2); }
2843 virtual ReturnType DoRun(Arg0 arg0, Arg1 arg1, Arg2 arg2) = 0;
2849template <
typename ReturnType,
typename Arg0,
typename Arg1,
typename Arg2>
2853 ReturnType Run(Arg0 arg0, Arg1 arg1, Arg2 arg2) {
2854 ReturnType ret = this->DoRun(arg0, arg1, arg2);
2859 virtual ReturnType DoRun(Arg0 arg0, Arg1 arg1, Arg2 arg2) = 0;
2865template <
typename Arg0,
typename Arg1,
typename Arg2>
2869 void Run(Arg0 arg0, Arg1 arg1, Arg2 arg2) {
2870 this->DoRun(arg0, arg1, arg2);
2874 virtual void DoRun(Arg0 arg0, Arg1 arg1, Arg2 arg2) = 0;
2880template <
typename Parent,
typename ReturnType,
typename Arg0,
typename Arg1,
typename Arg2>
2883 typedef ReturnType (*Function)(Arg0, Arg1, Arg2);
2886 m_callback(callback) {}
2887 ReturnType DoRun(Arg0 arg0, Arg1 arg1, Arg2 arg2) {
2888 return m_callback(arg0, arg1, arg2);
2891 Function m_callback;
2905template <
typename ReturnType,
typename Arg0,
typename Arg1,
typename Arg2>
2907 ReturnType (*callback)(Arg0, Arg1, Arg2)) {
2928template <
typename ReturnType,
typename Arg0,
typename Arg1,
typename Arg2>
2930 ReturnType (*callback)(Arg0, Arg1, Arg2)) {
2944template <
typename Class,
typename Parent,
typename ReturnType,
typename Arg0,
typename Arg1,
typename Arg2>
2947 typedef ReturnType (Class::*Method)(Arg0, Arg1, Arg2);
2951 m_callback(callback) {}
2952 ReturnType DoRun(Arg0 arg0, Arg1 arg1, Arg2 arg2) {
2953 return (m_object->*m_callback)(arg0, arg1, arg2);
2973template <
typename Class,
typename ReturnType,
typename Arg0,
typename Arg1,
typename Arg2>
2976 ReturnType (Class::*method)(Arg0, Arg1, Arg2)) {
3000template <
typename Class,
typename ReturnType,
typename Arg0,
typename Arg1,
typename Arg2>
3003 ReturnType (Class::*method)(Arg0, Arg1, Arg2)) {
3018template <
typename Parent,
typename ReturnType,
typename A0,
typename Arg0,
typename Arg1,
typename Arg2>
3021 typedef ReturnType (*Function)(A0, Arg0, Arg1, Arg2);
3024 m_callback(callback),
3026 ReturnType DoRun(Arg0 arg0, Arg1 arg1, Arg2 arg2) {
3027 return m_callback(m_a0, arg0, arg1, arg2);
3030 Function m_callback;
3047template <
typename ReturnType,
typename A0,
typename Arg0,
typename Arg1,
typename Arg2>
3049 ReturnType (*callback)(A0, Arg0, Arg1, Arg2),
3075template <
typename ReturnType,
typename A0,
typename Arg0,
typename Arg1,
typename Arg2>
3077 ReturnType (*callback)(A0, Arg0, Arg1, Arg2),
3094template <
typename Class,
typename Parent,
typename ReturnType,
typename A0,
typename Arg0,
typename Arg1,
typename Arg2>
3097 typedef ReturnType (Class::*Method)(A0, Arg0, Arg1, Arg2);
3101 m_callback(callback),
3103 ReturnType DoRun(Arg0 arg0, Arg1 arg1, Arg2 arg2) {
3104 return (m_object->*m_callback)(m_a0, arg0, arg1, arg2);
3127template <
typename Class,
typename ReturnType,
typename A0,
typename Arg0,
typename Arg1,
typename Arg2>
3130 ReturnType (Class::*method)(A0, Arg0, Arg1, Arg2),
3159template <
typename Class,
typename ReturnType,
typename A0,
typename Arg0,
typename Arg1,
typename Arg2>
3162 ReturnType (Class::*method)(A0, Arg0, Arg1, Arg2),
3180template <
typename Parent,
typename ReturnType,
typename A0,
typename A1,
typename Arg0,
typename Arg1,
typename Arg2>
3183 typedef ReturnType (*Function)(A0, A1, Arg0, Arg1, Arg2);
3186 m_callback(callback),
3189 ReturnType DoRun(Arg0 arg0, Arg1 arg1, Arg2 arg2) {
3190 return m_callback(m_a0, m_a1, arg0, arg1, arg2);
3193 Function m_callback;
3213template <
typename ReturnType,
typename A0,
typename A1,
typename Arg0,
typename Arg1,
typename Arg2>
3215 ReturnType (*callback)(A0, A1, Arg0, Arg1, Arg2),
3246template <
typename ReturnType,
typename A0,
typename A1,
typename Arg0,
typename Arg1,
typename Arg2>
3248 ReturnType (*callback)(A0, A1, Arg0, Arg1, Arg2),
3268template <
typename Class,
typename Parent,
typename ReturnType,
typename A0,
typename A1,
typename Arg0,
typename Arg1,
typename Arg2>
3271 typedef ReturnType (Class::*Method)(A0, A1, Arg0, Arg1, Arg2);
3275 m_callback(callback),
3278 ReturnType DoRun(Arg0 arg0, Arg1 arg1, Arg2 arg2) {
3279 return (m_object->*m_callback)(m_a0, m_a1, arg0, arg1, arg2);
3305template <
typename Class,
typename ReturnType,
typename A0,
typename A1,
typename Arg0,
typename Arg1,
typename Arg2>
3308 ReturnType (Class::*method)(A0, A1, Arg0, Arg1, Arg2),
3342template <
typename Class,
typename ReturnType,
typename A0,
typename A1,
typename Arg0,
typename Arg1,
typename Arg2>
3345 ReturnType (Class::*method)(A0, A1, Arg0, Arg1, Arg2),
3366template <
typename Parent,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename Arg0,
typename Arg1,
typename Arg2>
3369 typedef ReturnType (*Function)(A0, A1, A2, Arg0, Arg1, Arg2);
3372 m_callback(callback),
3376 ReturnType DoRun(Arg0 arg0, Arg1 arg1, Arg2 arg2) {
3377 return m_callback(m_a0, m_a1, m_a2, arg0, arg1, arg2);
3380 Function m_callback;
3403template <
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename Arg0,
typename Arg1,
typename Arg2>
3405 ReturnType (*callback)(A0, A1, A2, Arg0, Arg1, Arg2),
3441template <
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename Arg0,
typename Arg1,
typename Arg2>
3443 ReturnType (*callback)(A0, A1, A2, Arg0, Arg1, Arg2),
3466template <
typename Class,
typename Parent,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename Arg0,
typename Arg1,
typename Arg2>
3469 typedef ReturnType (Class::*Method)(A0, A1, A2, Arg0, Arg1, Arg2);
3473 m_callback(callback),
3477 ReturnType DoRun(Arg0 arg0, Arg1 arg1, Arg2 arg2) {
3478 return (m_object->*m_callback)(m_a0, m_a1, m_a2, arg0, arg1, arg2);
3507template <
typename Class,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename Arg0,
typename Arg1,
typename Arg2>
3510 ReturnType (Class::*method)(A0, A1, A2, Arg0, Arg1, Arg2),
3549template <
typename Class,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename Arg0,
typename Arg1,
typename Arg2>
3552 ReturnType (Class::*method)(A0, A1, A2, Arg0, Arg1, Arg2),
3576template <
typename Parent,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3,
typename Arg0,
typename Arg1,
typename Arg2>
3579 typedef ReturnType (*Function)(A0, A1, A2, A3, Arg0, Arg1, Arg2);
3582 m_callback(callback),
3587 ReturnType DoRun(Arg0 arg0, Arg1 arg1, Arg2 arg2) {
3588 return m_callback(m_a0, m_a1, m_a2, m_a3, arg0, arg1, arg2);
3591 Function m_callback;
3617template <
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3,
typename Arg0,
typename Arg1,
typename Arg2>
3619 ReturnType (*callback)(A0, A1, A2, A3, Arg0, Arg1, Arg2),
3660template <
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3,
typename Arg0,
typename Arg1,
typename Arg2>
3662 ReturnType (*callback)(A0, A1, A2, A3, Arg0, Arg1, Arg2),
3688template <
typename Class,
typename Parent,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3,
typename Arg0,
typename Arg1,
typename Arg2>
3691 typedef ReturnType (Class::*Method)(A0, A1, A2, A3, Arg0, Arg1, Arg2);
3695 m_callback(callback),
3700 ReturnType DoRun(Arg0 arg0, Arg1 arg1, Arg2 arg2) {
3701 return (m_object->*m_callback)(m_a0, m_a1, m_a2, m_a3, arg0, arg1, arg2);
3733template <
typename Class,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3,
typename Arg0,
typename Arg1,
typename Arg2>
3736 ReturnType (Class::*method)(A0, A1, A2, A3, Arg0, Arg1, Arg2),
3780template <
typename Class,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3,
typename Arg0,
typename Arg1,
typename Arg2>
3783 ReturnType (Class::*method)(A0, A1, A2, A3, Arg0, Arg1, Arg2),
3810template <
typename ReturnType,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
3814 virtual ReturnType Run(Arg0 arg0, Arg1 arg1, Arg2 arg2, Arg3 arg3) = 0;
3820template <
typename ReturnType,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
3824 ReturnType Run(Arg0 arg0, Arg1 arg1, Arg2 arg2, Arg3 arg3) {
return this->DoRun(arg0, arg1, arg2, arg3); }
3826 virtual ReturnType DoRun(Arg0 arg0, Arg1 arg1, Arg2 arg2, Arg3 arg3) = 0;
3832template <
typename ReturnType,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
3836 ReturnType Run(Arg0 arg0, Arg1 arg1, Arg2 arg2, Arg3 arg3) {
3837 ReturnType ret = this->DoRun(arg0, arg1, arg2, arg3);
3842 virtual ReturnType DoRun(Arg0 arg0, Arg1 arg1, Arg2 arg2, Arg3 arg3) = 0;
3848template <
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
3852 void Run(Arg0 arg0, Arg1 arg1, Arg2 arg2, Arg3 arg3) {
3853 this->DoRun(arg0, arg1, arg2, arg3);
3857 virtual void DoRun(Arg0 arg0, Arg1 arg1, Arg2 arg2, Arg3 arg3) = 0;
3863template <
typename Parent,
typename ReturnType,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
3866 typedef ReturnType (*Function)(Arg0, Arg1, Arg2, Arg3);
3869 m_callback(callback) {}
3870 ReturnType DoRun(Arg0 arg0, Arg1 arg1, Arg2 arg2, Arg3 arg3) {
3871 return m_callback(arg0, arg1, arg2, arg3);
3874 Function m_callback;
3889template <
typename ReturnType,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
3891 ReturnType (*callback)(Arg0, Arg1, Arg2, Arg3)) {
3914template <
typename ReturnType,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
3916 ReturnType (*callback)(Arg0, Arg1, Arg2, Arg3)) {
3931template <
typename Class,
typename Parent,
typename ReturnType,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
3934 typedef ReturnType (Class::*Method)(Arg0, Arg1, Arg2, Arg3);
3938 m_callback(callback) {}
3939 ReturnType DoRun(Arg0 arg0, Arg1 arg1, Arg2 arg2, Arg3 arg3) {
3940 return (m_object->*m_callback)(arg0, arg1, arg2, arg3);
3961template <
typename Class,
typename ReturnType,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
3964 ReturnType (Class::*method)(Arg0, Arg1, Arg2, Arg3)) {
3990template <
typename Class,
typename ReturnType,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
3993 ReturnType (Class::*method)(Arg0, Arg1, Arg2, Arg3)) {
4009template <
typename Parent,
typename ReturnType,
typename A0,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
4012 typedef ReturnType (*Function)(A0, Arg0, Arg1, Arg2, Arg3);
4015 m_callback(callback),
4017 ReturnType DoRun(Arg0 arg0, Arg1 arg1, Arg2 arg2, Arg3 arg3) {
4018 return m_callback(m_a0, arg0, arg1, arg2, arg3);
4021 Function m_callback;
4039template <
typename ReturnType,
typename A0,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
4041 ReturnType (*callback)(A0, Arg0, Arg1, Arg2, Arg3),
4069template <
typename ReturnType,
typename A0,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
4071 ReturnType (*callback)(A0, Arg0, Arg1, Arg2, Arg3),
4089template <
typename Class,
typename Parent,
typename ReturnType,
typename A0,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
4092 typedef ReturnType (Class::*Method)(A0, Arg0, Arg1, Arg2, Arg3);
4096 m_callback(callback),
4098 ReturnType DoRun(Arg0 arg0, Arg1 arg1, Arg2 arg2, Arg3 arg3) {
4099 return (m_object->*m_callback)(m_a0, arg0, arg1, arg2, arg3);
4123template <
typename Class,
typename ReturnType,
typename A0,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
4126 ReturnType (Class::*method)(A0, Arg0, Arg1, Arg2, Arg3),
4157template <
typename Class,
typename ReturnType,
typename A0,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
4160 ReturnType (Class::*method)(A0, Arg0, Arg1, Arg2, Arg3),
4179template <
typename Parent,
typename ReturnType,
typename A0,
typename A1,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
4182 typedef ReturnType (*Function)(A0, A1, Arg0, Arg1, Arg2, Arg3);
4185 m_callback(callback),
4188 ReturnType DoRun(Arg0 arg0, Arg1 arg1, Arg2 arg2, Arg3 arg3) {
4189 return m_callback(m_a0, m_a1, arg0, arg1, arg2, arg3);
4192 Function m_callback;
4213template <
typename ReturnType,
typename A0,
typename A1,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
4215 ReturnType (*callback)(A0, A1, Arg0, Arg1, Arg2, Arg3),
4248template <
typename ReturnType,
typename A0,
typename A1,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
4250 ReturnType (*callback)(A0, A1, Arg0, Arg1, Arg2, Arg3),
4271template <
typename Class,
typename Parent,
typename ReturnType,
typename A0,
typename A1,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
4274 typedef ReturnType (Class::*Method)(A0, A1, Arg0, Arg1, Arg2, Arg3);
4278 m_callback(callback),
4281 ReturnType DoRun(Arg0 arg0, Arg1 arg1, Arg2 arg2, Arg3 arg3) {
4282 return (m_object->*m_callback)(m_a0, m_a1, arg0, arg1, arg2, arg3);
4309template <
typename Class,
typename ReturnType,
typename A0,
typename A1,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
4312 ReturnType (Class::*method)(A0, A1, Arg0, Arg1, Arg2, Arg3),
4348template <
typename Class,
typename ReturnType,
typename A0,
typename A1,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
4351 ReturnType (Class::*method)(A0, A1, Arg0, Arg1, Arg2, Arg3),
4373template <
typename Parent,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
4376 typedef ReturnType (*Function)(A0, A1, A2, Arg0, Arg1, Arg2, Arg3);
4379 m_callback(callback),
4383 ReturnType DoRun(Arg0 arg0, Arg1 arg1, Arg2 arg2, Arg3 arg3) {
4384 return m_callback(m_a0, m_a1, m_a2, arg0, arg1, arg2, arg3);
4387 Function m_callback;
4411template <
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
4413 ReturnType (*callback)(A0, A1, A2, Arg0, Arg1, Arg2, Arg3),
4451template <
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
4453 ReturnType (*callback)(A0, A1, A2, Arg0, Arg1, Arg2, Arg3),
4477template <
typename Class,
typename Parent,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
4480 typedef ReturnType (Class::*Method)(A0, A1, A2, Arg0, Arg1, Arg2, Arg3);
4484 m_callback(callback),
4488 ReturnType DoRun(Arg0 arg0, Arg1 arg1, Arg2 arg2, Arg3 arg3) {
4489 return (m_object->*m_callback)(m_a0, m_a1, m_a2, arg0, arg1, arg2, arg3);
4519template <
typename Class,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
4522 ReturnType (Class::*method)(A0, A1, A2, Arg0, Arg1, Arg2, Arg3),
4563template <
typename Class,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
4566 ReturnType (Class::*method)(A0, A1, A2, Arg0, Arg1, Arg2, Arg3),
4591template <
typename Parent,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
4594 typedef ReturnType (*Function)(A0, A1, A2, A3, Arg0, Arg1, Arg2, Arg3);
4597 m_callback(callback),
4602 ReturnType DoRun(Arg0 arg0, Arg1 arg1, Arg2 arg2, Arg3 arg3) {
4603 return m_callback(m_a0, m_a1, m_a2, m_a3, arg0, arg1, arg2, arg3);
4606 Function m_callback;
4633template <
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
4635 ReturnType (*callback)(A0, A1, A2, A3, Arg0, Arg1, Arg2, Arg3),
4678template <
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
4680 ReturnType (*callback)(A0, A1, A2, A3, Arg0, Arg1, Arg2, Arg3),
4707template <
typename Class,
typename Parent,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
4710 typedef ReturnType (Class::*Method)(A0, A1, A2, A3, Arg0, Arg1, Arg2, Arg3);
4714 m_callback(callback),
4719 ReturnType DoRun(Arg0 arg0, Arg1 arg1, Arg2 arg2, Arg3 arg3) {
4720 return (m_object->*m_callback)(m_a0, m_a1, m_a2, m_a3, arg0, arg1, arg2, arg3);
4753template <
typename Class,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
4756 ReturnType (Class::*method)(A0, A1, A2, A3, Arg0, Arg1, Arg2, Arg3),
4802template <
typename Class,
typename ReturnType,
typename A0,
typename A1,
typename A2,
typename A3,
typename Arg0,
typename Arg1,
typename Arg2,
typename Arg3>
4805 ReturnType (Class::*method)(A0, A1, A2, A3, Arg0, Arg1, Arg2, Arg3),
The base class for all 0 argument callbacks.
Definition Callback.h:119
The base class for all 1 argument callbacks.
Definition Callback.h:982
The base class for all 2 argument callbacks.
Definition Callback.h:1885
The base class for all 3 argument callbacks.
Definition Callback.h:2828
The base class for all 4 argument callbacks.
Definition Callback.h:3811
A 0 argument callback which can be called multiple times.
Definition Callback.h:129
A 1 argument callback which can be called multiple times.
Definition Callback.h:992
A 2 argument callback which can be called multiple times.
Definition Callback.h:1895
A 3 argument callback which can be called multiple times.
Definition Callback.h:2838
A 4 argument callback which can be called multiple times.
Definition Callback.h:3821
A Function callback with 0 create-time args and 0 exec time args.
Definition Callback.h:172
A Function callback with 0 create-time args and 1 exec time args.
Definition Callback.h:1035
A Function callback with 0 create-time args and 2 exec time args.
Definition Callback.h:1938
A Function callback with 0 create-time args and 3 exec time args.
Definition Callback.h:2881
A Function callback with 0 create-time args and 4 exec time args.
Definition Callback.h:3864
A Function callback with 1 create-time args and 0 exec time args.
Definition Callback.h:286
A Function callback with 1 create-time args and 1 exec time args.
Definition Callback.h:1157
A Function callback with 1 create-time args and 2 exec time args.
Definition Callback.h:2068
A Function callback with 1 create-time args and 3 exec time args.
Definition Callback.h:3019
A Function callback with 1 create-time args and 4 exec time args.
Definition Callback.h:4010
A Function callback with 2 create-time args and 0 exec time args.
Definition Callback.h:424
A Function callback with 2 create-time args and 1 exec time args.
Definition Callback.h:1303
A Function callback with 2 create-time args and 2 exec time args.
Definition Callback.h:2222
A Function callback with 2 create-time args and 3 exec time args.
Definition Callback.h:3181
A Function callback with 2 create-time args and 4 exec time args.
Definition Callback.h:4180
A Function callback with 3 create-time args and 0 exec time args.
Definition Callback.h:586
A Function callback with 3 create-time args and 1 exec time args.
Definition Callback.h:1473
A Function callback with 3 create-time args and 2 exec time args.
Definition Callback.h:2400
A Function callback with 3 create-time args and 3 exec time args.
Definition Callback.h:3367
A Function callback with 3 create-time args and 4 exec time args.
Definition Callback.h:4374
A Function callback with 4 create-time args and 0 exec time args.
Definition Callback.h:772
A Function callback with 4 create-time args and 1 exec time args.
Definition Callback.h:1667
A Function callback with 4 create-time args and 2 exec time args.
Definition Callback.h:2602
A Function callback with 4 create-time args and 3 exec time args.
Definition Callback.h:3577
A Function callback with 4 create-time args and 4 exec time args.
Definition Callback.h:4592
A Method callback with 0 create-time args and 0 exec time args.
Definition Callback.h:224
A Method callback with 0 create-time args and 1 exec time args.
Definition Callback.h:1091
A Method callback with 0 create-time args and 2 exec time args.
Definition Callback.h:1998
A Method callback with 0 create-time args and 3 exec time args.
Definition Callback.h:2945
A Method callback with 0 create-time args and 4 exec time args.
Definition Callback.h:3932
A Method callback with 1 create-time args and 0 exec time args.
Definition Callback.h:350
A Method callback with 1 create-time args and 1 exec time args.
Definition Callback.h:1225
A Method callback with 1 create-time args and 2 exec time args.
Definition Callback.h:2140
A Method callback with 1 create-time args and 3 exec time args.
Definition Callback.h:3095
A Method callback with 1 create-time args and 4 exec time args.
Definition Callback.h:4090
A Method callback with 2 create-time args and 0 exec time args.
Definition Callback.h:500
A Method callback with 2 create-time args and 1 exec time args.
Definition Callback.h:1383
A Method callback with 2 create-time args and 2 exec time args.
Definition Callback.h:2306
A Method callback with 2 create-time args and 3 exec time args.
Definition Callback.h:3269
A Method callback with 2 create-time args and 4 exec time args.
Definition Callback.h:4272
A Method callback with 3 create-time args and 0 exec time args.
Definition Callback.h:674
A Method callback with 3 create-time args and 1 exec time args.
Definition Callback.h:1565
A Method callback with 3 create-time args and 2 exec time args.
Definition Callback.h:2496
A Method callback with 3 create-time args and 3 exec time args.
Definition Callback.h:3467
A Method callback with 3 create-time args and 4 exec time args.
Definition Callback.h:4478
A Method callback with 4 create-time args and 0 exec time args.
Definition Callback.h:872
A Method callback with 4 create-time args and 1 exec time args.
Definition Callback.h:1771
A Method callback with 4 create-time args and 2 exec time args.
Definition Callback.h:2710
A Method callback with 4 create-time args and 3 exec time args.
Definition Callback.h:3689
A Method callback with 4 create-time args and 4 exec time args.
Definition Callback.h:4708
A 0 argument callback which deletes itself after it's run.
Definition Callback.h:141
A 1 argument callback which deletes itself after it's run.
Definition Callback.h:1004
A 2 argument callback which deletes itself after it's run.
Definition Callback.h:1907
A 3 argument callback which deletes itself after it's run.
Definition Callback.h:2850
A 4 argument callback which deletes itself after it's run.
Definition Callback.h:3833
Callback0< ReturnType > * NewCallback(ReturnType(*callback)())
A helper function to create a new Callback with 0 create-time arguments and 0 execution time argument...
Definition Callback.h:211
SingleUseCallback0< ReturnType > * NewSingleCallback(ReturnType(*callback)())
A helper function to create a new SingleUseCallback with 0 create-time arguments and 0 execution time...
Definition Callback.h:194
The namespace containing all OLA symbols.
Definition Credentials.cpp:44