Added way to override public directory.

This commit is contained in:
Dario Solera 2011-01-05 15:14:31 +00:00
parent ffa6f12f6b
commit 6b9dd4150b
4 changed files with 24 additions and 24 deletions

View file

@ -12,33 +12,13 @@ namespace ScrewTurn.Wiki {
/// </summary>
public abstract class ProviderBase {
private object _syncLock = new object();
private bool _dataDirectoryAlreadyRead = false;
private string _dataDirectory = null;
/// <summary>
/// Sets the data directory.
/// </summary>
/// <param name="dataDirectory">The data directory.</param>
public void SetDataDirectory(string dataDirectory) {
lock(_syncLock) {
if(_dataDirectoryAlreadyRead) throw new InvalidOperationException("Cannot set data directory when it's already been read");
_dataDirectory = dataDirectory;
}
}
/// <summary>
/// Gets the data directory.
/// </summary>
/// <param name="host">The host object.</param>
/// <returns>The data directory.</returns>
protected string GetDataDirectory(IHostV30 host) {
lock(_syncLock) {
_dataDirectoryAlreadyRead = true;
if(string.IsNullOrEmpty(_dataDirectory)) return host.GetSettingValue(SettingName.PublicDirectory);
else return _dataDirectory;
}
return host.GetSettingValue(SettingName.PublicDirectory);
}
}