diff -r 13d7c31c74e0 -r b183ec05bd8c remotemgmt_plat/syncml_ds_customization_api/inc/nsmldevinfextdatacontainerplugin.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/remotemgmt_plat/syncml_ds_customization_api/inc/nsmldevinfextdatacontainerplugin.h Tue Aug 31 16:04:06 2010 +0300 @@ -0,0 +1,103 @@ +/* +* Copyright (c) 2010 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: Device Info Extension Data Container Plugin header file. +* +*/ + +#ifndef __NSMLDEVINFEXTDATACONTAINERPLUGIN_H__ +#define __NSMLDEVINFEXTDATACONTAINERPLUGIN_H__ + + +// EXTERNAL INCLUDES +#include +#include +#include + +// CONSTANTS +const TUid KExtDataContainerInterfaceUid = { 0x2002DC7C }; + +// CLASS DEFINITION +/** + * Interface definition for Device Info Extension Data Container plugin + */ +class CNSmlDevInfExtDataContainerPlugin : public CBase + { + + public: // Constructor & Destructor + + /** + * Destructor + */ + virtual ~CNSmlDevInfExtDataContainerPlugin(); + + /** + * Constructor for plugin instantiation + */ + static CNSmlDevInfExtDataContainerPlugin* NewL(); + + public: // Pure virtual methods to be implemented by the actual plugins + /** + * Resolve number of device info extensions + * + * @return Number of extensions + */ + virtual TInt GetExtensionCountL() = 0; + + /** + * Resolve name of the extension in the given extension index. + * The number of extensions supported can be deduced using + * GetExtensionCountL() method. If the method is called with an index + * out of range (i.e. negative value or value greater than/equal to + * the value returned by GetExtensionCountL()), the method should + * leave with KErrArgument. + * + * Note that any extension has one field. + * + * @param aExtIndex Index of the extension to be returned. + * @return Name of the extension + */ + virtual const TDesC8& GetExtNameL( TInt aExtIndex ) = 0; + + /** + * Resolve number of values related to particular extension. If the + * method is called with an index out of range (i.e. negative value + * or value greater than/equal to the value returned by + * GetExtensionCountL()), the method should leave with KErrArgument. + * + * Note that any extension can have 0...n number of values + * + * @param aExtIndex Index of an extension + * @return Number of available values + */ + virtual TInt GetExtValueCountL( TInt aExtIndex ) = 0; + + /** + * Resolve field of an extension. If the method is called + * with illegal index values (i.e. negative value or with non-existent + * index), the method should leave with KErrArgument. + * + * @param aExtIndex Index of an extension + * @param aValueIndex Index of a value related to particular extension + * @return Value on textual format + */ + virtual const TDesC8& GetExtValueL( + TInt aExtIndex, TInt aValueIndex ) = 0; + + private: + TUid iDtor_ID_Key; // Instance identifier key + }; + +#include "nsmldevinfextdatacontainerplugin.inl" // Base implementations for ECOM + +#endif // __NSMLDEVINFEXTDATACONTAINERPLUGIN_H__