diff -r 000000000000 -r 3553901f7fa8 telephonyserverplugins/common_tsy/commontsy/inc/mmutility/CMmTsyBase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/telephonyserverplugins/common_tsy/commontsy/inc/mmutility/CMmTsyBase.h Tue Feb 02 01:41:59 2010 +0200 @@ -0,0 +1,170 @@ +/* +* Copyright (c) 2006-2009 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: +* +*/ + + + +#ifndef _CMMTSYBASE_H +#define _CMMTSYBASE_H + +// INCLUDES +#include "CMmSubTsyBase.h" +#include "MmTsy_timeoutdefs.h" + +// CLASS DECLARATION + +/** + * CMmTsyBase contains functionality common to all TSY objects. + * It also provides default implementations to some of the virtual + * functions. + */ +NONSHARABLE_CLASS( CMmTsyBase ) : public CSubSessionExtBase + { + public: // Constructors and destructor + + /** + * Constructor + */ + CMmTsyBase(); + + /** + * Destructor + */ + virtual ~CMmTsyBase(); + + // New functions + + /** + * Initialisation method + */ + virtual void Init(); + + /** + * New instances are created by given name. By default: not supported + * and should never be called. Leaves. + * + * + * @param aName a name + * @return CTelObject + */ + virtual CTelObject* OpenNewObjectByNameL(const TDesC& aName); + + /** + * New instances are created by given name. By default: not supported + * and should never be called. Leaves. + * + * + * @param aNewName a name + * @return CTelObject + */ + virtual CTelObject* OpenNewObjectL(TDes& aNewName); + + /** + * Returns request mode for given IPC number. + * + * + * @param anIpc an interprocess communication command identifier + * @return TInt the ReqMode corresponding to given IPC + */ + virtual CTelObject::TReqMode ReqModeL( const TInt anIpc ); + + /** + * Returns number of slots to be used for given IPC. + * + * + * @param anIpc an interprocess communication command identifier + * @return TInt the number of slots reserved for a given IPC + */ + virtual TInt NumberOfSlotsL( const TInt anIpc ); + + /** + * Cancels request of which IPC number and request handle are given in + * parameters. + * + * + * @param anIpc an interprocess communication command identifier + * @param aTsyReqHandle Request handle + * @return TInt KErrGeneral if unknown IPC + */ + virtual TInt CancelService(const TInt anIpc, + const TTsyReqHandle aTsyReqHandle ); + + /** + * Register given notification. + * + * + * @param anIpc: an interprocess communication command identifier + * @return TInt KErrNotSupported + */ + virtual TInt RegisterNotification( const TInt anIpc ); + + /** + * Deregister given notification. + * + * + * @param anIpc: an interprocess communication command identifier + * @return TInt KErrNotSupported + */ + virtual TInt DeregisterNotification( const TInt anIpc ); + + /** + * Gives pointer to the array of TSY's subsystems. + * + * + * @return CMmSubTsyBase** Array of pointers to CMmSubTsyBase classes + */ + virtual CMmSubTsyBase** GetSubsystemArrayPtr() = 0; + + /** + * Gives the maximun number of TSY's subsystems. + * + * @return TInt number of subsystems + */ + virtual TInt GetMaxNumberOfSubsystems() = 0; + +#ifdef REQHANDLE_TIMER + + /** + * Calls the needed complete method due timer expiration + * + * + * @param aReqHandleType req handle type. + * @param aError error value + * @param aIPC IPC value + */ + virtual void Complete( TInt aReqHandleType, TInt aError, TInt aIPC); + +#endif //REQHANDLE_TIMER + + /** + * Handles extended client requests. Uses TRAP to ensure functioning + * on memory allocation failure. + * + * + * @param aTsyReqHandle Request handle + * @param aPackage reference to a data package + * @return KErrNone if request accepted, else several possibilities + * depending on IPC + */ + virtual TInt DoBaseExtFuncL(const TTsyReqHandle aTsyReqHandle, + const TInt anIpc, + const TDataPackage& aPackage); + + }; + +#endif // CMMTSYBASE_H + +// End of file