// Fingerprinting public override Fingerprint GetFingerprint(IBuildContext ctxt, Fingerprint cached) { DateTime ondisk = GetModTime(ctxt); Fingerprint result; if (cached != null && modtime == ondisk) { result = cached; } else { // FIXME: right way to do this ???? Not sure at all result = Fingerprint.FromText(ToString(Storage) + subpath); } modtime = ondisk; return(result); }
// Fingerprint public override Fingerprint GetFingerprint(IBuildContext ctxt, Fingerprint cached) { return(Fingerprint.FromText(value)); }
public static Fingerprint GetFingerprint(object o, IBuildContext ctxt, Fingerprint cached) { if (o == null) { return(Null); } if (o is IFingerprintable) { return((o as IFingerprintable).GetFingerprint(ctxt, cached)); } if (o is Boolean) { return(Constant(BitConverter.GetBytes((bool)o))); } if (o is Byte) { return(Constant(BitConverter.GetBytes((byte)o))); } if (o is Char) { return(Constant(BitConverter.GetBytes((char)o))); } if (o is Int16) { return(Constant(BitConverter.GetBytes((short)o))); } if (o is Int32) { return(Constant(BitConverter.GetBytes((int)o))); } if (o is Int64) { return(Constant(BitConverter.GetBytes((long)o))); } if (o is UInt16) { return(Constant(BitConverter.GetBytes((ushort)o))); } if (o is UInt32) { return(Constant(BitConverter.GetBytes((uint)o))); } if (o is UInt64) { return(Constant(BitConverter.GetBytes((ulong)o))); } if (o is Single) { return(Constant(BitConverter.GetBytes((float)o))); } if (o is Double) { return(Constant(BitConverter.GetBytes((double)o))); } if (o is String) { return(Fingerprint.FromText((string)o)); } throw new Exception(String.Format("Don't know how to get a fingerprint from object of type {0}", o.GetType())); }