Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members | Tutorials

path.h

Go to the documentation of this file.
00001 // Copyright (C) 2002-2010 Nikolaus Gebhardt
00002 // This file is part of the "Irrlicht Engine" and the "irrXML" project.
00003 // For conditions of distribution and use, see copyright notice in irrlicht.h
00004 
00005 #ifndef __IRR_PATH_H_INCLUDED__
00006 #define __IRR_PATH_H_INCLUDED__
00007 
00008 #include "irrString.h"
00009 
00010 namespace irr
00011 {
00012 namespace io
00013 {
00014 
00016 
00017 typedef core::string<fschar_t> path;
00018 
00020 
00023 struct SNamedPath
00024 {
00026         SNamedPath() {}
00027 
00029         SNamedPath(const path& p) : Path(p), InternalName( PathToName(p) )
00030         {
00031         }
00032 
00034         bool operator <(const SNamedPath& other) const
00035         {
00036                 return InternalName < other.InternalName;
00037         }
00038 
00040         void setPath(const path& p)
00041         {
00042                 Path = p;
00043                 InternalName = PathToName(p);
00044         }
00045 
00047         const path& getPath() const
00048         {
00049                 return Path;
00050         };
00051 
00054         const path& getInternalName() const
00055         {
00056                 return InternalName;
00057         }
00058 
00060         operator core::stringc() const
00061         {
00062                 return core::stringc(getPath());
00063         }
00065         operator core::stringw() const
00066         {
00067                 return core::stringw(getPath());
00068         }
00069 
00070 protected:
00071         // convert the given path string to a name string.
00072         path PathToName(const path& p) const
00073         {
00074                 path name(p);
00075                 name.replace( '\\', '/' );
00076                 name.make_lower();
00077                 return name;
00078         }
00079 
00080 private:
00081         path Path;
00082         path InternalName;
00083 };
00084 
00085 } // io
00086 } // irr
00087 
00088 #endif // __IRR_PATH_H_INCLUDED__

The Irrlicht Engine
The Irrlicht Engine Documentation © 2003-2010 by Nikolaus Gebhardt. Generated on Sun Oct 24 12:41:57 2010 by Doxygen (1.6.2)