std::vector BasicManager::GetLoadersCurrentlyUsingResources()

in tensorflow_serving/core/basic_manager.cc [419:465]


std::vector<const Loader*> BasicManager::GetLoadersCurrentlyUsingResources()
    const {
  std::vector<const Loader*> loaders;
  for (const auto& entry : managed_map_) {
    const LoaderHarness& harness = *entry.second;
    bool uses_resources;
    switch (harness.state()) {
      case LoaderHarness::State::kNew:
        uses_resources = false;
        break;
      case LoaderHarness::State::kLoadRequested:
        uses_resources = false;
        break;
      case LoaderHarness::State::kLoadApproved:
        uses_resources = true;
        break;
      case LoaderHarness::State::kLoading:
        uses_resources = true;
        break;
      case LoaderHarness::State::kReady:
        uses_resources = true;
        break;
      case LoaderHarness::State::kQuiescing:
        uses_resources = true;
        break;
      case LoaderHarness::State::kQuiesced:
        uses_resources = true;
        break;
      case LoaderHarness::State::kUnloadRequested:
        uses_resources = true;
        break;
      case LoaderHarness::State::kUnloading:
        uses_resources = true;
        break;
      case LoaderHarness::State::kDisabled:
        uses_resources = false;
        break;
      case LoaderHarness::State::kError:
        uses_resources = false;
        break;
    }
    if (uses_resources) {
      loaders.push_back(harness.loader());
    }
  }
  return loaders;
}