Пример #1
0
		public override object ShallowClone()
		{
			Db4objects.Db4o.Internal.Freespace.FreeSlotNode frslot = new Db4objects.Db4o.Internal.Freespace.FreeSlotNode
				(_key);
			frslot._peer = _peer;
			return base.ShallowCloneInternal(frslot);
		}
Пример #2
0
        internal static Tree RemoveGreaterOrEqual(Db4objects.Db4o.Internal.Freespace.FreeSlotNode
                                                  a_in, TreeIntObject a_finder)
        {
            if (a_in == null)
            {
                return(null);
            }
            int cmp = a_in._key - a_finder._key;

            if (cmp == 0)
            {
                a_finder._object = a_in;
                // the highest node in the hierarchy !!!
                return(a_in.Remove());
            }
            if (cmp > 0)
            {
                a_in._preceding = RemoveGreaterOrEqual((Db4objects.Db4o.Internal.Freespace.FreeSlotNode
                                                        )((Tree)a_in._preceding), a_finder);
                if (a_finder._object != null)
                {
                    a_in._size--;
                    return(a_in);
                }
                a_finder._object = a_in;
                return(a_in.Remove());
            }
            a_in._subsequent = RemoveGreaterOrEqual((Db4objects.Db4o.Internal.Freespace.FreeSlotNode
                                                     )((Tree)a_in._subsequent), a_finder);
            if (a_finder._object != null)
            {
                a_in._size--;
            }
            return(a_in);
        }
Пример #3
0
 public override object ShallowClone()
 {
     Db4objects.Db4o.Internal.Freespace.FreeSlotNode frslot = new Db4objects.Db4o.Internal.Freespace.FreeSlotNode
                                                                  (_key);
     frslot._peer = _peer;
     return(base.ShallowCloneInternal(frslot));
 }
Пример #4
0
        private void DebugCheckBuffer(ByteArrayBuffer buffer, Db4objects.Db4o.Internal.Freespace.FreeSlotNode
                                      node)
        {
            if (!(buffer is StatefulBuffer))
            {
                return;
            }
            Transaction trans = ((StatefulBuffer)buffer).Transaction();

            if (!(trans.Container() is IoAdaptedObjectContainer))
            {
                return;
            }
            StatefulBuffer checker = trans.Container().CreateStatefulBuffer(trans, node._peer
                                                                            ._key, node._key);

            checker.Read();
            for (int i = 0; i < node._key; i++)
            {
                if (checker.ReadByte() != (byte)'X')
                {
                    Sharpen.Runtime.Out.WriteLine("!!! Free space corruption at:" + node._peer._key);
                    break;
                }
            }
        }
Пример #5
0
		public override object Read(ByteArrayBuffer buffer)
		{
			int size = buffer.ReadInt();
			int address = buffer.ReadInt();
			if (size > sizeLimit)
			{
				Db4objects.Db4o.Internal.Freespace.FreeSlotNode node = new Db4objects.Db4o.Internal.Freespace.FreeSlotNode
					(size);
				node.CreatePeer(address);
				if (Deploy.debug && Debug4.xbytes)
				{
					DebugCheckBuffer(buffer, node);
				}
				return node;
			}
			return null;
		}
Пример #6
0
        public override object Read(ByteArrayBuffer buffer)
        {
            int size    = buffer.ReadInt();
            int address = buffer.ReadInt();

            if (size > sizeLimit)
            {
                Db4objects.Db4o.Internal.Freespace.FreeSlotNode node = new Db4objects.Db4o.Internal.Freespace.FreeSlotNode
                                                                           (size);
                node.CreatePeer(address);
                if (Deploy.debug && Debug4.xbytes)
                {
                    DebugCheckBuffer(buffer, node);
                }
                return(node);
            }
            return(null);
        }
Пример #7
0
		internal void CreatePeer(int a_key)
		{
			_peer = new Db4objects.Db4o.Internal.Freespace.FreeSlotNode(a_key);
			_peer._peer = this;
		}
Пример #8
0
 internal void CreatePeer(int a_key)
 {
     _peer       = new Db4objects.Db4o.Internal.Freespace.FreeSlotNode(a_key);
     _peer._peer = this;
 }