Merge #21052: refactor: Replace fs::unique_path with GetUniquePath(pa…

Merge #21052: refactor: Replace fs::unique_path with GetUniquePath(path) calls

1bca2aa694cd85984c09699ae28daec313077462 Introduce GetUniquePath(base) helper method to replace boost::filesystem::unique_path() which is not available in std::filesystem. (Kiminuo)

Pull request description:

  This PR makes it easier in #20744 to remove our dependency on the `boost::filesystem::unique_path()` function which does not have a direct equivalent in C++17.

  This PR attempts to re-implement `boost::filesystem::unique_path()` as `GetUniquePath(path)` but the implementations are not meant to be the same.

  Note:

  * Boost 1.75.0 implementation of `unique_path`: https://github.com/boostorg/filesystem/blob/9cab675b71e98706886a87afe7c19eb9da568961/src/unique_path.cpp#L235

  * In the previous implementation, I attempted to add:
      ```cpp
      fs::path GetUniquePath(const fs::path& base)
      {
          FastRandomContext rnd;
          fs::path tmpFile = base / HexStr(rnd.randbytes(8));
          return tmpFile;
      }
      ```

      to `fs.cpp` but this leads to a circular dependency: "fs -> random -> logging -> fs". That is why the modified implementation adds a new file.

ACKs for top commit:
  laanwj:
    Code review ACK 1bca2aa694cd85984c09699ae28daec313077462
  ryanofsky:
    Code review ACK 1bca2aa694cd85984c09699ae28daec313077462. It's a simple change and extra test coverage is nice

Tree-SHA512: f324bdf0e254160c616b5033c3ece33d87db23eb0135acee99346ade7b5cf0d30f3ceefe359a25a8e9b53ba8e4419f459c2bdd369e10fc0152ce95031d1f221c

情報元 - Merge #21052: refactor: Replace fs::unique_path with GetUniquePath(pa… · bitcoin/[email protected] · GitHub

Merge #21052: refactor: Replace fs::unique_path with GetUniquePath(pa… · bitcoin/bitcoin@d202054 · GitHub
スポンサーリンク

シェアする

フォローする

スポンサーリンク

トップへ戻る