neoGFX
Cross-platform C++ app/game engine
Loading...
Searching...
No Matches
module_resource.hpp
Go to the documentation of this file.
1// module_resource.hpp
2/*
3 neogfx C++ App/Game Engine
4 Copyright (c) 2015, 2020 Leigh Johnston. All Rights Reserved.
5
6 This program is free software: you can redistribute it and / or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
18*/
19
20#pragma once
21
22#include <neogfx/neogfx.hpp>
23#include <neogfx/core/event.hpp>
25
26namespace neogfx
27{
28 class module_resource : public reference_counted<i_resource>
29 {
30 public:
31 define_declared_event(Downloaded, downloaded)
32 define_declared_event(FailedToDownload, failed_to_download)
33 public:
36 public:
37 module_resource(std::string const& aUri, const void* aData, std::size_t aSize);
38 public:
39 bool available() const override;
40 bool downloading() const override;
41 double downloading_progress() const override;
42 bool error() const override;
43 i_string const& error_string() const override;
44 public:
45 i_string const& uri() const override;
46 bool is_empty() const override;
47 const void* cdata() const override;
48 const void* data() const override;
49 void* data() override;
50 std::size_t size() const override;
51 hash_digest_type const& hash() const override;
52 private:
53 string iUri;
54 const void* iData;
55 std::size_t iSize;
56 mutable std::optional<data_type> iHash;
57 };
58}
const void * cdata() const override
bool error() const override
const void * data() const override
double downloading_progress() const override
module_resource(std::string const &aUri, const void *aData, std::size_t aSize)
neolib::vector< uint8_t > data_type
std::size_t size() const override
i_string const & uri() const override
void * data() override
bool downloading() const override
hash_digest_type const & hash() const override
bool available() const override
define_declared_event(Downloaded, downloaded) define_declared_event(FailedToDownload
bool is_empty() const override
i_string const & error_string() const override
#define define_declared_event(name, declName,...)
Definition event.hpp:195