MCPcopy Create free account
hub / github.com/Xtra-Computing/thundersvm / insertFile

Method insertFile

src/thundersvm/util/log.cpp:1700–1741  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1698 }
1699
1700 void TypedConfigurations::insertFile(Level level, const std::string& fullFilename) {
1701#if defined(ELPP_NO_LOG_TO_FILE)
1702 setValue(level, false, &m_toFileMap);
1703 ELPP_UNUSED(fullFilename);
1704 m_fileStreamMap.insert(std::make_pair(level, base::FileStreamPtr(nullptr)));
1705 return;
1706#endif
1707 std::string resolvedFilename = resolveFilename(fullFilename);
1708 if (resolvedFilename.empty()) {
1709 std::cerr << "Could not load empty file for logging, please re-check your configurations for level ["
1710 << LevelHelper::convertToString(level) << "]";
1711 }
1712 std::string filePath = base::utils::File::extractPathFromFilename(resolvedFilename, base::consts::kFilePathSeperator);
1713 if (filePath.size() < resolvedFilename.size()) {
1714 base::utils::File::createPath(filePath);
1715 }
1716 auto create = [&](Level level) {
1717 base::LogStreamsReferenceMap::iterator filestreamIter = m_logStreamsReference->find(resolvedFilename);
1718 base::type::fstream_t* fs = nullptr;
1719 if (filestreamIter == m_logStreamsReference->end()) {
1720 // We need a completely new stream, nothing to share with
1721 fs = base::utils::File::newFileStream(resolvedFilename);
1722 m_filenameMap.insert(std::make_pair(level, resolvedFilename));
1723 m_fileStreamMap.insert(std::make_pair(level, base::FileStreamPtr(fs)));
1724 m_logStreamsReference->insert(std::make_pair(resolvedFilename, base::FileStreamPtr(m_fileStreamMap.at(level))));
1725 } else {
1726 // Woops! we have an existing one, share it!
1727 m_filenameMap.insert(std::make_pair(level, filestreamIter->first));
1728 m_fileStreamMap.insert(std::make_pair(level, base::FileStreamPtr(filestreamIter->second)));
1729 fs = filestreamIter->second.get();
1730 }
1731 if (fs == nullptr) {
1732 // We display bad file error from newFileStream()
1733 ELPP_INTERNAL_ERROR("Setting [TO_FILE] of ["
1734 << LevelHelper::convertToString(level) << "] to FALSE", false);
1735 setValue(level, false, &m_toFileMap);
1736 }
1737 };
1738 // If we dont have file conf for any level, create it for Level::Global first
1739 // otherwise create for specified level
1740 create(m_filenameMap.empty() && m_fileStreamMap.empty() ? Level::Global : level);
1741 }
1742
1743 bool TypedConfigurations::unsafeValidateFileRolling(Level level, const PreRollOutCallback& preRollOutCallback) {
1744 base::type::fstream_t* fs = unsafeGetConfigByRef(level, &m_fileStreamMap, "fileStream").get();

Callers

nothing calls this directly

Calls 4

endMethod · 0.80
emptyMethod · 0.45
sizeMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected