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

1.1       paf         1: /** @file
                      2:        Parser: cache managers center decl.
                      3: 
1.9.2.5   paf         4:        Copyright (c) 2001-2003 ArtLebedev Group (http://www.artlebedev.com)
1.6       paf         5:        Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)
1.1       paf         6: 
1.9.2.6 ! paf         7:        $Date: 2003/01/31 12:34:29 $
1.1       paf         8: */
                      9: 
                     10: #ifndef PA_CACHE_MANAGERS_H
                     11: #define PA_CACHE_MANAGERS_H
1.7       paf        12: 
1.9.2.6 ! paf        13: static const char* IDENT_CACHE_MANAGERS_H="$Date: 2003/01/31 12:34:29 $";
1.1       paf        14: 
                     15: #include "pa_hash.h"
                     16: #include "pa_value.h"
                     17: 
                     18: // defines
                     19: 
1.9.2.1   paf        20: /// can return status and can expire it contents
                     21: class Cache_manager: public PA_Object {
                     22: public:
                     23:        /// if filter_server_id not null, returns status only Cachable -s with matching cacheable_item_server_id()
1.9.2.4   paf        24:        virtual ValuePtr get_status(Pool& pool, StringPtr source) =0;
1.9.2.1   paf        25:        virtual void maybe_expire_cache() {}
                     26: };
1.9.2.6 ! paf        27: DECLARE_OBJECT_PTR(Cache_manager);
1.1       paf        28: 
                     29: /// maintains name=>Cache_manager association, can expire its contents
1.9.2.6 ! paf        30: class Cache_managers: public Hash<StringPtr, Cache_managerPtr> {
1.1       paf        31: public:
                     32:        /// maybe-expires all caches it contains, each cache manager desides it itself
                     33:        void maybe_expire();
                     34: 
                     35: };
                     36: 
                     37: /// global
1.9.2.3   paf        38: extern Cache_managers cache_managers;
1.1       paf        39: 
                     40: #endif

E-mail: