Exemple #1
0
        protected bool IsEqualReadable(Session session, IPersistentStore store, NodeAVL node)
        {
            object[] data;
            NodeAVL  x = node;

            if (!session.database.TxManager.CanRead(session, node.GetRow(store), 1, null))
            {
                Row row;
                data = node.GetData(store);
                do
                {
                    x = this.Last(store, x);
                    if (x == null)
                    {
                        goto Label_006E;
                    }
                    object[] data = x.GetData(store);
                    if (this.CompareRow(session, data, data) != 0)
                    {
                        goto Label_006E;
                    }
                    row = x.GetRow(store);
                }while (!session.database.TxManager.CanRead(session, row, 1, null));
            }
            return(true);

Label_006E:
            x = this.Next(session, store, node);
            if (x != null)
            {
                object[] data = x.GetData(store);
                if (this.CompareRow(session, data, data) != 0)
                {
                    return(false);
                }
                Row row = x.GetRow(store);
                if (!session.database.TxManager.CanRead(session, row, 1, null))
                {
                    goto Label_006E;
                }
            }
            else
            {
                return(false);
            }
            return(true);
        }