コード例 #1
0
ファイル: Cache.cs プロジェクト: tt/dotnetxri
    } // findNode()

    /*
    ****************************************************************************
    * stuff()
    ****************************************************************************
    */ /**
    *
    */
    synchronized void stuff(XRIAuthority oAuth, XRD oDescriptor)
    {
        stuff(oAuth, oDescriptor, oAuth.getNumSubSegments());

    } // stuff()
コード例 #2
0
ファイル: Cache.cs プロジェクト: tt/dotnetxri
    } // find()

    /*
    ****************************************************************************
    * findNode()
    ****************************************************************************
    */ /**
    *
    */
    private CacheNode findNode(
        XRIAuthority oAuth, bool bPartial, bool bCompleteChain,
        Vector oCachedDescriptors)
    {
        // get the Node for the community root
        CacheNode oCommunityNode = moRootNode.find(oAuth.getRootAuthority());
        if (oCommunityNode == null)
        {
            return null;
        }

        // if the found node doesn't have a cached value, potentially bail
        if (
            (oCommunityNode.moCacheValue == null) ||
            (oCommunityNode.moCacheValue.getDescriptor() == null))
        {
            if (bCompleteChain)
            {
                return null;
            }
        }
        else if (oCachedDescriptors != null)
        {
            oCachedDescriptors.add(oCommunityNode.moCacheValue.getDescriptor());
        }

        // find the deepest node that fits the bill
        CacheResult oDeepestNode =
            oCommunityNode.find(oAuth, 0, bCompleteChain, oCachedDescriptors);

        // return the node we found if we got everything, or we are in partial mode
        if (bPartial || (oDeepestNode.mnNumFound == oAuth.getNumSubSegments()))
        {
            return oDeepestNode.moLastCacheNode;
        }
        else
        {
            return null;
        }

    } // findNode()