aboutsummaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/open-axiom.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/include/open-axiom.h b/src/include/open-axiom.h
index e230a825..53b24d65 100644
--- a/src/include/open-axiom.h
+++ b/src/include/open-axiom.h
@@ -35,6 +35,7 @@
#define OPENAXIOM_included
#include <vector>
+#include <string>
#include "openaxiom-c-macros.h"
@@ -208,6 +209,34 @@ namespace OpenAxiom {
Command();
};
+ // ----------------
+ // -- Filesystem --
+ // ----------------
+ // Basic interface to the OpenAxiom filesystem
+ struct Filesystem {
+ // Construct the basic filesystem from the OpenAxiom system
+ // directory. All other directories are derived from the root.
+ explicit Filesystem(const std::string&);
+
+ // The directory containing the core system
+ std::string sysdir() const;
+
+ // The directory containing algebra modules
+ std::string algdir() const;
+
+ // The directory containing database files.
+ std::string dbdir() const;
+
+ private:
+ const std::string root;
+ const std::string alg;
+ const std::string db;
+ };
+
+ // Return the path name the specified dabatase file.
+ std::string database_filepath(const Filesystem&, const std::string&);
+
+
const char* get_systemdir(int argc, char*[]);
const char* make_path_for(const char*, Driver);