diff -r 33a5d2bbf6fc -r 73a1feb507fb mmsharinguis_plat/live_comms_plugin_api/inc/lcengine.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmsharinguis_plat/live_comms_plugin_api/inc/lcengine.h Tue Aug 31 15:12:07 2010 +0300 @@ -0,0 +1,96 @@ +/* +* Copyright (c) 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 CLCENGINE_H +#define CLCENGINE_H + +// INCLUDES +#include + +// FORWARD DECLARATIONS +class MLcSession; + +// CONSTANTS +/** Interface UID of this ECOM interface */ +const TUid KLcEngineInterfaceUid = { 0x20021340 }; + +// CLASS DECLARATION +/** +* A base class for ECom plug-ins implementing +* the Live Comms engine plug-in API. +*/ +class CLcEngine : public CBase + { + public: // Enumerations + + /** + * The list of plug-in configurable features. + */ + enum TLcFeature + { + ELcShowInvitingNote, + ELcShowWaitingNote, + ELcShowAcceptQuery, + ELcSendVideoQuery + }; + + public: // Constructors and destructor + + /** + * Loads and creats an instance of the plug-in. + * @param aEngineName used in finding the correct implementation. + * Matched to the IMPLEMENTATION_INFO / default_data of the plug-in. + * @return a new instance of CLcEngine, the ownership is transferred + */ + inline static CLcEngine* NewL( const TDesC8& aEngineName ); + + /** + * Destructor + */ + inline ~CLcEngine(); + + public: // New pure virtual functions + + /** + * Returns a reference to the session created by the plug-in. + * @return the session + */ + virtual MLcSession& Session() = 0; + + public: // New virtual functions + + /** + * Checks if a feature should be used with the particular engine. + * @param aLcFeature the identifier of the feature + * @return ETrue if the feature is supported, otherwise EFalse. + */ + inline virtual TBool IsFeatureSupported( TLcFeature aLcFeature ); + + protected: // Constructors + + inline CLcEngine(); + + public: // Data + + TUid iInstanceKey; + }; + +#include "lcengine.inl" + +#endif // CLCENGINE_H + +// end of file