mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-23 07:06:23 +01:00
Add some documentation regarding the PBD::sys namespace and my justifications for writing that code
git-svn-id: svn://localhost/ardour2/trunk@2401 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
911c873e56
commit
a36eccbfcc
1 changed files with 40 additions and 0 deletions
|
|
@ -16,6 +16,46 @@
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @namespace PBD::sys
|
||||||
|
*
|
||||||
|
* The API in this file is intended to be as close as possible to the
|
||||||
|
* boost::filesystem API but implementing only the subset of it that is required
|
||||||
|
* by ardour using the glib/glibmm file utility functions in the implementation.
|
||||||
|
*
|
||||||
|
* More information about boost::filesystem and the TR2 proposal at
|
||||||
|
*
|
||||||
|
* http://www.boost.org/libs/filesystem/doc/tr2_proposal.html
|
||||||
|
*
|
||||||
|
* Hopefully the boost::filesystem API will pass TR2 review etc and become part
|
||||||
|
* of the C++ standard and this code can be removed, or we just end up using
|
||||||
|
* the boost filesystem library when it matures a bit more.
|
||||||
|
*
|
||||||
|
* My reasons for writing this thin wrapper instead of using glib directly or
|
||||||
|
* using boost::filesystem immediately are:
|
||||||
|
*
|
||||||
|
* - Using sys::path instead of strings and Glib::build_filename is more
|
||||||
|
* convenient, terse and forces correct platform agnostic path building.
|
||||||
|
*
|
||||||
|
* - Using boost::filesystem on windows would mean converting between any UTF-8
|
||||||
|
* encoded strings(such as when selecting a file/directory in the gtk file
|
||||||
|
* chooser) and the native file encoding (UTF-16). It would take some time
|
||||||
|
* and testing to find out when this is required and the glib functions already
|
||||||
|
* do this if necessary.
|
||||||
|
*
|
||||||
|
* - Using exceptions to indicate errors is more likely to uncover situations
|
||||||
|
* where error conditions are being silently ignored(I've already encounted
|
||||||
|
* a few examples of this in the ardour code).
|
||||||
|
*
|
||||||
|
* - Many of the glib file utility functions are not wrapped by glibmm so this
|
||||||
|
* also provides what I think is a better API.
|
||||||
|
*
|
||||||
|
* - Using boost::filesystem directly means another library dependence and would
|
||||||
|
* require more testing on windows because of the character encoding issue.
|
||||||
|
*
|
||||||
|
* - The boost::filesystem API changes a bit as part of the TR2 review process etc.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef __filesystem_h__
|
#ifndef __filesystem_h__
|
||||||
#define __filesystem_h__
|
#define __filesystem_h__
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue