webengine/osswebengine/cache/inc/HttpCacheLookupTable.h
changeset 10 a359256acfc6
parent 5 10e98eab6f85
child 11 c8a366e56285
equal deleted inserted replaced
5:10e98eab6f85 10:a359256acfc6
    36 class RFileReadStream;
    36 class RFileReadStream;
    37 class CHttpCacheEvictionHandler;
    37 class CHttpCacheEvictionHandler;
    38 class CHttpCacheStreamHandler;
    38 class CHttpCacheStreamHandler;
    39 
    39 
    40 // CLASS DECLARATION
    40 // CLASS DECLARATION
    41 
    41 struct THttpCacheLookupTableEntryIterator
       
    42     {
       
    43     TInt iPos;
       
    44     TInt iCount;
       
    45     };
    42 /**
    46 /**
    43 *
    47 *
    44 *  @lib
    48 *  @lib
    45 *  @since 3.1
    49 *  @since 3.1
    46 */
    50 */
    47 class CHttpCacheLookupTable : public CBase
    51 class CHttpCacheLookupTable : public CBase
    48     {
    52     {
    49     public:  // Constructors and destructor
    53     public:  // Constructors and destructor
    50         
    54 
    51         /**
    55         /**
    52         * Two-phased constructor.
    56         * Two-phased constructor.
    53         * @since 3.1
    57         * @since 3.1
    54         * @param
    58         * @param
    55         * @param
    59         * @param
    56         * @return CHttpCacheLookupTable object.
    60         * @return CHttpCacheLookupTable object.
    57         */
    61         */
    58         static CHttpCacheLookupTable* NewL( CHttpCacheEvictionHandler& aEvictionHandler, CHttpCacheStreamHandler& aStreamHandler );
    62         static CHttpCacheLookupTable* NewL( CHttpCacheEvictionHandler& aEvictionHandler, CHttpCacheStreamHandler& aStreamHandler );
    59         
    63 
    60         /**
    64         /**
    61         * Destructor.
    65         * Destructor.
    62         */
    66         */
    63         virtual ~CHttpCacheLookupTable();
    67         virtual ~CHttpCacheLookupTable();
    64         
    68 
    65     public: // new functions
    69     public: // new functions
    66     
    70 
    67         /**
    71         /**
    68         *
    72         *
    69         * @since 3.1
    73         * @since 3.1
    70         * @param
    74         * @param
    71         * @return
    75         * @return
    72         */
    76         */
    73         CHttpCacheEntry* InsertL( const TDesC8& aUrl );
    77         CHttpCacheEntry* InsertL( const TDesC8& aUrl );
    74         
    78 
    75         /**
    79         /**
    76         *
    80         *
    77         * @since 3.1
    81         * @since 3.1
    78         * @param
    82         * @param
    79         * @return
    83         * @return
    80         */
    84         */
    81         CHttpCacheEntry* Find( const TDesC8& aUrl );
    85         CHttpCacheEntry* Find( const TDesC8& aUrl );
    82         
    86 
    83         /**
    87         /**
    84         *
    88         *
    85         * @since 3.1
    89         * @since 3.1
    86         * @param
    90         * @param
    87         * @return
    91         * @return
    88         */
    92         */
    89         TInt Remove( const TDesC8& aUrl );
    93         TInt Remove( const TDesC8& aUrl );
    90         
    94 
    91         /**
       
    92         *
       
    93         * @since 3.1
       
    94         * @param
       
    95         * @return
       
    96         */
       
    97         TInt RemoveByPosition( TInt aPos );
       
    98         
       
    99         /**
    95         /**
   100         *
    96         *
   101         * @since 3.1
    97         * @since 3.1
   102         * @param
    98         * @param
   103         * @return
    99         * @return
   104         */
   100         */
   105         TInt RemoveAll();
   101         TInt RemoveAll();
   106         
   102 
   107         /**
   103         /**
   108         *
   104         *
   109         * @since 7.1
   105         * @since 7.1
   110         * @param
   106         * @param
   111         * @return
   107         * @return
   112         */
   108         */
   113         TInt CHttpCacheLookupTable::ListFiles( RPointerArray<TDesC>& aFilenameList );
   109         TInt CHttpCacheLookupTable::ListFiles( RPointerArray<TDesC>& aFilenameList );
   114         
   110 
   115         /**
   111         /**
   116         *
   112         *
   117         * @since 3.1
   113         * @since 3.1
   118         * @param
   114         * @param
   119         * @return
   115         * @return
   120         */
   116         */
   121         const CArrayPtrFlat<CHttpCacheEntry>& Entries() const { return *iEntries; }
   117         const CArrayPtrFlat<CHttpCacheEntry>& Entries() const { return *iEntries; }
   122         
   118 
   123         /**
   119         /**
   124         *
   120         *
   125         * @since 3.1
   121         * @since 3.1
   126         * @param
   122         * @param
   127         * @return
   123         * @return
   128         */
   124         */
   129         void EraseCacheEntry( const TDesC8& aUrl );
   125         void EraseCacheEntry( const TDesC8& aUrl );
   130         
   126 
   131         /**
   127         /**
   132         *
   128         *
   133         * @since 3.1
   129         * @since 3.1
   134         * @param
   130         * @param
   135         * @return
   131         * @return
   136         */
   132         */
   137         void InternalizeL( RFileReadStream& aReadStream, const TDesC& aDirectory );
   133         void InternalizeL( RReadStream& aReadStream, const TDesC& aDirectory );
   138         
   134 
   139         /**
   135         /**
   140         *
   136         *
   141         * @since 3.1
   137         * @since 3.1
   142         * @param
   138         * @param
   143         * @return
   139         * @return
   144         */
   140         */
   145         void ExternalizeL( RFileWriteStream& aWriteStream );
   141         void ExternalizeL( RWriteStream& aWriteStream, const TDesC& aDirectory );
   146         
   142 
   147         /**
   143         /**
   148         *
   144         *
   149         * @since 3.1
   145         * @since 3.1
   150         * @param
   146         * @param
   151         * @return
   147         * @return
   152         */
   148         */
   153         void MergeL( CHttpCacheLookupTable* aHttpCacheLookupTable, RFs aRfs  );
   149         void MergeL( CHttpCacheLookupTable* aHttpCacheLookupTable, RFs aRfs  );
   154         
   150 
   155         /**
   151         /**
   156         *
   152          *
   157         * @since 7.1
   153          * @since 7.1
   158         * @param
   154          * @param
   159         * @return
   155          * @return
   160         */
   156          */
   161         void FindCacheEntryIndex( const CHttpCacheEntry& aCacheEntry, TInt* aIndex );
   157         void BeginEntryIteration(THttpCacheLookupTableEntryIterator& aIter);
       
   158 
       
   159         /**
       
   160          *
       
   161          * @since 7.1
       
   162          * @param
       
   163          * @return
       
   164          */
       
   165         const CHttpCacheEntry* NextEntry(THttpCacheLookupTableEntryIterator& aIter);
   162 
   166 
   163     private:
   167     private:
   164         
   168 
   165         /**
   169         /**
   166         * Construct.
   170         * Construct.
   167         * @since 3.1
   171         * @since 3.1
   168         * @param
   172         * @param
   169         * @param
   173         * @param
   170         * @return CHttpCacheLookupTable object.
   174         * @return CHttpCacheLookupTable object.
   171         */
   175         */
   172         CHttpCacheLookupTable( CHttpCacheEvictionHandler& aEvictionHandler, CHttpCacheStreamHandler& aStreamHandler );
   176         CHttpCacheLookupTable( CHttpCacheEvictionHandler& aEvictionHandler, CHttpCacheStreamHandler& aStreamHandler );
   173         
   177 
   174         /**
   178         /**
   175         * By default Symbian 2nd phase constructor is private.
   179         * By default Symbian 2nd phase constructor is private.
   176         */
   180         */
   177         void ConstructL();
   181         void ConstructL();
   178         
   182 
   179     private: //
   183     private: //
   180         
   184 
   181         /**
   185         /**
   182         *
   186         *
   183         * @since 3.1
   187         * @since 3.1
   184         * @param
   188         * @param
   185         * @return
   189         * @return
   186         */
   190         */
   187         TInt InsertL( CHttpCacheEntry* aCacheEntry );
   191         TInt InsertL( CHttpCacheEntry* aCacheEntry );
   188         
   192 
   189         /**
   193         /**
   190         *
   194         *
   191         * @since 3.1
   195         * @since 3.1
   192         * @param
   196         * @param
   193         * @return
   197         * @return
   194         */
   198         */
   195         TInt Probe( const TDesC8& aKey, TBool aInsert );
   199         TInt Probe( const TDesC8& aKey, TBool aInsert );
   196         
   200 
   197         /**
   201         /**
   198         *
   202         *
   199         * @since 3.1
   203         * @since 3.1
   200         * @param
   204         * @param
   201         * @return
   205         * @return
   202         */
   206         */
   203         TInt HashUrl( const TDesC8& aUrl );
   207         TInt HashUrl( const TDesC8& aUrl );
   204         
   208 
   205         /**
   209         /**
   206         *
   210         *
   207         * @since 3.1
   211         * @since 3.1
   208         * @param
   212         * @param
   209         * @return
   213         * @return
   210         */
   214         */
   211         void ReHashL();
   215         void ReHashL();
   212         
   216 
   213         /**
   217         /**
   214         *
   218         *
   215         * @since 3.1
   219         * @since 3.1
   216         * @param
   220         * @param
   217         * @return
   221         * @return
   218         */
   222         */
   219         TUint NextPrime( TUint aNum );
   223         TUint NextPrime( TUint aNum );
   220         
   224 
   221         /**
   225         /**
   222         *
   226         *
   223         * @since 3.1
   227         * @since 3.1
   224         * @param
   228         * @param
   225         * @return
   229         * @return
   226         */
   230         */
   227         void Erase( TInt aPos );
   231         void Erase( TInt aPos );
   228         
   232 
   229         /**
   233         /**
   230         *
   234         *
   231         * @since 3.1
   235         * @since 3.1
   232         * @param
   236         * @param
   233         * @return
   237         * @return
   234         */
   238         */
   235         TBool Valid( TInt aPos );
   239         TBool Valid( TInt aPos );
   236         
   240 
   237         /**
   241         /**
   238         *
   242         *
   239         * @since 3.1
   243         * @since 3.1
   240         * @param
   244         * @param
   241         * @return
   245         * @return
   242         */
   246         */
   243         TBool Empty( TInt aPos );
   247         TBool Empty( TInt aPos );
   244         
   248 
   245         /**
   249         /**
   246         *
   250         *
   247         * @since 3.1
   251         * @since 3.1
   248         * @param
   252         * @param
   249         * @return
   253         * @return
   250         */
   254         */
   251         TBool Deleted( TInt aPos );
   255         TBool Deleted( TInt aPos );
   252         
   256 
   253         /**
   257         /**
   254         *
   258         *
   255         * @since 3.1
   259         * @since 3.1
   256         * @param
   260         * @param
   257         * @return
   261         * @return
   258         */
   262         */
   259         void SetDeleted( TInt aPos );
   263         void SetDeleted( TInt aPos );
   260         
   264 
   261         /**
   265         /**
   262         *
   266         *
   263         * @since 3.1
   267         * @since 3.1
   264         * @param
   268         * @param
   265         * @return
   269         * @return
   266         */
   270         */
   267         TBool BoundaryCheck( TInt aPos );
   271         TBool BoundaryCheck( TInt aPos );
   268         
   272 
   269     private:    // Data
   273     private:    // Data
   270         
   274 
   271         // hash table for cache entries
   275         // hash table for cache entries
   272         CArrayPtrFlat<CHttpCacheEntry>* iEntries;
   276         CArrayPtrFlat<CHttpCacheEntry>* iEntries;
   273         // number of entries in the hashtable
   277         // number of entries in the hashtable
   274         TInt                            iCount;
   278         TInt                            iCount;
   275         //
   279         //
   276         CHttpCacheEvictionHandler*      iEvictionHandler;         // not owned
   280         CHttpCacheEvictionHandler*      iEvictionHandler;         // not owned
   277         //
   281         //
   278         CHttpCacheStreamHandler*        iStreamHandler;           // not owned
   282         CHttpCacheStreamHandler*        iStreamHandler;           // not owned
   279     };
   283     };
   280     
   284 
   281 #endif      // CHTTPCACHELOOKUPTABLE_H
   285 #endif      // CHTTPCACHELOOKUPTABLE_H
   282     
   286 
   283     // End of File
   287     // End of File