Пример #1
0
// Request disc info; returns true if request will be handled and false if request can not be processed
FXbool CDDBInfo::requestData()
{
  FXbool success=TRUE;

  FXbool foundlocal=FALSE;
  disc_data data;

  setStatus(CDINFO_PENDING);

  cddb_init_disc_data(&data);
  if(settings.localcopy)
  {
    if(getLocalInfo(&data))
      foundlocal=TRUE;
  }

  if(!foundlocal&&!getRemoteInfo(&data))
    success=FALSE;

  fillCurrentData(data);
  cddb_free_disc_data(&data);

  setStatus(success ? CDINFO_DONE : CDINFO_ERROR);

  // Signal completion to main thread
  if(signal!=NULL)
    signal->signal();

  return success;
}
Пример #2
0
void MultiBlock3D::resetFlags() {
    std::vector<plint> const& blocks = getLocalInfo().getBlocks();
    for (pluint iBlock=0; iBlock<blocks.size(); ++iBlock) {
        plint blockId = blocks[iBlock];
        getComponent(blockId).setFlag(false);
    }
}
Пример #3
0
void MultiBlock3D::evaluateStatistics() {
    std::vector<plint> const& blocks = getLocalInfo().getBlocks();
    for (pluint iBlock=0; iBlock<blocks.size(); ++iBlock) {
        plint blockId = blocks[iBlock];
        getComponent(blockId).evaluateStatistics();
    }
    if (isInternalStatisticsOn()) reduceStatistics();
}
Пример #4
0
void MultiBlock3D::executeInternalProcessors(plint level, bool communicate) {
    std::vector<plint> const& blocks = getLocalInfo().getBlocks();
    for (pluint iBlock=0; iBlock<blocks.size(); ++iBlock) {
        plint blockId = blocks[iBlock];
        getComponent(blockId).executeInternalProcessors(level);
    }
    if (communicate) {
        duplicateOverlapsInModifiedMultiBlocks(level);
    }
}
Пример #5
0
void MultiBlock3D::reduceStatistics() {
    std::vector<plint> const& blocks = getLocalInfo().getBlocks();
    std::vector<BlockStatistics const*> individualStatistics;
    // Prepare a vector containing the BlockStatistics of all components
    for (pluint iBlock=0; iBlock<blocks.size(); ++iBlock) {
        plint blockId = blocks[iBlock];
        individualStatistics.push_back(&getComponent(blockId).getInternalStatistics());
    }

    // Execute reduction operation on all individual statistics and store result into
    //   statistics of current MultiBlock.
    combinedStatistics -> combine(individualStatistics, this->getInternalStatistics());
    // Copy result to each individual statistics
    for (pluint iBlock=0; iBlock<blocks.size(); ++iBlock) {
        plint blockId = blocks[iBlock];
        (getComponent(blockId).getInternalStatistics()) = (this->getInternalStatistics());
    }
}