[ledger] Avoid calling IsDirectoryAt twice, when getting a LevelDb.

LedgerStorageImpl::GetPageStorage would check if the directory at the
given path existed, in order to return NOT_FOUND if necessary. It would
then call DbFactory::GetOrCreateDb, which checked again if the directory
exists.

In this CL DbFactory::GetOrCreateDb is updated to support only getting
an existing Db, and fail with NOT_FOUND status if it doesn't exist.
This helps remove the extra call to IsDirectoryAt in LedgerStorageImpl.

Test: LevelDbFactoryTest.*
Change-Id: I6b97615179ceae2347e9403b17177f44ee4e1112
9 files changed
tree: 171b0a62a8fd9bb12a3468fa3717cc866aa15e36
  1. .clang-format
  2. .clang-tidy
  3. .gitignore
  4. AUTHORS
  5. BUILD.gn
  6. CONTRIBUTING.md
  7. LICENSE
  8. PATENTS
  9. README.md
  10. bin/
  11. boards/
  12. build/
  13. cloud/
  14. docs/
  15. examples/
  16. infra/
  17. lib/
  18. navbar.md
  19. packages/
  20. products/
  21. public/
  22. tests/
  23. third_party/
  24. web/
README.md

Peridot

Peridot is a framework for composed, intelligent and distributed user experiences.

Applications not explicitly designed to interoperate (and possibly implemented in different programming languages) are ephemerally downloaded and dynamically composed to run in a shared context. The framework manages application lifecycle, resources and view hierarchy; and well as context and suggestion infrastructure.

State of Peridot experiences is transparently synchronized across user devices using a distributed offline-first storage system.

Read more