40 #ifndef INCLUDED_DISTI_FILE_PATH_CLASS_H
41 #define INCLUDED_DISTI_FILE_PATH_CLASS_H
99 #if defined( DISTI_HAS_RVAL_REFS )
103 *
this = std::move( other );
111 _path = std::move( other._path );
112 _writeAsAbsolutePath = other._writeAsAbsolutePath;
120 GLS_EXPORT
bool IsValid()
const;
143 GLS_EXPORT std::string
Directory()
const;
147 GLS_EXPORT std::string
FileName()
const;
163 inline bool operator!=(
const FilePathClass& path )
const {
return !( *
this == path ); }
165 friend std::ostream& operator<<( std::ostream& outstr,
const FilePathClass& path )
167 outstr << path.Path();
171 friend std::istream& operator>>( std::istream& instr,
FilePathClass& path )
229 static GLS_EXPORT
const char _emptyTag[];
242 , _attribPtr( attribPtr )
243 , _basePath( basePath )
244 , _useEmptyTag( useEmptyTag )
258 , _attribPtr( &_localStoragePath )
259 , _localStoragePath( initialValue )
260 , _basePath( basePath )
261 , _useEmptyTag( useEmptyTag )
265 static const char* GetEmptyTag() {
return _emptyTag; }
273 *_attribPtr = *( ptr->_attribPtr );
283 virtual GLS_EXPORT std::ostream&
WriteValue( std::ostream& outstr )
289 if( _useEmptyTag && _attribPtr->
FileName().empty() )
303 virtual GLS_EXPORT std::istream&
ReadValue( std::istream& instr )
306 GetToEnd( instr, strPath,
true );
312 if( strPath == _emptyTag )
342 virtual GLS_EXPORT std::ostream&
WriteValue( std::ostream& outstr )
350 virtual GLS_EXPORT std::istream&
ReadValue( std::istream& instr )
362 #endif //_PATH_CLASS_H
std::string FileName() const
FilePathClass & operator=(FilePathClass &&other)
Definition: file_path_class.h:107
virtual std::istream & ReadValue(std::istream &instr)
Definition: file_path_class.h:350
static bool StringIsValidPath(const std::string &strPath)
FilePathClass(const FilePathClass &other)
Definition: file_path_class.h:83
void WritePathString(const FilePathClass &basePath, std::string *strPath)
static bool StringIsAbsolutePath(const std::string &strPath)
FilePathClass & operator=(const FilePathClass &other)
Definition: file_path_class.h:89
virtual DistiAttributeBase & operator=(const DistiAttributeBase &oldClass)
virtual DistiAttributeBase & operator=(const DistiAttributeBase &oldClass)
Definition: file_path_class.h:267
const std::string & Path() const
Definition: file_path_class.h:139
virtual std::ostream & WriteValue(std::ostream &outstr)
Definition: file_path_class.h:342
bool ReadPathString(const FilePathClass &basePath, const std::string &strPath)
std::string FileExtension() const
static FilePathClass GetCWD()
Definition: file_path_class.h:182
DistiAttributeCWDRelativePath(CallbackMethodCallerBase *callback, const AttributeName &name, FilePathClass *attribPtr, bool useEmptyTag=false)
Definition: file_path_class.h:331
virtual std::istream & ReadValue(std::istream &instr)
Definition: file_path_class.h:303
virtual void CallCallback()
DistiAttributeCWDRelativePath(CallbackMethodCallerBase *callback, const AttributeName &name, FilePathClass initialValue, bool useEmptyTag=false)
Definition: file_path_class.h:337
static const std::string & InvalidPathChars()
virtual std::ostream & WriteValue(std::ostream &outstr)
Definition: file_path_class.h:283
Generally useful defines, macros, enumerations and function prototypes.
static bool StringIsRelativePath(const std::string &strPath)
DistiAttributeFilePathClass(const FilePathClass &basePath, CallbackMethodCallerBase *callback, const AttributeName &name, FilePathClass initialValue, bool useEmptyTag=false)
Definition: file_path_class.h:256
Definition: disti_metadata.h:186
std::string Directory() const
Definition: file_path_class.h:61
Definition: callback_caller_base.h:55
std::string PathRelativeTo(const FilePathClass &basePath) const
Definition: file_path_class.h:326
bool _writeAsAbsolutePath
Definition: file_path_class.h:70
bool operator==(const FilePathClass &path) const
DistiAttributeFilePathClass(const FilePathClass &basePath, CallbackMethodCallerBase *callback, const AttributeName &name, FilePathClass *attribPtr, bool useEmptyTag=false)
Definition: file_path_class.h:240
bool _useEmptyTag
Definition: file_path_class.h:228
Definition: file_path_class.h:222
Macros and helper code to determine what subset of C++11/14/17 is available.
Definition: disti_metadata.h:85
FilePathClass(FilePathClass &&other)
Definition: file_path_class.h:101
Definition: bmpimage.h:46
void WriteAsAbsolutePath(bool value)
Definition: file_path_class.h:199
std::string _path
Definition: file_path_class.h:66