diff -r 000000000000 -r 72b543305e3a email/imap4mtm/imapsession/inc/cimapatom.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email/imap4mtm/imapsession/inc/cimapatom.h Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,86 @@ +// Copyright (c) 1998-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: +// CImapAtom header +// +// + +#ifndef __CIMAPATOM_H__ +#define __CIMAPATOM_H__ + +#include +#include +#include +#include +#include + +/** +Represents an atom of data from incoming IMAP bodystructure data. +This class contains a TPtrC which points to the data 'owned' by +this atom in the buffer. It also contains next (sibling) and child pointers, +with which the tree is constructed. + +@internalComponent +@prototype +*/ +class CImapAtom : public CBase + { + friend class CImapAtomParser; + +public: + static CImapAtom* NewLC(); + ~CImapAtom(); + + void Set(const TDesC8& aAtom, TBool aAtomIsQuoted); + void AddChild(CImapAtom *aNewChild); + void AddNext(CImapAtom *aNewNext); + + // Get child/next pointers + CImapAtom* Child(); + CImapAtom* Next(); + + const TDesC8& Atom(TBool aNString); + TBool AtomIsQuoted(); + + TBool Match(const TDesC8& aValue); + +private: + CImapAtom(); + + // Only to be used by CImapAtomParser + void FixupL(const HBufC8 *aNewBuffer, const TText8 *aOldBuffer); + +private: + /** + The string data for this atom. + */ + TPtrC8 iAtom; + /** + Whether the data for this atom was delivered within quotes. + */ + TBool iAtomIsQuoted; + + /** + Pointer to the first nested atom after an opening bracket (which may or may not be an opening bracket too) + Not owned by this class, but can be set to NULL when this atom does not have a child. + */ + CImapAtom* iChild; + /** + If this atom is an opening bracket, then this points to the next atom after the matching closing bracket + Otherwise, this just points to the next atom that was found. + Not owned by this class, but can be set to NULL when this atom does not have a next atom. + */ + CImapAtom* iNext; + }; + +#endif // __CIMAPATOM_H__