00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _pobject_h_
00021 #define _pobject_h_
00022
00023 #include <pclasses/config.h>
00024 #include <pclasses/pexport.h>
00025 #include <pclasses/psignal.h>
00026
00027 #ifdef CXX_NAMESPACES
00028 namespace P {
00029 #endif
00030
00032 class PCORE_EXPORT Object {
00033 public:
00034 Object() {}
00035 virtual ~Object() {}
00036
00038 template <class RetType>
00039 RetType emit(Signal0<RetType>& s) {
00040 return s.emit();
00041 }
00042
00044 template <class RetType, class P1>
00045 RetType emit(Signal1<RetType, P1>& s, P1 p1) {
00046 return s.emit(p1);
00047 }
00048
00050 template <class RetType, class P1, class P2>
00051 RetType emit(Signal2<RetType, P1, P2>& s, P1 p1, P2 p2) {
00052 return s.emit(p1, p2);
00053 }
00054
00055 };
00056
00057 #ifdef CXX_NAMESPACES
00058 }
00059 #endif
00060
00061 #endif