示例#1
0
 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));
		}