123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- /*
- * Copyright (c) 2024, Tim Flynn <trflynn89@serenityos.org>
- *
- * SPDX-License-Identifier: BSD-2-Clause
- */
- #pragma once
- #include <AK/ByteBuffer.h>
- #include <AK/ByteString.h>
- #include <AK/Variant.h>
- #include <LibIPC/File.h>
- #include <LibIPC/Forward.h>
- namespace Web::HTML {
- enum class AllowMultipleFiles {
- No,
- Yes,
- };
- class SelectedFile {
- public:
- static ErrorOr<SelectedFile> from_file_path(ByteString const& file_path);
- SelectedFile(ByteString name, ByteBuffer contents);
- SelectedFile(ByteString name, IPC::File file);
- ByteString const& name() const { return m_name; }
- auto const& file_or_contents() const { return m_file_or_contents; }
- ByteBuffer take_contents();
- private:
- ByteString m_name;
- Variant<IPC::File, ByteBuffer> m_file_or_contents;
- };
- }
- namespace IPC {
- template<>
- ErrorOr<void> encode(Encoder&, Web::HTML::SelectedFile const&);
- template<>
- ErrorOr<Web::HTML::SelectedFile> decode(Decoder&);
- }
|