]> git.tdb.fi Git - builder.git/blob - source/filetarget.h
Put constructor helper functions next to the constructors
[builder.git] / source / filetarget.h
1 #ifndef FILETARGET_H_
2 #define FILETARGET_H_
3
4 #include <msp/fs/path.h>
5 #include "target.h"
6
7 /**
8 An intermediate base class for targets that represent files.  Almost all target
9 classes are derived from this.
10 */
11 class FileTarget: public Target
12 {
13 protected:
14         Msp::FS::Path path;
15         Msp::Time::TimeStamp mtime;
16         unsigned size;
17
18         FileTarget(Builder &, const SourcePackage *, const Msp::FS::Path &);
19 private:
20         static std::string generate_name(const SourcePackage *, const Msp::FS::Path &);
21
22 public:
23         const Msp::FS::Path &get_path() const { return path; }
24         const Msp::Time::TimeStamp &get_mtime() const { return mtime; }
25         unsigned get_size() const { return size; }
26
27         /**
28         Changes the mtime of the target to the current time.
29         */
30         void touch();
31
32 protected:
33         virtual void check_rebuild();
34 };
35
36 #endif