Annotation of parser3/src/include/pa_cache_managers.h, revision 1.22
1.1 paf 1: /** @file
2: Parser: cache managers center decl.
3:
1.22 ! moko 4: Copyright (c) 2001-2017 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.22 ! moko 11: #define IDENT_PA_CACHE_MANAGERS_H "$Id: pa_cache_managers.h,v 1.21 2015/10/26 01:21:55 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: