cisst-saw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Static Public Member Functions | List of all members
cmnPath Class Reference

Search path to find a file. This class contains a list of directories used to locate a file. More...

#include <cmnPath.h>

Inheritance diagram for cmnPath:
cmnGenericObject

Public Types

enum  { HEAD = true, TAIL = false }
 
enum  { EXIST = 00, WRITE = 02, READ = 04, EXECUTE = 04 }
 
typedef std::list< std::string > ContainerType
 
typedef ContainerType::iterator iterator
 
typedef
ContainerType::const_iterator 
const_iterator
 

Public Member Functions

 cmnPath (void)
 
 cmnPath (const std::string &path)
 
virtual ~cmnPath (void)
 
void Set (const std::string &path)
 
void Add (const std::string &path, bool head=HEAD)
 
bool AddFromEnvironment (const std::string &variableName, bool head=HEAD)
 
bool AddRelativeToCisstRoot (const std::string &relativePath, bool head=HEAD)
 
bool AddRelativeToCisstShare (const std::string &relativePath, bool head=HEAD)
 
std::string Find (const std::string &filename, short mode=READ) const
 
std::string FindWithSubdirectory (const std::string &filename, const std::string &subdirectory, short mode=READ) const
 
bool Remove (const std::string &directory)
 
bool Has (const std::string &directory) const
 
void ToStream (std::ostream &outputStream) const
 
- Public Member Functions inherited from cmnGenericObject
virtual ~cmnGenericObject (void)
 
virtual const
cmnClassServicesBase
Services (void) const =0
 
bool ReconstructFrom (const cmnGenericObject &other)
 
std::string ToString (void) const
 
virtual void ToStreamRaw (std::ostream &outputStream, const char delimiter= ' ', bool headerOnly=false, const std::string &headerPrefix="") const
 
virtual bool FromStreamRaw (std::istream &inputStream, const char delimiter= ' ')
 
virtual void SerializeRaw (std::ostream &outputStream) const
 
virtual void DeSerializeRaw (std::istream &inputStream)
 
virtual cmnLogger::StreamBufTypeGetLogMultiplexer (void) const
 
virtual size_t ScalarNumber (void) const
 
virtual bool ScalarNumberIsFixed (void) const
 
virtual double Scalar (const size_t CMN_UNUSED(index)) const throw (std::out_of_range)
 
virtual std::string ScalarDescription (const size_t CMN_UNUSED(index), const std::string &CMN_UNUSED(userDescription)) const
 

Static Public Member Functions

static const std::string & DirectorySeparator (void)
 
static std::string GetWorkingDirectory (void)
 
static bool GetCisstRoot (std::string &result)
 
static bool GetCisstShare (std::string &result)
 
static bool Exists (const std::string &fullPath, short more=READ)
 

Detailed Description

Search path to find a file. This class contains a list of directories used to locate a file.

The directories can be added either at the head or the tail of the list. This class doesn't check weither the directories in the path actually exist, mostly to allow a portable program (e.g. one program can add both "/usr/local/bin" and "C:\Program Files").

As a convention, the separator between subdirectories should be a "/" (slash) and the separation between two directories in the path is ";" (semi-colon). For example, "/bin;/usr/bin" will add both "/bin" and "/usr/bin".

Member Typedef Documentation

typedef ContainerType::const_iterator cmnPath::const_iterator
typedef std::list<std::string> cmnPath::ContainerType

Container used to store the directories.

typedef ContainerType::iterator cmnPath::iterator

STL like iterators.

Member Enumeration Documentation

anonymous enum

Defines how to add a path to the search list.

Enumerator
HEAD 
TAIL 
anonymous enum

Defines the mode to be used for a given file.

Enumerator
EXIST 
WRITE 
READ 
EXECUTE 

Constructor & Destructor Documentation

cmnPath::cmnPath ( void  )
cmnPath::cmnPath ( const std::string &  path)

Create a search path from a string.

virtual cmnPath::~cmnPath ( void  )
inlinevirtual

Destructor

Member Function Documentation

void cmnPath::Add ( const std::string &  path,
bool  head = HEAD 
)

Add one or more directories to the path.

bool cmnPath::AddFromEnvironment ( const std::string &  variableName,
bool  head = HEAD 
)

Add one or more directories to the path using an environment variable.

bool cmnPath::AddRelativeToCisstRoot ( const std::string &  relativePath,
bool  head = HEAD 
)

Add path relative to the CISST_ROOT environment variable. This can be useful to find shared libraries. To find data files, use AddRelativeToCisstShare.

bool cmnPath::AddRelativeToCisstShare ( const std::string &  relativePath,
bool  head = HEAD 
)

Add path relative to the shared cisst directory, i.e. CISST_ROOT/share/cisst-<version>.

static const std::string& cmnPath::DirectorySeparator ( void  )
static

A platform-independent string for separating subdirectory or file name from the parent directory name. It's equal to "/" on Linux, "\\" on Windows, etc.

static bool cmnPath::Exists ( const std::string &  fullPath,
short  more = READ 
)
static

Check if a file exists assuming the path provided is either relative or absolute, this function doesn't use any search path.

std::string cmnPath::Find ( const std::string &  filename,
short  mode = READ 
) const

Find the full name for a given file.

Returns
The full path including the filename or an empty string.
std::string cmnPath::FindWithSubdirectory ( const std::string &  filename,
const std::string &  subdirectory,
short  mode = READ 
) const

Find the full name for a given file using all directories in path as well as given "sub directory" in each directory. E.g if the path contains /bin and /usr/bin and the sub-directory provided is "Release", the full search path if /bin/Release, /bin, /usr/bin/Release, /usr/bin. One can also #include <cisstBuildType.h> which defines the string CISST_BUILD_SUFFIX.

Returns
The full path including the filename or an empty string.
static bool cmnPath::GetCisstRoot ( std::string &  result)
static

Get CISST_ROOT from the environment variable

static bool cmnPath::GetCisstShare ( std::string &  result)
static

Get cisst shared directory based on CISST_ROOT from the environment variable

static std::string cmnPath::GetWorkingDirectory ( void  )
static

Get working directory

bool cmnPath::Has ( const std::string &  directory) const

Indicates if a given directory is in the search list.

bool cmnPath::Remove ( const std::string &  directory)

Remove the first occurence of a directory from the search list.

void cmnPath::Set ( const std::string &  path)

Set the path from a string.

void cmnPath::ToStream ( std::ostream &  outputStream) const
virtual

Write the path to a stream.

Reimplemented from cmnGenericObject.


The documentation for this class was generated from the following file: