![]() |
PUMA Library Reference Manual
|
#include <Puma/Project.h>
Inheritance diagram for Puma::Project:A project is a set of source directories.
It provides methods for searching and writing files.
Public Member Functions | |
| Project (ErrorStream &err) | |
| Constructor. | |
| virtual | ~Project () |
| Destructor. | |
| void | saveMode (Mode mode=OVERWRITE, const char *suffix=0) |
| Set the mode for saving an unit. | |
| virtual void | save (Unit *unit, bool only_modified=false) const |
| Save a unit using the name of the unit to get the full name of the file and path to save to. | |
| virtual void | save (const char *file=0, bool only_modified=false, bool is_reg_ex=false) const |
| Save one, all or all matching files. | |
| void | print (const char *name=0, std::ostream &out=std::cout, bool is_reg_ex=false) const |
| Print one, all or all matching units. | |
| void | close (const char *name=0, bool destroy=false, bool is_reg_ex=false) const |
| Close one, all or all matching units. | |
| Unit * | addFile (Filename file) |
| Add a new file to the project. | |
| Unit * | addFile (Filename srcFile, Filename destFile) |
| Add a new file to the project. | |
| virtual void | configure (const Config &config) |
| Configure the project from the command line or a file. | |
| UnitManager & | unitManager () |
| Get the unit manager. | |
| bool | isNewer (const char *file) const |
| Check if the given file in the source directory or the unit is newer than the corresponding file in the destination directory. | |
| virtual bool | isBelow (const char *file) const |
| Check if a given file is found below any of the source paths of this project. | |
| virtual bool | isBelow (Unit *file) const |
| Check if a given file is found below any of the source paths of this project. | |
Public Member Functions inherited from Puma::PathManager | |
| PathManager (ErrorStream &err) | |
| Constructor. | |
| PathManager (PathManager &other) | |
| Copy-constructor. | |
| virtual | ~PathManager () |
| Destructor. | |
| void | glob (char *filenamePattern=0) |
| Search files in the managed path matching the given filename pattern or every file if no pattern is given. | |
| bool | iterate (PathIterator &iterator) const |
| Iterate the contents of the managed paths. | |
| virtual void | addPath (const char *srcPath, const char *destPath=0) |
| Add a source and destination paths pair. | |
| ProjectFile::MapConstIter | addFile (Filename filename) |
| Add a new file to the project file list. | |
| ProjectFile::MapConstIter | addFile (Filename filename, Filename destPath) |
| Add a new file to the project file list. | |
| void | setDest (const char *srcPath, const char *destPath) |
| Set the destination path of the given source path. | |
| void | protect (const char *pathPattern) |
| Add a pattern for a write-protected path. | |
| long | numPaths () const |
| Get the number of managed paths. | |
| long | numProts () const |
| Get the number of managed write-protected paths. | |
| const char * | src (long n) const |
| Get the n-th managed source path. | |
| const char * | src_canon (long n) const |
| Get canonical version of the n-th managed source path. | |
| const char * | dest (long n) const |
| Get the n-th managed destination path. | |
| RegComp * | prot (long n) const |
| Get the n-th managed write-protected path pattern. | |
| bool | isProtected (const char *path) const |
| Check if the given path is write-protected. | |
| bool | isBelow (const char *filename, ProjectFile::MapConstIter &iterator) const |
| Check if a given file is directly managed by this path manager or is found below any of the managed paths. | |
| virtual void | join (PathManager &other) |
| Join the paths of the given manager with the paths of this path manager. | |
| ErrorStream & | err () const |
| Get the error stream used by this path manager. | |
| bool | getDestinationPath (const char *sourcePath, std::ostream &out) const |
| Get the destination path of a given source path and write it on the given output stream. | |
Protected Member Functions | |
| virtual void | write (Unit *unit, std::ofstream &file) const |
| Write a unit on the given file output stream. | |
Protected Member Functions inherited from Puma::PathManager | |
| const char * | getDestination (Filename sourcePath, std::ostream *destinationPath=0) const |
| Get the destination path for a given source path. | |
| virtual void | action (PathIterator &iterator) |
| Called for every matched file when traversing a source path. | |
| char * | addSeparator (const char *path) const |
| Add the separator '/' to the end of the given path. | |
| char * | addSeparator (const char *path, char *buffer) const |
| Add the separator '/' to the end of the given path and store the resulting path in the given buffer. | |
Additional Inherited Members | |
Public Types inherited from Puma::SaveMode | |
| enum | Mode { OVERWRITE = 1 , RENAME_OLD , NEW_SUFFIX } |
| Save modes. More... | |
| Puma::Project::Project | ( | ErrorStream & | err | ) |
Constructor.
| err | An error stream for reporting errors. |
|
virtual |
Destructor.
Add a new file to the project.
| file | The path to the file to add. |
Add a new file to the project.
| srcFile | The path to the source file to add. |
| destFile | The path to the destination file. |
| void Puma::Project::close | ( | const char * | name = 0, |
| bool | destroy = false, | ||
| bool | is_reg_ex = false ) const |
Close one, all or all matching units.
| name | Optional unit name or unit name pattern. |
| destroy | If true destroy the units when closed. |
| is_reg_ex | If true the given unit name is a regular expression. |
|
virtual |
Configure the project from the command line or a file.
| config | The configuration. |
Reimplemented from Puma::PathManager.
|
inlinevirtual |
Check if a given file is found below any of the source paths of this project.
| file | The file. |
Reimplemented from Puma::PathManager.
|
virtual |
Check if a given file is found below any of the source paths of this project.
| file | The file. |
| bool Puma::Project::isNewer | ( | const char * | file | ) | const |
Check if the given file in the source directory or the unit is newer than the corresponding file in the destination directory.
| file | The path to the file. |
| void Puma::Project::print | ( | const char * | name = 0, |
| std::ostream & | out = std::cout, | ||
| bool | is_reg_ex = false ) const |
Print one, all or all matching units.
| name | Optional unit name or unit name pattern. |
| out | Output stream on which to print the unit(s), defaults to std::cout. |
| is_reg_ex | If true the given unit name is a regular expression. |
|
virtual |
Save one, all or all matching files.
| file | Optional file name or file name pattern. |
| only_modified | If true only modified files are saved. |
| is_reg_ex | If true the given filename is a regular expression. |
|
virtual |
Save a unit using the name of the unit to get the full name of the file and path to save to.
The save location must not be protected by a protect pattern and the original file must be located in one of the source directories.
| unit | The unit to save. |
| only_modified | If true only modified units are saved. |
Set the mode for saving an unit.
Mode OVERWRITE: Save the unit under its name and overwrite existing files. Mode RENAME_OLD: An existing file will be renamed. A suffix will be added to the name of the file, like 'main.cc.old' for the file 'main.cc' and the suffix '.old'. Mode NEW_SUFFIX: The unit will be saved with a new suffix, like 'main.cpp' for the unit 'main.cc' and the suffix 'cpp'.
| mode | The save mode. |
| suffix | Optional filename suffix. |
|
inline |
Get the unit manager.
|
protectedvirtual |
Write a unit on the given file output stream.
| unit | The input unit. |
| file | The output file. |