Runs.
[dcpomatic.git] / src / lib / content.h
1 #ifndef DVDOMATIC_CONTENT_H
2 #define DVDOMATIC_CONTENT_H
3
4 #include <boost/filesystem.hpp>
5 #include <boost/signals2.hpp>
6 #include <boost/thread/mutex.hpp>
7
8 class Job;
9 class Film;
10
11 class Content
12 {
13 public:
14         Content (boost::filesystem::path);
15         
16         virtual void examine (boost::shared_ptr<Film>, boost::shared_ptr<Job>, bool);
17         virtual std::string summary () const = 0;
18         
19         boost::filesystem::path file () const {
20                 boost::mutex::scoped_lock lm (_mutex);
21                 return _file;
22         }
23
24         boost::signals2::signal<void (int)> Changed;
25
26 protected:
27         mutable boost::mutex _mutex;
28
29 private:
30         boost::filesystem::path _file;
31         std::string _digest;
32 };
33
34 #endif