public override bool Equals(object @object) { if (@object == null || @object.GetType() != typeof(NeoDatis.Odb.Impl.Core.Oid.TransactionIdImpl )) { return(false); } NeoDatis.Odb.Impl.Core.Oid.TransactionIdImpl tid = (NeoDatis.Odb.Impl.Core.Oid.TransactionIdImpl )@object; return(id1 == tid.id1 && id2 == tid.id2 && databaseId.Equals(tid.databaseId)); }
/// <summary>Creates the header of the file</summary> /// <param name="creationDate">The creation date</param> /// <param name="user">The user</param> /// <param name="password">The password @</param> public virtual void CreateEmptyDatabaseHeader(long creationDate, string user, string password) { WriteEncrytionFlag(false, false); WriteVersion(false); NeoDatis.Odb.DatabaseId databaseId = WriteDatabaseId(creationDate, false); WriteReplicationFlag(false, false); // Create the first Transaction Id NeoDatis.Odb.TransactionId tid = new NeoDatis.Odb.Impl.Core.Oid.TransactionIdImpl (databaseId, 0, 1); storageEngine.SetCurrentTransactionId(tid); WriteLastTransactionId(tid); WriteNumberOfClasses(0, false); WriteFirstClassInfoOID(NeoDatis.Odb.Impl.Core.Layers.Layer3.Engine.StorageEngineConstant .NullObjectId, false); WriteLastODBCloseStatus(false, false); WriteDatabaseCharacterEncoding(false); WriteUserAndPassword(user, password, false); // This is the position of the first block id. But it will always // contain the position of the current id block fsi.WriteLong(NeoDatis.Odb.Impl.Core.Layers.Layer3.Engine.StorageEngineConstant.DatabaseHeaderFirstIdBlockPosition , false, "current id block position", NeoDatis.Odb.Impl.Core.Transaction.DefaultWriteAction .DirectWriteAction); // Write an empty id block WriteIdBlock(-1, NeoDatis.Odb.OdbConfiguration.GetIdBlockSize(), NeoDatis.Odb.Impl.Core.Layers.Layer3.Block.BlockStatus .BlockNotFull, 1, -1, false); Flush(); storageEngine.SetCurrentIdBlockInfos(NeoDatis.Odb.Impl.Core.Layers.Layer3.Engine.StorageEngineConstant .DatabaseHeaderFirstIdBlockPosition, 1, NeoDatis.Odb.Core.Oid.OIDFactory.BuildObjectOID (0)); }