예제 #1
0
void PrinterVisitor::beginVisit( ExtFunctionCallIterator const &i ) {
  thePrinter.startBeginVisit( "ExtFunctionCallIterator", ++theId );
  if ( i.isCached() )
  {
    if (i.isCacheAcrossSnapshots())
      thePrinter.addBoolAttribute("cached-across-snapshots", true);
    else
      thePrinter.addBoolAttribute("cached", true);
  }
  printCommons(  &i, theId );

  if (zorba::Properties::instance().getCollectProfile() && thePlanState)
  {
    ExtFunctionCallIteratorState const *const pi_state =
        StateTraitsImpl<ExtFunctionCallIteratorState>::getState(
            *thePlanState, i.getStateOffset());

    const ProfileDataMap* lDataMap = pi_state->getProfileDataMap();
    if (lDataMap)
    {
      for (ProfileDataMap::const_iterator lIt = lDataMap->begin();
          lIt != lDataMap->end();
          ++lIt)
        thePrinter.addItemAttribute(lIt->first.c_str(), lIt->second);
    }
  }

  thePrinter.endBeginVisit( theId );
}
예제 #2
0
void PrinterVisitor::beginVisit( ExtFunctionCallIterator const &i ) {
  thePrinter.startBeginVisit( "ExtFunctionCallIterator", ++theId );
  if ( i.isCached() )
  {
    if (i.isCacheAcrossSnapshots())
      thePrinter.addAttribute("cached-across-snapshots", "true");
    else
      thePrinter.addAttribute("cached", "true");
  }
  printCommons(  &i, theId );
  thePrinter.endBeginVisit( theId );
}