2 using System.Collections.Generic;
3 using System.Globalization;
6 namespace Pithos.Interfaces
8 public class ObjectInfo
10 public string Name { get; set; }
11 public string Hash { get; set; }
12 public long Bytes { get; set; }
13 public string Content_Type { get; set; }
14 public DateTime Last_Modified { get; set; }
16 private Dictionary<string, string> _tags=new Dictionary<string, string>();
17 public Dictionary<string, string> Tags
20 set { _tags = value; }
23 private Dictionary<string, string> _extensions=new Dictionary<string, string>();
24 public Dictionary<string, string> Extensions
26 get { return _extensions; }
30 ExtractKnownExtensions();
34 public long? Version { get; set; }
35 public DateTime? VersionTimeStamp { get; set; }
37 public Stream Stream { get; set; }
40 private void ExtractKnownExtensions()
42 Version=GetLong("X-Object-Version");
43 VersionTimeStamp = GetTimestamp("X-Object-Version-TimeStamp");
46 private long? GetLong(string name)
50 if (_extensions.TryGetValue(name, out version) && long.TryParse(version, out value))
57 private DateTime? GetTimestamp(string name)
61 if (_extensions.TryGetValue(name, out version) &&
62 DateTime.TryParse(version,CultureInfo.InvariantCulture,DateTimeStyles.AdjustToUniversal, out value))
70 public static ObjectInfo Empty = new ObjectInfo
75 Content_Type = String.Empty,
76 Last_Modified = DateTime.MinValue