Cogs.Core
Extensions
TerrainProvider
Source
StashService.h
1
#pragma once
2
#include "ImageDecoder.h"
3
4
#include "Foundation/Reflection/TypeDatabase.h"
5
#include "Foundation/Platform/Threads.h"
6
#include "Foundation/Memory/MemoryBuffer.h"
7
8
#include <unordered_map>
9
10
namespace
Cogs::Core
11
{
12
class
Context;
13
}
14
15
namespace
Cogs::Core::TerrainProvider
16
{
17
18
struct
Stash
19
{
20
Cogs::Memory::MemoryBuffer
contents;
21
ImageDecoder
decoder;
22
void
* context;
23
};
24
25
class
StashService
26
{
27
public
:
28
StashService
(
Context
* context);
29
~StashService
();
30
31
Stash
* getStash();
32
33
private
:
34
Context
* context =
nullptr
;
35
Cogs::Mutex mutex;
36
std::unordered_map<std::thread::id, std::unique_ptr<Stash>> stashes;
37
38
};
39
40
41
}
42
43
template
<>
inline
Cogs::StringView
getName<Cogs::Core::TerrainProvider::StashService>() {
return
"TerrainProvider::StashService"
; }
Cogs::Core::Context
A Context instance contains all the services, systems and runtime components needed to use Cogs.
Definition:
Context.h:83
Cogs::Core::TerrainProvider::StashService
Definition:
StashService.h:26
Cogs::Memory::MemoryBuffer
Definition:
MemoryBuffer.h:23
Cogs::StringView
Provides a weakly referenced view over the contents of a string.
Definition:
StringView.h:24
Cogs::Core
Contains the Engine, Renderer, resource managers and other systems needed to run Cogs....
Definition:
ComponentFunctions.h:10
Cogs::Core::TerrainProvider::ImageDecoder
Definition:
ImageDecoder.h:10
Cogs::Core::TerrainProvider::Stash
Definition:
StashService.h:19
Generated by
1.9.6