/// <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); }
/// <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)); } }
/// <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)); }
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; }
/// <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); }
public BdsVersion(BdsVersion v) { CopyFrom(v); }