Home Libraries Author Links

FilesysAids: File System Aids
[SysToMath Aids C++ Library]

Collaboration diagram for FilesysAids: File System Aids:

Detailed Description

Collection of some file system related classes and class templates for path handling, bash-like file name globbing, POSIX-conform file spec expansion, and file and file range input scanning.

The declarations of these utilities are all contained in the namespace stm.


Files

file  filesysaids.hpp
 Declarations for file system aids.

Modules

 FilesysAids Test
 Demonstration of the usage and tests of the implementation of the SysToMath Aids C++ Library module FilesysAids.

Classes

class  stm::pstring
 Class to represent a std::string with a case unsensitive order relation on Windows systems else with a case sensitive order relation used for file system element naming. More...
class  stm::numpstring
 Class to represent a file system name with a case unsensitive order relation on Windows systems else with a case case sensitive order relation collating numerically correct. More...
class  stm::path< NameT >
 Class template path refining boost::filesystem::path. More...
class  stm::readablefile< NameT >
 Class template representing a file named by its NameT subobject which is guaranteed to be accessible for reading and holding its size at the time of definition. More...
class  stm::inputrange< FileRangeT, bufSize >
 Class template representing a range of input files. More...
class  stm::inputseq< InputFileT, bufSize >
class  stm::inputrange_iterator< BufRangeT, ContextT >
 Input iterator class template reading successive byte ranges from the input range of the ContextT object for which it was constructed. More...
class  stm::filespec
 Class to specify file system element names. More...
class  stm::filespeclist
 List class of filespec objects. More...
class  stm::filefind< PathContainerT >
 Container class representing existing file system elements defined by a file spec using pattern matching based file name expansion. More...

Typedefs

typedef numpstring stm::numpath
typedef readablefile< numpstring > stm::sizedfile
 For cenvenience sizedfile is a synonym for readablefile<numpstring>.

Functions

int stm::makedir (const boost::filesystem::path &path)
 Make directory path.
int stm::getkey ()
 Read one character from the console and return it as int on success, else return -1 and set the variable errno according to the error.
bool stm::isWin32Executable (const std::string &path)
 The function isWin32Executable returns true, if path (which may not exist) designates a WIN32 executable file (case unsensitively the extension '.exe', '.dll', '.msi' or '.com').
template<class SequenceT>
SequenceT & stm::brace_expand (SequenceT &result, const std::string &str, bool allowCommaSep=false)
 The function template brace_expand appends the maybe brace expanded words of str to the sequence result and returns result.
bool stm::designateSame (const pstring &p1, const pstring &p2)
 Return true, if the pstring object p1 designates the same file system element than that p2 designates.
bool stm::operator< (const pstring &p1, const pstring &p2)
 Order relation for pstring objects.
bool stm::operator== (const pstring &p1, const pstring &p2)
 Equality relation for pstring objects.
bool stm::operator< (const numpstring &p1, const numpstring &p2)
 Order relation for numpstring objects.
bool stm::operator== (const numpstring &p1, const numpstring &p2)
 Equality relation for numpstring objects.
template<class NameT>
void stm::swap (readablefile< NameT > &rf1, readablefile< NameT > &rf2)
 Swaps the readablefile objects rf1 and rf2.
template<class BufRangeT, class ContextT>
bool stm::operator== (const inputrange_iterator< BufRangeT, ContextT > &x, const inputrange_iterator< BufRangeT, ContextT > &y)
 Equality operator.
template<class BufRangeT, class ContextT>
bool stm::operator!= (const inputrange_iterator< BufRangeT, ContextT > &x, const inputrange_iterator< BufRangeT, ContextT > &y)
 Inequality operator.


Typedef Documentation

typedef numpstring stm::numpath

Deprecated:
For historical reasons numpath is an alternative name for numpstring.

Definition at line 226 of file filesysaids.hpp.

typedef readablefile<numpstring> stm::sizedfile

For cenvenience sizedfile is a synonym for readablefile<numpstring>.

Definition at line 617 of file filesysaids.hpp.


Function Documentation

int stm::makedir ( const boost::filesystem::path &  path  ) 

Make directory path.

Returns 0 on success, else -1 and the variable errno set according to the error.

int stm::getkey (  ) 

Read one character from the console and return it as int on success, else return -1 and set the variable errno according to the error.

bool stm::isWin32Executable ( const std::string &  path  ) 

The function isWin32Executable returns true, if path (which may not exist) designates a WIN32 executable file (case unsensitively the extension '.exe', '.dll', '.msi' or '.com').

template<class SequenceT>
SequenceT& stm::brace_expand ( SequenceT &  result,
const std::string &  str,
bool  allowCommaSep = false 
)

The function template brace_expand appends the maybe brace expanded words of str to the sequence result and returns result.

In order to distinguish from extended regular expression file specs, only words not beginning with '(' are brace expanded as defined for the bash shell. On Windows systems instead of '\' the character '%' is taken to escape the brace expansion operators '{', ',' and '}'. By default any non-empty sequence of whitspace serves as word delimiter. If allowCommaSep is true, also unescaped commas not included in pairs of braces also belong to these word delimiters. For SequenceT any container having a method push_back is suitable. As the implementation of brace_expand uses regular expressions (see Abstract Data Type StmRe), for its error control the macro StmRectrlTry can be used.

bool stm::designateSame ( const pstring &  p1,
const pstring &  p2 
)

Return true, if the pstring object p1 designates the same file system element than that p2 designates.

bool stm::operator< ( const pstring &  p1,
const pstring &  p2 
)

Order relation for pstring objects.

bool stm::operator== ( const pstring &  p1,
const pstring &  p2 
)

Equality relation for pstring objects.

bool stm::operator< ( const numpstring &  p1,
const numpstring &  p2 
)

Order relation for numpstring objects.

bool stm::operator== ( const numpstring &  p1,
const numpstring &  p2 
)

Equality relation for numpstring objects.

template<class NameT>
void stm::swap ( readablefile< NameT > &  rf1,
readablefile< NameT > &  rf2 
)

Swaps the readablefile objects rf1 and rf2.

template<class BufRangeT, class ContextT>
bool stm::operator== ( const inputrange_iterator< BufRangeT, ContextT > &  x,
const inputrange_iterator< BufRangeT, ContextT > &  y 
)

Equality operator.

template<class BufRangeT, class ContextT>
bool stm::operator!= ( const inputrange_iterator< BufRangeT, ContextT > &  x,
const inputrange_iterator< BufRangeT, ContextT > &  y 
)

Inequality operator.


© Copyright Tom Michaelis 2002-2007

Distributed under the SysToMath Software License (See the accompanying file license.txt or a copy at www.SysToMath.com).