diff options
Diffstat (limited to 'src/globals.hh')
-rw-r--r-- | src/globals.hh | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/globals.hh b/src/globals.hh new file mode 100644 index 000000000..d4fe4b370 --- /dev/null +++ b/src/globals.hh @@ -0,0 +1,60 @@ +#ifndef __GLOBALS_H +#define __GLOBALS_H + +#include <string> + +using namespace std; + + +/* Database names. */ + +/* dbRefs :: Hash -> FileName + + Maintains a mapping from hashes to filenames within the NixValues + directory. This mapping is for performance only; it can be + reconstructed unambiguously. The reason is that names in this + directory are not printed hashes but also might carry some + descriptive element (e.g., "aterm-2.0-ae749a..."). Without this + mapping, looking up a value would take O(n) time because we would + need to read the entire directory. */ +extern string dbRefs; + +/* dbNFs :: Hash -> Hash + + Each pair (h1, h2) in this mapping records the fact that the value + referenced by h2 is a normal form obtained by evaluating the value + referenced by value h1. +*/ +extern string dbNFs; + +/* dbNetSources :: Hash -> URL + + Each pair (hash, url) in this mapping states that the value + identified by hash can be obtained by fetching the value pointed + to by url. + + TODO: this should be Hash -> [URL] + + TODO: factor this out into a separate tool? */ +extern string dbNetSources; + + +/* Path names. */ + +/* nixValues is the directory where all Nix values (both files and + directories, and both normal and non-normal forms) live. */ +extern string nixValues; + +/* nixLogDir is the directory where we log evaluations. */ +extern string nixLogDir; + +/* nixDB is the file name of the Berkeley DB database where we + maintain the dbXXX mappings. */ +extern string nixDB; + + +/* Initialize the databases. */ +void initDB(); + + +#endif /* !__GLOBALS_H */ |