SearchPaths.cpp

Go to the documentation of this file.
00001 // Copyright (C) 2005 Dave Griffiths
00002 //
00003 // This program is free software; you can redistribute it and/or modify
00004 // it under the terms of the GNU General Public License as published by
00005 // the Free Software Foundation; either version 2 of the License, or
00006 // (at your option) any later version.
00007 //
00008 // This program is distributed in the hope that it will be useful,
00009 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00010 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00011 // GNU General Public License for more details.
00012 //
00013 // You should have received a copy of the GNU General Public License
00014 // along with this program; if not, write to the Free Software
00015 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
00016 
00017 #include <stdio.h>
00018 #include <iostream>
00019 #include <sys/stat.h>
00020 #include <sys/types.h>
00021 #include "SearchPaths.h"
00022 
00023 using namespace Fluxus;
00024 
00025 SearchPaths *SearchPaths::m_Singleton = NULL;
00026 
00027 SearchPaths* SearchPaths::Get()
00028 {
00029     if (!m_Singleton)
00030     {
00031         m_Singleton = new SearchPaths;
00032     }
00033     return m_Singleton;
00034 }
00035 
00036 void SearchPaths::Shutdown()
00037 {
00038     if (m_Singleton)
00039     {
00040         delete m_Singleton;
00041     }
00042 }
00043     
00044 string SearchPaths::GetFullPath(const string &Filename)
00045 {
00046     if (Filename!="")
00047     {
00048         for (vector<string>::iterator i=m_Paths.begin(); i!=m_Paths.end(); i++)
00049         {
00050             string path = *i+Filename;
00051             struct stat sb;
00052             if (!stat(path.c_str(), &sb))
00053             {
00054                 return path;
00055             }
00056         }
00057     }
00058     return Filename;
00059 }
00060 
00061 void SearchPaths::AddPath(const string &Path)
00062 {
00063     m_Paths.push_back(Path);
00064 }

Generated on Wed Sep 17 21:16:30 2008 for The Fluxus Renderer (libfluxus) by  doxygen 1.5.1