registry.h 926 B

1234567891011121314151617181920212223242526272829303132333435
  1. #pragma once
  2. #include <util/generic/string.h>
  3. #include <util/generic/strbuf.h>
  4. #include "resource.h"
  5. namespace NResource {
  6. TString Compress(const TStringBuf data);
  7. TString Decompress(const TStringBuf data);
  8. class IMatch {
  9. public:
  10. virtual void OnMatch(const TResource& res) = 0;
  11. };
  12. class IStore {
  13. public:
  14. virtual void Store(const TStringBuf key, const TStringBuf data) = 0;
  15. virtual bool FindExact(const TStringBuf key, TString* out) const = 0;
  16. virtual void FindMatch(const TStringBuf subkey, IMatch& cb) const = 0;
  17. virtual size_t Count() const noexcept = 0;
  18. virtual TStringBuf KeyByIndex(size_t idx) const = 0;
  19. virtual ~IStore() {
  20. }
  21. };
  22. IStore* CommonStore();
  23. struct TRegHelper {
  24. inline TRegHelper(const TStringBuf key, const TStringBuf data) {
  25. CommonStore()->Store(key, data);
  26. }
  27. };
  28. }