00001 #include <stdio.h>
00002 #include <sys/stat.h>
00003 #include <sys/types.h>
00004 #include "SearchPaths.h"
00005
00006 using namespace Fluxus;
00007
00008 SearchPaths *SearchPaths::m_Singleton = NULL;
00009
00010 SearchPaths* SearchPaths::Get()
00011 {
00012 if (!m_Singleton)
00013 {
00014 m_Singleton = new SearchPaths;
00015 }
00016 return m_Singleton;
00017 }
00018
00019 void SearchPaths::Shutdown()
00020 {
00021 if (m_Singleton)
00022 {
00023 delete m_Singleton;
00024 }
00025 }
00026
00027 string SearchPaths::GetFullPath(const string &Filename)
00028 {
00029 for (vector<string>::iterator i=m_Paths.begin(); i!=m_Paths.end(); i++)
00030 {
00031 string path = *i+Filename;
00032 struct stat sb;
00033 if (!stat(path.c_str(), &sb))
00034 {
00035 return path;
00036 }
00037 }
00038 return Filename;
00039 }
00040
00041 void SearchPaths::AddPath(const string &Path)
00042 {
00043 m_Paths.push_back(Path);
00044 }