25 #ifndef WPROJECTFILE_H
26 #define WPROJECTFILE_H
32 #include <boost/filesystem.hpp>
33 #include <boost/shared_ptr.hpp>
34 #include <boost/function.hpp>
35 #include <boost/signals2/signal.hpp>
37 #include "../common/WSharedSequenceContainer.h"
38 #include "../common/WThreadedRunner.h"
40 #include "../common/WProjectFileIO.h"
50 public boost::enable_shared_from_this< WProjectFile >
56 typedef boost::shared_ptr< WProjectFile >
SPtr;
61 typedef boost::shared_ptr< const WProjectFile >
ConstSPtr;
66 typedef boost::function< void( boost::filesystem::path, std::vector< std::string >, std::vector< std::string > ) >
ProjectLoadCallback;
71 typedef boost::signals2::signal< void( boost::filesystem::path, std::vector< std::string >, std::vector< std::string > ) >
79 explicit WProjectFile( boost::filesystem::path project );
110 virtual void save(
const std::list< boost::shared_ptr< WProjectFileIO > >& writer );
118 virtual void save(
const std::vector< boost::shared_ptr< WProjectFileIO > >& writer );
139 static boost::shared_ptr< WProjectFileIO >
getROIWriter();
167 boost::shared_ptr< WModule >
mapToModule(
unsigned int id )
const;
177 unsigned int mapFromModule( boost::shared_ptr< WModule > module )
const;
194 std::list< boost::shared_ptr< WProjectFileIO > >
m_parsers;
199 std::list< boost::shared_ptr< WProjectFileIO > >
m_writers;
236 #endif // WPROJECTFILE_H