You've already forked linux-packaging-mono
Imported Upstream version 5.2.0.179
Former-commit-id: a536d4f20e27294d8bbc2184d75f3a22364f7ba1
This commit is contained in:
parent
966bba02bb
commit
fad71374d0
75
external/api-doc-tools/monodoc/Monodoc/caches/FileCache.cs
vendored
Normal file
75
external/api-doc-tools/monodoc/Monodoc/caches/FileCache.cs
vendored
Normal file
@ -0,0 +1,75 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
|
||||
namespace Monodoc.Caches
|
||||
{
|
||||
public class FileCache : IDocCache
|
||||
{
|
||||
string baseCacheDir;
|
||||
|
||||
public FileCache (string baseCacheDir)
|
||||
{
|
||||
this.baseCacheDir = baseCacheDir;
|
||||
if (!Directory.Exists (baseCacheDir))
|
||||
Directory.CreateDirectory (baseCacheDir);
|
||||
}
|
||||
|
||||
public bool IsCached (string id)
|
||||
{
|
||||
return File.Exists (MakePath (id));
|
||||
}
|
||||
|
||||
public bool CanCache (DocEntity entity)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public Stream GetCachedStream (string id)
|
||||
{
|
||||
return File.OpenRead (MakePath (id));
|
||||
}
|
||||
|
||||
public string GetCachedString (string id)
|
||||
{
|
||||
return File.ReadAllText (MakePath (id));
|
||||
}
|
||||
|
||||
public void CacheText (string id, string content)
|
||||
{
|
||||
File.WriteAllText (MakePath (id), content);
|
||||
}
|
||||
|
||||
public void CacheText (string id, Stream stream)
|
||||
{
|
||||
using (var file = File.OpenWrite (MakePath (id)))
|
||||
stream.CopyTo (file);
|
||||
}
|
||||
|
||||
public void CacheBlob (string id, byte[] data)
|
||||
{
|
||||
File.WriteAllBytes (MakePath (id), data);
|
||||
}
|
||||
|
||||
public void CacheBlob (string id, Stream stream)
|
||||
{
|
||||
using (var file = File.OpenWrite (MakePath (id)))
|
||||
stream.CopyTo (file);
|
||||
}
|
||||
|
||||
string MakePath (string id)
|
||||
{
|
||||
id = id.Replace (Path.DirectorySeparatorChar, '_');
|
||||
return Path.Combine (baseCacheDir, id);
|
||||
}
|
||||
|
||||
public void Dispose ()
|
||||
{
|
||||
if (!Directory.Exists (baseCacheDir))
|
||||
return;
|
||||
|
||||
try {
|
||||
Directory.Delete (baseCacheDir, true);
|
||||
} catch {}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user