connectivitymodules/SeCon/services/csc/inc/capinfo.h
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:20:56 +0100
branchRCL_3
changeset 20 4a793f564d72
parent 0 d0791faffa3f
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201032 Kit: 201035

/*
* Copyright (c) 2002-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:  Capability service controller
*
*/


#ifndef _CAPINFO_H_
#define _CAPINFO_H_

#include <e32base.h>
#include <f32file.h>

#include "caputils.h"

//
// CCapInfo creates capability document
// 
//

class CCapList;
class CStringList;
class TSConSolutionInfo;
class CSconVersionInfo;

NONSHARABLE_CLASS( CCapInfo ) : public CBase
{
public:
    static CCapInfo* NewL();        
    ~CCapInfo();
private:
    CCapInfo();
    void ConstructL();

public:
    void CapabilityDocumentL( CBufFlat* aBuf );

private:
    CCapList* CapList();
    void SetCapabilityBuf( CBufFlat* aBuf );
    
    void GeneralInfoL();
    void MemoryInfoL();
    void WriteMemoryInfoL( TMemoryInfo& aInfo );
    void ServiceInfoL( const TDesC& aDir, const RArray<TFileName>& aExcludeList,
        RArray<TFileName>& aFilesAdded );
    void FolderServiceL();
    
    void SyncSolutionsServiceL();
    void WriteSyncSolutionsServiceL( const TSConSolutionInfo& aCalendar,
    		const TSConSolutionInfo& aContact,
    		const TSConSolutionInfo& aSms,
    		const TSConSolutionInfo& aBookmark );
    void WriteSolutionTagL( const TDesC& aContentName, const TSConSolutionInfo& aSolution );
    
    void WriteFolderL( const TDesC& aType, const TDesC& aFullName, const TDesC& aMemory );

    void WriteValueL( TInt aId, const TDesC& aValue );
    void WriteBigValueL( TInt aId, const TDesC& aValue );
    void WriteValueL( TInt aId, TInt64 aValue );
    void WriteTagL( TInt aId, TInt aType );
    void WriteAttributeL( TInt aId, const TDesC& aVersion, const TDesC& aDate );
    void WriteL( const TDesC& aText );

    void WriteFromListL( CStringList* aList );
    void WriteNewLineL();

    void FormatElement( TDes& aText );
    void AddFormatText( TDes& aText, TInt aNum ) const;

private:
    RFs             iFsSession;     // has
    CCapList*       iCapList;       // has
    HBufC8*         iHeapBuf;       // has
    TBuf<KMaxSize>  iBuf;
    TIdStack        iIdStack;

    CBufFlat*       iCapabilityBuf; // uses
    CSconVersionInfo* iSconInfo;
};

#endif // CCapability