diff -r 4ea6f81c838a -r 0e9bb658ef58 mmuifw_plat/mul_datamodel_api/inc/mul/imulvarianttype.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmuifw_plat/mul_datamodel_api/inc/mul/imulvarianttype.h Wed Sep 01 12:23:18 2010 +0100 @@ -0,0 +1,123 @@ +/* +* Copyright (c) 2007-2008 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: Interface for generic data type +* +*/ + + +#ifndef I_MULVARIANTTYPE_H +#define I_MULVARIANTTYPE_H + +#include +//#include +#include + +// Forward Declarations + +namespace Alf + { + +// Forward Declarations + class IAlfMap; + +/*! @class IMulVariantType + * @brief Interface for mul model data type + * + * Application should implement this interface if application needs + * to provide custom data type to model. + * + */ +class IMulVariantType + { +public: + + enum TMulType{ EUnknown ,EBool, EInt, EUint, EReal, EDes, EMap, ECustomData }; + + /** + * Create copy of variant type + * + * @return Copy of variant type and ownsership is transferred + */ + virtual std::auto_ptr< IMulVariantType > Clone() = 0; + + /** + * Get data as symbian descriptior + * + * @return Descriptor data value. + */ + virtual const TDesC& DesC() const = 0 ; + + /** + * Type of data + * + * @return Data type of Variant Data + */ + virtual TMulType Type() const = 0 ; + + /** + * Destructor + */ + virtual ~IMulVariantType() + { + } + + /** + * Get the data value as an bool . + * + * @exception osncore:AlfDataException Thrown if type() is not EBool. + * @return bool data value. + */ + virtual bool boolean() const = 0; + + /** + * Get the data value as an integer. + * + * @exception osncore:AlfDataException Thrown if type() is not EInt. + * @return Integer data value. + */ + virtual int integer() const = 0; + + /** + * Get the data value as an unsigned integer. + * + * @exception osncore:AlfDataException Thrown if type() is not EUInt. + * @return Unsigned integer data value. + */ + virtual uint uinteger() const = 0; + + /** + * Get the data value as a real number. + * + * @exception osncore:AlfDataException Thrown if type() is not EReal. + * @return Real data value. + */ + virtual double real() const = 0; + + /** + * Get the data value as a map interface. + * + * @exception osncore:AlfDataException Thrown if type() is not EMap. + * @return Map interface. + * @since S60 ?S60_version + */ + virtual IAlfMap& Map() const = 0 ; + + }; + + } // namespace Alf + +#endif // I_MULVARIANTTYPE_H + +//End of file +