AHandlerReflector.h revision 5994b4798b01f3dd340577c9ea9657f09093a770
1#ifndef A_HANDLER_REFLECTOR_H_ 2 3#define A_HANDLER_REFLECTOR_H_ 4 5#include <media/stagefright/foundation/AHandler.h> 6 7namespace android { 8 9template<class T> 10struct AHandlerReflector : public AHandler { 11 AHandlerReflector(T *target) 12 : mTarget(target) { 13 } 14 15protected: 16 virtual void onMessageReceived(const sp<AMessage> &msg) { 17 sp<T> target = mTarget.promote(); 18 if (target != NULL) { 19 target->onMessageReceived(msg); 20 } 21 } 22 23private: 24 wp<T> mTarget; 25 26 AHandlerReflector(const AHandlerReflector<T> &); 27 AHandlerReflector<T> &operator=(const AHandlerReflector<T> &); 28}; 29 30} // namespace android 31 32#endif // A_HANDLER_REFLECTOR_H_ 33