00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
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 }