]> git.llucax.com Git - software/bife/bife++.git/blob - chit.h
Cleaned up the code:
[software/bife/bife++.git] / chit.h
1 // vim: set expandtab tabstop=4 shiftwidth=4:
2
3 #ifndef BIFE_CHIT_H
4 #define BIFE_CHIT_H
5
6 #include "ghit.h"
7 #include "hash.h"
8 #include <string>
9
10 using std::string;
11
12 /**
13  * Cache enabled GHIT.
14  *
15  * GHIT with cache capabilities added. The templates are stored in memory once
16  * they are readed and reused in succesive parse() calls, avoiding disc reads
17  * overhead.
18  *
19  * @todo See if it's really usefull, since the OS is supposed to be in charge
20  *       of disc cache.
21  */
22 class CHIT: public GHIT {
23     // Attributes.
24     protected:
25         /// Cache storage.
26         Hash cache;
27
28     // Methods.
29     protected:
30         /**
31          * Gets cached file content.
32          *
33          * @param  filename Name of the file to get the content.
34          * @return File content.
35          */
36         virtual string getFileContent(string);
37
38     public:
39         /**
40          * Constructor.
41          *
42          * @param root    Root directory from where to get the templates.
43          * @param postfix Postfix of the template files.
44          * @param group   Starting group.
45          */
46         CHIT(string = string("."), string = string(".tpl"), string = string(""));
47
48         /**
49          * Destructor.
50          */
51         virtual ~CHIT(void);
52 };
53
54 #endif