summaryrefslogtreecommitdiff
path: root/src/module.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/module.h')
-rw-r--r--src/module.h15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/module.h b/src/module.h
index 9f46d37..5dfb8c4 100644
--- a/src/module.h
+++ b/src/module.h
@@ -5,6 +5,9 @@
#include <vector>
#include <list>
#include <boost/unordered_map.hpp>
+#include <time.h>
+#include <sys/stat.h>
+
#include "value.h"
#include "typedefs.h"
#include "localscope.h"
@@ -74,6 +77,12 @@ public:
LocalScope scope;
};
+struct IncludeFile {
+ std::string filename;
+ bool valid;
+ time_t mtime;
+};
+
// FIXME: A FileModule doesn't have definition arguments, so we shouldn't really
// inherit from a Module
class FileModule : public Module
@@ -84,15 +93,15 @@ public:
void setModulePath(const std::string &path) { this->path = path; }
const std::string &modulePath() const { return this->path; }
- void registerInclude(const std::string &filename);
+ void registerInclude(const std::string &localpath, const std::string &fullpath);
bool handleDependencies();
virtual AbstractNode *instantiate(const Context *ctx, const ModuleInstantiation *inst, const EvalContext *evalctx = NULL) const;
typedef boost::unordered_map<std::string, class FileModule*> ModuleContainer;
ModuleContainer usedlibs;
- typedef boost::unordered_map<std::string, time_t> IncludeContainer;
+ typedef boost::unordered_map<std::string, struct IncludeFile> IncludeContainer;
IncludeContainer includes;
-
+ bool include_modified(struct IncludeFile inc);
private:
bool is_handling_dependencies;
std::string path;
contact: Jan Huwald // Impressum