model_server/xref/src/XrefQuery.cxx
//////////////////////////////////////////////////////////////////////////////////
//perform a query and append result to accum_results
perform a query and append result to accum_results
perform a query and append result to accum_results
bool XrefQuery::do_1_query(symbolSet& accum_results, symbolArr& domain, int action)
{
    Initialize(XrefQuery::do_1_query);
    symbolArr results;
    symbolArr filtered_domain;
    if (!filter_src_before_query(domain, filtered_domain, action)) 
    {
	domain.removeAll();
	return false;
    }
    if (do_before_get_link(accum_results, filtered_domain, action))
    {
	int index = GetIndex(action);
	if (index == -1) return false;
	genMask links = m_Queries[index].Links;
	ddKind kind = m_Queries[index].Kind;
	for (int i = links.peek(); i >= 0; i = links.peek(i))
	{
	    get_link(filtered_domain, linkType(i), kind, results, action);
	}
    }
    domain.removeAll();
    symbolPtr result;
    ForEachS(result, results) 
    {
	if (!accum_results.includes(result)) 
	{
	    accum_results.insert(result);
	    domain.insert_last(result);
	}
    }
    return true;
}
bool XrefQuery :: do_1_query ( symbolSet & accum_results , symbolArr & domain , int action ) { Initialize ( XrefQuery :: do_1_query ) ; symbolArr results ; symbolArr filtered_domain ; if ( ! filter_src_before_query ( domain , filtered_domain , action ) ) { domain . removeAll ( ) ; return false ; } if ( do_before_get_link ( accum_results , filtered_domain , action ) ) { int index = GetIndex ( action ) ; if ( index == -1 ) return false ; genMask links = m_Queries [ index ] . Links ; ddKind kind = m_Queries [ index ] . Kind ; for ( int i = links . peek ( ) ; i >= 0 ; i = links . peek ( i ) ) { get_link ( filtered_domain , linkType ( i ) , kind , results , action ) ; } } domain . removeAll ( ) ; symbolPtr result ; ForEachS ( result , results ) { if ( ! accum_results . includes ( result ) ) { accum_results . insert ( result ) ; domain . insert_last ( result ) ; } } return true ; }
perform a query and append result to accum_results
perform a query and append result to accum_results