diff -r cad71a31b7fc -r e36f3802f733 srsf/nssvasapi/nssvascore/inc/nssvasctag.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/srsf/nssvasapi/nssvascore/inc/nssvasctag.h Wed Sep 01 12:29:17 2010 +0100 @@ -0,0 +1,159 @@ +/* +* Copyright (c) 2004-2006 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: CNssTag implements MNssTag. In addition, it provides members for use +* by VAS internal components. +* +*/ + + +#ifndef NSSVASCTAG_H +#define NSSVASCTAG_H + +// includes +#include "nssvasmtag.h" +#include "nssvasccontext.h" +#include "nssvascrrd.h" +#include "nssvascspeechitem.h" +#include "nssvascoreconstant.h" + +// CLASS DECLARATION + +/** +* CNssTag is the implementation class for MNssTag interface. +* It encapsulates tag data. A tag cannot be directly created by a client. +* A client has to own an instance of Tag Manager which has methods for creating +* tag objects. The CNssTag class also provides additional members for internal +* use by VAS. +* @lib NssVASApi.lib +* @since 2.8 +*/ + +class CNssTag: public CBase, public MNssTag +{ + +public: // functions for internal VAS use + + /** + * Two-phased constructor. Creates an empty tag object + * for internal use. + */ + static CNssTag* NewLC(); + + /** + * Two-phased constructor. Creates an empty tag object + * for internal use. + */ + static CNssTag* NewL(); + +public: + + /** + * C++ constructor. + * @param aContext - pointer to a previously created context + * @param aRRD - pointer to a previously created rrd + * @param aSpeechItem - pointer to a previously created speech item + * @return + */ + CNssTag(CNssContext* aContext, CNssRRD* aRRD, CNssSpeechItem* aSpeechItem); + + /** + * Destructor. + * @param + * @return + */ + ~CNssTag(); + + /** + * Get the context for this tag. + * @since 2.0 + * @param + * @return pointer to the context for this tag + */ + MNssContext* Context(); + + /** + * Get the RRD for this tag. + * @since 2.0 + * @param + * @return pointer to the RRD for this tag + */ + MNssRRD* RRD(); + + /** + * Get the Speech Item for this tag. + * @since 2.0 + * @param + * @return pointer to the RRD for this tag + */ + MNssSpeechItem* SpeechItem(); + + /** + * Get the Tag Id for this tag. + * @since 2.0 + * @param + * @return id for this tag + */ + TInt TagId(); + + /** + * Set the Tag Id for this tag. + * @since 2.0 + * @param aId - id for this tag + * @return + */ + void SetTagId(TInt aId); + + /** + * Creates a copy of the tag object and returns a pointer + * to the newly created tag. CopyL creates a new rrd object and + * a new speech item for the new tag. CopyL uses the same context + * object from the source tag into the new tag. A client calling calling + * this method takes the responsibility of deleting the new tag object. + * For internal use by by VAS components. + * @since 2.0 + * @param + * @return pointer to the tag object newly created + */ + CNssTag *CopyL(); + +private: + /** + * Constructor used in two-phased construction + */ + CNssTag(); + + /** + * Two-phase construction + */ + void ConstructL(); + +private: + + // context object + CNssContext* iContext; + + // RRD object + CNssRRD* iRRD; + + // speech item object + CNssSpeechItem* iSpeechItem; + + // tag id, for internal use + TInt iTagId; + +}; + +#endif // NSSVASCTAG_H + +// End of File