[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. bin/
  2. boards/
  3. build/
  4. cloud/
  5. docs/
  6. examples/
  7. infra/
  8. lib/
  9. packages/
  10. products/
  11. public/
  12. tests/
  13. third_party/
  14. web/
  15. .clang-format
  16. .clang-tidy
  17. .gitignore
  18. AUTHORS
  19. BUILD.gn
  20. CONTRIBUTING.md
  21. LICENSE
  22. navbar.md
  23. PATENTS
  24. README.md
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