Esempio n. 1
0
        // 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);
        }
Esempio n. 2
0
        // Fingerprint

        public override Fingerprint GetFingerprint(IBuildContext ctxt, Fingerprint cached)
        {
            return(Fingerprint.FromText(value));
        }
Esempio n. 3
0
        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()));
        }