diff -r 4ea6f81c838a -r 0e9bb658ef58 mmuifw_plat/alf_widgetmodel_api/inc/alf/alfeventoutputsignalsubscriber.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmuifw_plat/alf_widgetmodel_api/inc/alf/alfeventoutputsignalsubscriber.h Wed Sep 01 12:23:18 2010 +0100 @@ -0,0 +1,63 @@ +/* +* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Event output signal subscriber interface +* +*/ + + +#ifndef ALFEVENTOUTPUTSIGNALSUBSCRIBER_H +#define ALFEVENTOUTPUTSIGNALSUBSCRIBER_H + +#include +//using namespace osncore; + +namespace Alf + { + +/** + * Event output signal subscriber interface. + */ +class IAlfEventOutputSignalSubscriber + { +public: + /** + * Called by event output signal. This method calls subscriber's callback method. + */ + virtual void receiveSignal() = 0; + virtual ~IAlfEventOutputSignalSubscriber() {} + }; + +/** + * Event output signal subscriber. + */ +template +OSN_NONSHARABLE_CLASS( AlfEventOutputSignalSubscriber ) + : public IAlfEventOutputSignalSubscriber + { +public: + explicit AlfEventOutputSignalSubscriber(T& aSubscriber, void (T::*aFnc)(void)) + :mSubscriber(aSubscriber), mFnc(aFnc) {} + + void receiveSignal() {(mSubscriber.*mFnc)();} + +private: // data + // Subscriber + T& mSubscriber; + // Callback + void (T::*mFnc)(void); + }; + + } // namespace Alf + +#endif // ALFEVENTOUTPUTSIGNALSUBSCRIBER_H