diff -r 02103bf20ee5 -r 90dbfc0435e3 bluetoothengine/headsetsimulator/core/inc/Plugin/hsprofilepluginbase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bluetoothengine/headsetsimulator/core/inc/Plugin/hsprofilepluginbase.h Wed Sep 15 15:59:44 2010 +0200 @@ -0,0 +1,126 @@ +/* + * Component Name: Headset Simulator + * Author: Comarch S.A. + * Version: 1.0 + * Copyright (c) 2010 Comarch S.A. + * + * This Software is submitted by Comarch S.A. to Symbian Foundation Limited on + * the basis of the Member Contribution Agreement entered between Comarch S.A. + * and Symbian Foundation Limited on 5th June 2009 (“Agreement”) and may be + * used only in accordance with the terms and conditions of the Agreement. + * Any other usage, duplication or redistribution of this Software is not + * allowed without written permission of Comarch S.A. + * + */ + +#ifndef HSPROFILEBASE_H_ +#define HSPROFILEBASE_H_ + +#include +#include +#include +#include + +/** + * Profile plugin's UID + */ +const TUid KHsProfileBaseInterfaceDefinitionUid = + { + 0xE0009DC1 + }; + +/** + * @brief Abstract methods for profile plugin + */ +class MHsProfileBase +{ +public: + /** + * Destructor + */ + virtual ~MHsProfileBase() { }; + + /** + * Profile's method for handling AT Commands + * + * @param aCommandsIn AT command received by HS + * @param aCommandsOut response + * @param aFromAG denotes if AT command was sent from AG + */ + virtual void HandleCommandL( const TDesC8& aCommandsIn, TDes8& aCommandsOut, + const TBool aFromAG = ETrue ) = 0; + + /** + * Profile's method for handling AG client disconnection + * + * @param aErr disconnection reason + */ + virtual void HandleClientDisconnected( TInt aErr ) = 0; + + /** + * Profile's method for handling AG client connection + * + * @param aCommandOut response + */ + virtual void HandleClientConnected( TDes8& aCommandOut ) = 0; + + /** + * Profile's method for accepting incoming call + * + * @param aCommandOut response + */ + virtual void HandleAcceptCallL( TDes8& aCommandOut ) = 0; + + /** + * Profile's method for releasing ongoing call + * + * @param aCommandOut response + */ + virtual void HandleReleaseCallL( TDes8& aCommandOut ) = 0; + +}; + +/** + * @brief Base class for profile plugins + */ +class CHsProfileBase : public CHsEComPluginBase, public MHsProfileBase +{ +public: + /** + * Two-phase constructor + * @param aUid plugin's UID + * @return instance of class + */ + static CHsProfileBase* NewL( const TUid aUid ); + + /** + * Two-phase constructor + * @param aProfileName plugin's name + * @return instance of class + */ + static CHsProfileBase* NewL( const TDesC8 &aProfileName ); + +public: + /** + * Destructor + */ + virtual ~CHsProfileBase(); + +public: + //Methods inherited from MHsProfileBase + + virtual void HandleCommandL( const TDesC8 &aCommandsIn, TDes8 &aCommandsOut, + const TBool aFromAG = ETrue ) = 0; + + virtual void HandleClientDisconnected( TInt aErr ) = 0; + + virtual void HandleClientConnected( TDes8& aCommandOut ) = 0; + + virtual void HandleAcceptCallL( TDes8& aCommandOut ) = 0; + + virtual void HandleReleaseCallL( TDes8& aCommandOut ) = 0; +}; + +#include "hsprofilepluginbase.inl" + +#endif /* HSPROFILEBASE_H_ */