deviceupdatesui/omadmadapters/connmoadapter/inc/AddBuffer.h
author hgs
Tue, 13 Jul 2010 03:44:34 +0530
changeset 44 137912d1a556
permissions -rw-r--r--
201021
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
44
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* ==============================================================================
hgs
parents:
diff changeset
     3
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
hgs
parents:
diff changeset
     4
* All rights reserved.
hgs
parents:
diff changeset
     5
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     6
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     7
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     8
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     9
*
hgs
parents:
diff changeset
    10
* Initial Contributors:
hgs
parents:
diff changeset
    11
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    12
*
hgs
parents:
diff changeset
    13
* Contributors:
hgs
parents:
diff changeset
    14
* 
hgs
parents:
diff changeset
    15
* Description:
hgs
parents:
diff changeset
    16
*
hgs
parents:
diff changeset
    17
* ==============================================================================
hgs
parents:
diff changeset
    18
*/
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
#ifndef ADDBUFFER_H_
hgs
parents:
diff changeset
    21
#define ADDBUFFER_H_
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
TInt const KMaxFieldLength = 128;
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
/**
hgs
parents:
diff changeset
    26
* CConnMoNodeElement is array element for ConnMo node objects.  
hgs
parents:
diff changeset
    27
*/
hgs
parents:
diff changeset
    28
class CConnMoNodeElement : public CBase
hgs
parents:
diff changeset
    29
    {
hgs
parents:
diff changeset
    30
public:
hgs
parents:
diff changeset
    31
    CConnMoNodeElement();
hgs
parents:
diff changeset
    32
    ~CConnMoNodeElement();
hgs
parents:
diff changeset
    33
    
hgs
parents:
diff changeset
    34
    /** Node address */
hgs
parents:
diff changeset
    35
    TBuf8<KMaxFieldLength>  iUri;
hgs
parents:
diff changeset
    36
    /** Unique identifier of the parent node */
hgs
parents:
diff changeset
    37
    TBuf8<KMaxFieldLength>  iParentLUID;
hgs
parents:
diff changeset
    38
    /** Leaf object's data */
hgs
parents:
diff changeset
    39
    TBuf8<KMaxFieldLength>  iObject;
hgs
parents:
diff changeset
    40
    /** Refenrence for giving commands return value to framework */
hgs
parents:
diff changeset
    41
    TInt  iStatusRef;
hgs
parents:
diff changeset
    42
    /** Information whether adapter has processed the node or not */
hgs
parents:
diff changeset
    43
    TBool iProcessed;
hgs
parents:
diff changeset
    44
    /** Specifies if the node leaf or not */
hgs
parents:
diff changeset
    45
    TBool iLeaf;
hgs
parents:
diff changeset
    46
private:
hgs
parents:
diff changeset
    47
    };
hgs
parents:
diff changeset
    48
hgs
parents:
diff changeset
    49
/**
hgs
parents:
diff changeset
    50
* CAddBuffer is array for ConnMo nodes to be added in .
hgs
parents:
diff changeset
    51
* 
hgs
parents:
diff changeset
    52
* CConnMoAdapter uses this class to buffer node and leaf data 
hgs
parents:
diff changeset
    53
* addition DM commands. 
hgs
parents:
diff changeset
    54
*/
hgs
parents:
diff changeset
    55
