omadm/omadmextensions/adapters/browseradapter/inc/nsmlbrowseradapter.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 17 Dec 2009 08:40:12 +0200
changeset 0 3ce708148e4d
permissions -rw-r--r--
Revision: 200949 Kit: 200951

/*
* Copyright (c) 2007 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:    DM Browser Adapter
*
*/






#ifndef __NSMLDMDEVINFOADAPTER_H__
#define __NSMLDMDEVINFOADAPTER_H__

// INCLUDES
#include <e32base.h>
#include <smldmadapter.h>
#include "nsmldmconstants.h"

// MACROS

// the DDF version must be changed if any changes in DDF structure 
// ( built in DDFStructureL() function )
_LIT8( KNSmlDMBrowserAdapterDDFVersion, "1.0" ); 

_LIT8 (KNSmlURISeparator ,"/");

_LIT8( KNSmlDMBrowserAdapterTextPlain, "text/plain" );
_LIT8( KNSmlDMBrowserAdapterNodeName, "Browser" );
_LIT8( KNSmlDMBrowserAdapterDescription, "The parent object holding all Browser objects" );
_LIT8( KNSmlDMBrowserStartpageURLDescription, "The default URL that is connected when the browser opens" );

_LIT8( KNSmlDMBrowserAdapterAPNode, "ToConRef" );
_LIT8( KNSmlDMBrowserAdapterBrowserNodes, "ToConRef/StartPage" );
_LIT8( KNSmlDMBrowserAdapterStartpageURL, "StartPage" );
_LIT8( KNSmlDMBrowserAdapterAPNodeDescription, "To set the default AP of browser" );
_LIT8( KNSmlDMBrowserAdapterAPvalue,"");

_LIT8( KNSmlDMBrowserAdapterAPDefaultvalue,"AP/APId001");


const TInt KMaxLengthStartpageName = 255;

const TInt KBrowserHomePageUDefined = 1;
const TInt KMaxLengthStartpageBookmark = 3;

const TUint32 KBrowserNGStartpageURL = 0x00000030;
//const TUint32 KBrowserNGHomepageType = 0x00000031;



// CLASS DECLARATION
class CNSmlDmBrowserAdapter : public CSmlDmAdapter
    {
public: // constructors and destructor
    static CNSmlDmBrowserAdapter* NewL(MSmlDmCallback* aDmCallback );
    static CNSmlDmBrowserAdapter* NewLC(MSmlDmCallback* aDmCallback );

    virtual ~CNSmlDmBrowserAdapter();

private: ///new functions

    void SetLeafPropertiesL( MSmlDmDDFObject& aObject, 
                 const TSmlDmAccessTypes& aAccessTypes, 
                 const TDesC8& aDescription ) const;
    CNSmlDmBrowserAdapter(TAny* aEcomArguments);
    CSmlDmAdapter::TError FetchLeafObjectL( const TDesC8& aURI, CBufBase& aObject );
    
private: // from base classes
    // Adapter interface from CSmlDmAdapter
    void DDFVersionL( CBufBase& aDDFVersion );
    void DDFStructureL( MSmlDmDDFObject& aDDF );
    void UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
                const TDesC8& aObject, const TDesC8& aType, 
                const TInt aStatusRef );
    void DeleteObjectL( const TDesC8& aURI, const TDesC8& aLUID, TInt aStatusRef ); 
    void FetchLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
                   const TDesC8& aType, const TInt aResultsRef, 
                   const TInt aStatusRef ); 
    void ChildURIListL( const TDesC8& aURI, const TDesC8& aLUID, 
                const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList, 
                const TInt aResultsRef, const TInt aStatusRef );  
    void AddNodeObjectL( const TDesC8& aURI, const TDesC8& aParentLUID, 
                 const TInt aStatusRef );
    
    void UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
                RWriteStream*& aStream, const TDesC8& aType, 
                const TInt aStatusRef );
    void FetchLeafObjectSizeL( const TDesC8& aURI, const TDesC8& aLUID, 
                   const TDesC8& aType, const TInt aResultsRef, 
                   const TInt aStatusRef );
     
    void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID,
                          const TDesC8& aArgument, 
                          const TDesC8& aType,
                          const TInt aStatusRef );
                                  
    void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID,
                          RWriteStream*& aStream, 
                          const TDesC8& aType,
                          const TInt aStatusRef );
    
    void CopyCommandL( const TDesC8& aTargetURI, const TDesC8& aTargetLUID,
                       const TDesC8& aSourceURI, 
                       const TDesC8& aSourceLUID,
                       const TDesC8& aType, TInt aStatusRef );
    void StartAtomicL();
    void CommitAtomicL();
    void RollbackAtomicL();
    TBool StreamingSupport( TInt& aItemSize );
    void StreamCommittedL();
    void CompleteOutstandingCmdsL();
    
    
private:
    MSmlDmCallback* iDmCallback;
    };

#endif // __NSMLDMDEVINFOADAPTER_H__