diff -r 000000000000 -r 094583676ce7 PECengine/PluginServer2/Common/CPEngPluginStatus.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PECengine/PluginServer2/Common/CPEngPluginStatus.h Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,167 @@ +/* +* Copyright (c) 2004 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: See class description below. +* +*/ + + +#ifndef __CPENGPLUGINSTATUS_H__ +#define __CPENGPLUGINSTATUS_H__ + +// INCLUDES +#include +#include + +// CLASS DEFINITION +/** +* This is container where state of plugins is stored. +* This is used for example to inform client if the plugin has been loaded +* or if the loading has failed. +* +* @lib PEngPlgSrv.lib +* @since 2.1 +*/ + +NONSHARABLE_STRUCT( TPEngPluginResult ) + { + TUid iUid; + TPEngPluginStatusCode iStatus; + + TPEngPluginResult( TUid aUid, TPEngPluginStatusCode aStatus ) + : iUid( aUid ), iStatus( aStatus ) + { + } + }; + +NONSHARABLE_CLASS( CPEngPluginStatus ) + : public CBase, public MPEngPluginStatus + { +public: // Constructors and destructors + + static CPEngPluginStatus* NewL(); // Static constructor + static CPEngPluginStatus* NewLC(); // Static constructor + virtual ~CPEngPluginStatus(); // Destructor (virtual) + +public: // New methods + + /** + * Count if results in this object. + * + * + * @since 2.8 + * @return TUint is count of results + */ + TUint Count() const; + + /** + * UID3 of plugin. + * + * @since 2.8 + * @param aIndex is index to result buffer. + * @return TUid is plugin uid. + */ + TUid Uid( TUint aIndex ) const; + + /** + * Status of plugin. + * + * + * @since 2.8 + * @param aIndex is index of result. + * @return TPEngPluginStatusCode is last status of the plugin. + * Codes listed in MPEngPluginStatus.h + */ + TPEngPluginStatusCode Status( TUint aIndex ) const; + + /** + * Find status of certain plugin + * + * @since 2.8 + * @param aPluginUid is UID3 of the plugin + * @return TInt is KErrNotFound or index. + */ + TInt Find( TUid aPluginUid ) const; + + /** + * CleanupStack support. + * + * !!! Destroys this object !!! + * + * + * @since 2.8 + */ + void Close(); + + /** + * Add result to result container. + * + * + * @since 2.8 + * @param aUid is UID3 of the plugin + * @param aStatus is status of the plugin + */ + void AddResultL( TUid aUid, TPEngPluginStatusCode aStatus ); + + /** + * Frees memory allocated to this result container. + * + * @since 2.8 + */ + void Zero(); + + /** + * Remove result from container. + * + * @since 2.8 + * @param aIndex is index of result to be removed. + * Will panic if you give invalid index. + */ + void Remove( TUint aIndex ); + + /** + * Allocate space for result container. + * + * Used only when transferring results from server to client side. + * + * @since 2.8 + * @param aCount is count of results this container should hold. + */ + void AllocateSpaceForResultsL( TUint aCount ); + + /** + * Returns buffer when server can write the results. + * + * @since 2.8 + * @param aCount tells how many results will be wrapped in this buffer. + * @return TPtr8 is buffer where server can safely read or write results. + */ + TPtr8 Buffer( TUint aCount = 0 ) const; + +protected: // Constructors and destructors + + CPEngPluginStatus();// Default constructor, protected to allow derivation + void ConstructL(); // Second phase construct + +private: // Methods not implemented + + CPEngPluginStatus( const CPEngPluginStatus& ); // Copy constructor + CPEngPluginStatus& operator=( const CPEngPluginStatus& ); // Assigment operator + +private: // Data + + //Array of results + RArray iResults; + }; + +#endif // __CPENGPLUGINSTATUS_H__