Exemple #1
0
        //------------------------------------------------------------
        // CSourceData.LookupNode
        //------------------------------------------------------------
        //STDMETHODIMP CSourceData::LookupNode (
        //    NAME *pKey, long iOrdinal, BASENODE **ppNode, long *piGlobalOrdinal)
        //virtual internal int LookupNode(
        //    ref string pKey, int iOrdinal, ref BASENODE ppNode, ref int piGlobalOrdinal)
        //{
        //    return sourceModuleBase.LookupNode (this, pKey, iOrdinal, ppNode, piGlobalOrdinal);
        //}

        //------------------------------------------------------------
        // CSourceData.GetNodeKeyOrdinal
        //------------------------------------------------------------
        //STDMETHODIMP CSourceData::GetNodeKeyOrdinal (BASENODE *pNode, NAME **ppKey, long *piKeyOrdinal)
        //virtual internal int GetNodeKeyOrdinal(BASENODE pNode, ref string ppKey, ref int piKeyOrdinal)
        //{
        //    return sourceModuleBase.GetNodeKeyOrdinal (this, pNode, ppKey, piKeyOrdinal);
        //}

        //------------------------------------------------------------
        // CSourceData.GetGlobalKeyArray
        //------------------------------------------------------------
        //STDMETHODIMP CSourceData::GetGlobalKeyArray (KEYEDNODE *pKeyedNodes, long iSize, long *piCopied)
        //virtual internal int GetGlobalKeyArray(KEYEDNODE pKeyedNodes, int iSize, ref int piCopied)
        //{
        //    return sourceModuleBase.GetGlobalKeyArray (this, pKeyedNodes, iSize, piCopied);
        //}

        //------------------------------------------------------------
        // CSourceData.ParseForErrors
        //------------------------------------------------------------
        //STDMETHODIMP CSourceData::ParseForErrors ()
        //virtual internal int ParseForErrors()
        //{
        //    return sourceModuleBase.ParseForErrors (this);
        //}

        //------------------------------------------------------------
        // CSourceData.FindLeafNode
        //------------------------------------------------------------
        //STDMETHODIMP CSourceData::FindLeafNode (
        //  const POSDATA pos, BASENODE **ppNode, ICSInteriorTree **ppTree)
        //virtual internal int FindLeafNode(POSDATA pos, ref BASENODE ppNode, ref CInteriorTree ppTree)
        //{
        //    return FindLeafNodeEx(pos, EF_FULL, ppNode, ppTree);
        //}

        //------------------------------------------------------------
        // CSourceData.FindLeafNodeForToken
        //------------------------------------------------------------
        //STDMETHODIMP CSourceData::FindLeafNodeForToken (
        //  long iToken, BASENODE **ppNode, ICSInteriorTree **ppTree)
        //virtual internal int FindLeafNodeForToken(
        //    int iToken, ref BASENODE ppNode, ref CInteriorTree ppTree)
        //{
        //    return FindLeafNodeForTokenEx(iToken, EF_FULL, ppNode, ppTree);
        //}

        //------------------------------------------------------------
        // CSourceData.FindLeafNodeEx
        //------------------------------------------------------------
        //STDMETHODIMP CSourceData::FindLeafNodeEx (
        //    const POSDATA pos, ExtentFlags flags, BASENODE **ppNode, ICSInteriorTree **ppTree)
        //virtual internal int FindLeafNodeEx(
        //    POSDATA pos, ExtentFlags flags, ref BASENODE ppNode, ref CInteriorTree ppTree)
        //{
        //    return sourceModuleBase.FindLeafNodeEx (this, pos, flags, ppNode, ppTree);
        //}

        //------------------------------------------------------------
        // CSourceData.FindLeafNodeForTokenEx
        //------------------------------------------------------------
        //STDMETHODIMP CSourceData::FindLeafNodeForTokenEx (
        //  long iToken, ExtentFlags flags, BASENODE **ppNode, ICSInteriorTree **ppTree)
        //virtual internal int FindLeafNodeForTokenEx(
        //    int iToken, ExtentFlags flags, ref BASENODE ppNode, ref CInteriorTree ppTree)
        //{
        //    return sourceModuleBase.FindLeafNodeForTokenEx (this, iToken, flags, ppNode, ppTree);
        //}

        //------------------------------------------------------------
        // CSourceData.GetExtent
        //------------------------------------------------------------
        //virtual internal int GetExtent(BASENODE pNode, POSDATA pposStart, POSDATA pposEnd)
        //{
        //}

        //STDMETHODIMP CSourceData::GetExtent(BASENODE *pNode, POSDATA *pposStart, POSDATA *pposEnd) {
        //    return GetExtentEx( pNode, pposStart, pposEnd, EF_FULL);
        //};

        //------------------------------------------------------------
        // CSourceData.GetExtentEx
        //
        /// <summary></summary>
        /// <param name="node"></param>
        /// <param name="start"></param>
        /// <param name="end"></param>
        /// <param name="flags"></param>
        /// <returns></returns>
        //------------------------------------------------------------
        virtual internal bool GetExtentEx(
            BASENODE node,
            POSDATA start,
            POSDATA end,
            ExtentFlags flags)
        {
            return(sourceModuleBase.GetExtent(node, start, end, flags));
        }
Exemple #2
0
        public ExtentRecord(List <DatabaseRecordFragment> fragments) : base(fragments)
        {
            // Data begins at 0x10 (VBLK header is at 0x00)
            int offset = 0x00; // relative to Data

            ReadCommonFields(this.Data, ref offset);
            if (RecordRevision != 3)
            {
                throw new NotImplementedException("Unsupported record revision");
            }
            ExtentFlags         = (ExtentFlags)BigEndianReader.ReadUInt32(this.Data, ref offset);
            CommitTransactionID = BigEndianReader.ReadUInt64(this.Data, ref offset);
            DiskOffsetLBA       = BigEndianReader.ReadUInt64(this.Data, ref offset);
            OffsetInColumnLBA   = BigEndianReader.ReadUInt64(this.Data, ref offset);
            SizeLBA             = ReadVarULong(this.Data, ref offset);
            ComponentId         = ReadVarULong(this.Data, ref offset);
            DiskId = ReadVarULong(this.Data, ref offset);

            if (HasColumnIndexFlag)
            {
                ColumnIndex = ReadVarUInt(this.Data, ref offset);
            }

            if (HasUnknownTransactionIDFlag)
            {
                UnknownTransactionID = BigEndianReader.ReadUInt64(this.Data, ref offset);
            }

            if (HasUnknown1Flag)
            {
                Unknown1 = ReadVarUInt(this.Data, ref offset);
            }

            if (HasHiddenFlag)
            {
                HiddenCount = ReadVarULong(this.Data, ref offset);
            }
        }