Esempio n. 1
0
 /// <summary>
 /// Compares Major, Minor, Revision and Build.
 /// </summary>
 public bool IsEqualVersion(BdsVersion v)
 {
     return(Major == v.Major &&
            Minor == v.Minor &&
            Revision == v.Revision &&
            Build == v.Build);
 }
Esempio n. 2
0
        /// <summary>
        /// Replaces BDS version in a data file (the version must be at the
        /// beginning of the file).
        /// </summary>
        public static void ReplaceInDataFile(string fileName, ReplaceDelegate replace)
        {
            string tempFile1 = fileName + ".repl";
            string tempFile2 = fileName + ".backup";

            using (BinaryReader r = new BinaryReader(File.OpenRead(fileName)))
            {
                using (BinaryWriter w = new BinaryWriter(File.Open(tempFile1, FileMode.Create, FileAccess.Write)))
                {
                    BdsVersion currentVersion = new BdsVersion();
                    currentVersion.Read(r);
                    replace(ref currentVersion);
                    currentVersion.Write(w);
                    byte[] buffer = new byte[1024 * 100];
                    for (; ;)
                    {
                        int actRead = r.Read(buffer, 0, buffer.Length);
                        w.Write(buffer, 0, actRead);
                        if (actRead != buffer.Length)
                        {
                            break;
                        }
                    }
                }
            }
            // Now tempFile1 contains the copy of original file with replaced
            // version. Now rename the files and delete the old file.
            File.Move(fileName, tempFile2);
            File.Move(tempFile1, fileName);
            File.Delete(tempFile2);
        }
 /// <summary>
 /// Writes the standard BDS header and checks the format version.
 /// </summary>
 public static void ReadHeader(BinaryReader r, out BdsVersion bdsVersion, out int formatVersion, int lastSupportedFormatVersion)
 {
     ReadHeader(r, out bdsVersion, out formatVersion);
     if (formatVersion > lastSupportedFormatVersion)
     {
         throw new ApplicationException(
                   string.Format("Unsupported serialization format '{0}', max supported: '{1}'", formatVersion,
                                 lastSupportedFormatVersion));
     }
 }
Esempio n. 4
0
        /// <summary>
        /// Equality comparison, compares all fields.
        /// </summary>
        public override bool Equals(object obj)
        {
            if (obj == null)
            {
                return(false);
            }
            BdsVersion v = (BdsVersion)obj;

            return(Equals(v));
        }
Esempio n. 5
0
 public void CopyFrom(BdsVersion v)
 {
     Major           = v.Major;
     Minor           = v.Minor;
     Revision        = v.Revision;
     Build           = v.Build;
     ScmInfo         = v.ScmInfo;
     BuildInfo       = v.BuildInfo;
     Description     = v.Description;
     UserDescription = v.UserDescription;
 }
Esempio n. 6
0
 /// <summary>
 /// Equality comparison, compares all fields.
 /// </summary>
 public bool Equals(BdsVersion v)
 {
     return(Major == v.Major &&
            Minor == v.Minor &&
            Revision == v.Revision &&
            Build == v.Build &&
            ScmInfo == v.ScmInfo &&
            BuildInfo == v.BuildInfo &&
            Description == v.Description &&
            UserDescription == v.UserDescription);
 }
 /// <summary>
 /// Reads the standard BDS header.
 /// </summary>
 public static void ReadHeader(BinaryReader r, out BdsVersion bdsVersion, out int formatVersion)
 {
     bdsVersion = new BdsVersion();
     bdsVersion.Read(r);
     formatVersion = r.ReadInt32();
 }
 /// <summary>
 /// Writes the standard BDS header.
 /// </summary>
 public static void WriteHeader(BinaryWriter w, BdsVersion bdsVersion, int formatVersion)
 {
     // Write version first to allow standard tools work.
     bdsVersion.Write(w);
     w.Write(formatVersion);
 }
Esempio n. 9
0
 public BdsVersion(BdsVersion v)
 {
     CopyFrom(v);
 }