mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-25 17:10:23 +00:00
36 lines
1.1 KiB
C++
36 lines
1.1 KiB
C++
/*
|
|
* Copyright (c) 2023, Andrew Kaster <akaster@serenityos.org>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <AK/RefPtr.h>
|
|
#include <AK/StringView.h>
|
|
#include <LibCore/Resource.h>
|
|
|
|
namespace Core {
|
|
|
|
class ResourceImplementation {
|
|
public:
|
|
ErrorOr<NonnullRefPtr<Resource>> load_from_uri(StringView);
|
|
Vector<String> child_names(Resource const&);
|
|
String filesystem_path(Resource const&);
|
|
|
|
virtual ~ResourceImplementation() = default;
|
|
|
|
static void install(OwnPtr<ResourceImplementation>);
|
|
static ResourceImplementation& the();
|
|
|
|
protected:
|
|
virtual ErrorOr<NonnullRefPtr<Resource>> load_from_resource_scheme_uri(StringView) = 0;
|
|
virtual Vector<String> child_names_for_resource_scheme(Resource const&) = 0;
|
|
virtual String filesystem_path_for_resource_scheme(String const&) = 0;
|
|
|
|
static NonnullRefPtr<Resource> make_resource(String full_path, NonnullOwnPtr<Core::MappedFile>, time_t modified_time);
|
|
static NonnullRefPtr<Resource> make_resource(String full_path, ByteBuffer, time_t modified_time);
|
|
static NonnullRefPtr<Resource> make_directory_resource(String full_path, time_t modified_time);
|
|
};
|
|
|
|
}
|