class CAddBuffer : public CBase
hgs
parents:
diff changeset
    56
    {
hgs
parents:
diff changeset
    57
public:
hgs
parents:
diff changeset
    58
    
hgs
parents:
diff changeset
    59
    /**
hgs
parents:
diff changeset
    60
     * Creates new instance of CAddBuffer
hgs
parents:
diff changeset
    61
     */
hgs
parents:
diff changeset
    62
    static CAddBuffer* NewL();
hgs
parents:
diff changeset
    63
    
hgs
parents:
diff changeset
    64
    /**
hgs
parents:
diff changeset
    65
     * Adds node to buffer
hgs
parents:
diff changeset
    66
     * 
hgs
parents:
diff changeset
    67
     * @param aUri target node URI
hgs
parents:
diff changeset
    68
     * @param aParentLUID refrence to parent node
hgs
parents:
diff changeset
    69
     * @param aStatusRef Status reference
hgs
parents:
diff changeset
    70
     */
hgs
parents:
diff changeset
    71
    void AddNodeToBufferL( const TDesC8& aUri, 
hgs
parents:
diff changeset
    72
                           const TDesC8& aParentLUID, 
hgs
parents:
diff changeset
    73
                           const TInt    aStatusRef );
hgs
parents:
diff changeset
    74
    
hgs
parents:
diff changeset
    75
    /**
hgs
parents:
diff changeset
    76
     * Adds leaf node to buffer
hgs
parents:
diff changeset
    77
     * 
hgs
parents:
diff changeset
    78
     * @param aUri target node URI
hgs
parents:
diff changeset
    79
     * @param aParentLUID refrence to parent node
hgs
parents:
diff changeset
    80
     * @param aObject Leaf object data
hgs
parents:
diff changeset
    81
     * @param aStatusRef Status reference
hgs
parents:
diff changeset
    82
     */
hgs
parents:
diff changeset
    83
    void AddNodeToBufferL( const TDesC8& aUri, 
hgs
parents:
diff changeset
    84
                           const TDesC8& aLUID, 
hgs
parents:
diff changeset
    85
                           const TDesC8& aObject,
hgs
parents:
diff changeset
    86
                           const TInt    aStatusRef );
hgs
parents:
diff changeset
    87
    
hgs
parents:
diff changeset
    88
    /**
hgs
parents:
diff changeset
    89
     * Searches buffer for given dynamic node
hgs
parents:
diff changeset
    90
     * 
hgs
parents:
diff changeset
    91
     * @param aUri target node URI
hgs
parents:
diff changeset
    92
     */
hgs
parents:
diff changeset
    93
    CConnMoNodeElement* FindDynamicNode( const TDesC8& aUri );
hgs
parents:
diff changeset
    94
    
hgs
parents:
diff changeset
    95
    /**
hgs
parents:
diff changeset
    96
     * Gets all unprocessed nodes associated to given root node
hgs
parents:
diff changeset
    97
     * 
hgs
parents:
diff changeset
    98
     * Function searches buffer for all unprocessed nodes that 
hgs
parents:
diff changeset
    99
     * belong to given group and are under same dynamic node 
hgs
parents:
diff changeset
   100
     * 
hgs
parents:
diff changeset
   101
     * @param aRoot target group
hgs
parents:
diff changeset
   102
     * @param aGroup Array for result nodes
hgs
parents:
diff changeset
   103
     */
hgs
parents:
diff changeset
   104
    TInt GetGroup( const TDesC8& aRoot, RPointerArray<CConnMoNodeElement>* aGroup );
hgs
parents:
diff changeset
   105
    
hgs
parents:
diff changeset
   106
    /**
hgs
parents:
diff changeset
   107
     * Searches buffer for givennode
hgs
parents:
diff changeset
   108
     * 
hgs
parents:
diff changeset
   109
     * @param aUri target node URI
hgs
parents:
diff changeset
   110
     */
hgs
parents:
diff changeset
   111
    CConnMoNodeElement* CacheFind( const TDesC8& aUri );
hgs
parents:
diff changeset
   112
    
hgs
parents:
diff changeset
   113
    /**
hgs
parents:
diff changeset
   114
     * Searches buffer for given dynamic node
hgs
parents:
diff changeset
   115
     * 
hgs
parents:
diff changeset
   116
     * @param aUri target node URI
hgs
parents:
diff changeset
   117
     */
hgs
parents:
diff changeset
   118
    CConnMoNodeElement* CacheFindDynamicNode( const TDesC8& aUri );
hgs
parents:
diff changeset
   119
    
hgs
parents:
diff changeset
   120
    /**
hgs
parents:
diff changeset
   121
     * Empties buffer and frees all allocated memory
hgs
parents:
diff changeset
   122
     */
hgs
parents:
diff changeset
   123
    void Reset();
hgs
parents:
diff changeset
   124
hgs
parents:
diff changeset
   125
    virtual ~CAddBuffer(); 
hgs
parents:
diff changeset
   126
    
hgs
parents:
diff changeset
   127
private:
hgs
parents:
diff changeset
   128
    
hgs
parents:
diff changeset
   129
    //-----------------------------------------------------------------------------
hgs
parents:
diff changeset
   130
    // Private functions
hgs
parents:
diff changeset
   131
    //-----------------------------------------------------------------------------
hgs
parents:
diff changeset
   132
    void ConstructL();
hgs
parents:
diff changeset
   133
    CAddBuffer();
hgs
parents:
diff changeset
   134
          
hgs
parents:
diff changeset
   135
    //-----------------------------------------------------------------------------
hgs
parents:
diff changeset
   136
    // Private member variables
hgs
parents:
diff changeset
   137
    //-----------------------------------------------------------------------------
hgs
parents:
diff changeset
   138
    /** Contains all nodes to be added */
hgs
parents:
diff changeset
   139
    RPointerArray<CConnMoNodeElement> iBuffer;
hgs
parents:
diff changeset
   140
    /** Contains group of nodes that user has previously asked */
hgs
parents:
diff changeset
   141
    RPointerArray<CConnMoNodeElement> iCache;
hgs
parents:
diff changeset
   142
        
hgs
parents:
diff changeset
   143
    };
hgs
parents:
diff changeset
   144
hgs
parents:
diff changeset
   145
#endif /* ADDBUFFER_H_ */