1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
/**
* @file DataDirLocater.h
* @author Tobi Vollebregt
*
* Copyright (C) 2006-2008 Tobi Vollebregt
* Licensed under the terms of the GNU GPL, v2 or later
*/
#ifndef DATADIRLOCATER_H
#define DATADIRLOCATER_H
#include <string>
#include <vector>
struct DataDir
{
DataDir(const std::string& p);
std::string path;
bool writable;
};
class DataDirLocater
{
public:
DataDirLocater();
void LocateDataDirs();
const std::vector<DataDir>& GetDataDirs() const { return datadirs; }
const DataDir* GetWriteDir() const { return writedir; }
private:
std::string SubstEnvVars(const std::string& in) const;
void AddDirs(const std::string& in);
bool DeterminePermissions(DataDir* d);
void DeterminePermissions();
std::vector<DataDir> datadirs;
const DataDir* writedir;
};
#endif // !defined(DATADIRLOCATER_H)
|