webview_data_stream.h 677 B

1234567891011121314151617181920212223242526
  1. // This file is part of Desktop App Toolkit,
  2. // a set of libraries for developing nice desktop applications.
  3. //
  4. // For license and copyright information please follow this link:
  5. // https://github.com/desktop-app/legal/blob/master/LEGAL
  6. //
  7. #pragma once
  8. #include <cinttypes>
  9. #include <string>
  10. namespace Webview {
  11. class DataStream {
  12. public:
  13. virtual ~DataStream() = default;
  14. [[nodiscard]] virtual int handle() = 0;
  15. [[nodiscard]] virtual std::int64_t size() = 0;
  16. [[nodiscard]] virtual std::string mime() = 0;
  17. virtual std::int64_t seek(int origin, std::int64_t position) = 0;
  18. virtual std::int64_t read(void *buffer, std::int64_t requested) = 0;
  19. };
  20. } // namespace Webview