Annotation of parser3/src/include/pa_cache_managers.h, revision 1.21

1.1       paf         1: /** @file
                      2:        Parser: cache managers center decl.
                      3: 
1.21    ! moko        4:        Copyright (c) 2001-2015 Art. Lebedev Studio (http://www.artlebedev.com)
1.6       paf         5:        Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)
1.1       paf         6: */
                      7: 
                      8: #ifndef PA_CACHE_MANAGERS_H
                      9: #define PA_CACHE_MANAGERS_H
1.7       paf        10: 
1.21    ! moko       11: #define IDENT_PA_CACHE_MANAGERS_H "$Id: pa_cache_managers.h,v 1.20 2012/03/16 09:24:08 moko Exp $"
1.1       paf        12: 
                     13: #include "pa_hash.h"
                     14: #include "pa_value.h"
                     15: 
                     16: // defines
                     17: 
1.10      paf        18: /// can return status and can expire it contents
                     19: class Cache_manager: public PA_Object {
                     20: public:
                     21:        /// if filter_server_id not null, returns status only Cachable -s with matching cacheable_item_server_id()
                     22:        virtual Value* get_status() =0;
                     23:        virtual void maybe_expire_cache() {}
1.13      paf        24:        virtual ~Cache_manager() {}
1.10      paf        25: };
1.1       paf        26: 
                     27: /// maintains name=>Cache_manager association, can expire its contents
1.19      misha      28: class Cache_managers: public HashString<Cache_manager*> {
1.1       paf        29: public:
1.14      paf        30:        Cache_managers();
1.17      paf        31:        virtual ~Cache_managers();
1.14      paf        32: 
1.1       paf        33:        /// maybe-expires all caches it contains, each cache manager desides it itself
                     34:        void maybe_expire();
                     35: 
                     36: };
                     37: 
                     38: /// global
1.15      paf        39: extern Cache_managers* cache_managers;
1.1       paf        40: 
                     41: #endif

E-mail: