Doxygen Samurai Engine 0.0.1
Doxygen Samurai Engine Documentation
Loading...
Searching...
No Matches
containerManager.h
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4#include <unordered_map>
5
6#include "runtimeContainer.h"
7#include "settings/log.h"
8#include "windowGraphic/gui.h"
10#include <dllLoader/dllLoader.h>
11
12namespace samurai
13{
14 using containerId_t = unsigned int;
15
17 {
18
19 std::unordered_map<containerId_t, samurai::RuntimeContainer> runningContainers;
20
22 samurai::ContainerInformation containerInformation,
23 samurai::LoadedDll& loadedDll, samurai::LogManager& logManager,
24 samurai::samuraiImgui::ImGuiIdsManager& imguiIDsManager, std::string& cmd, size_t memoryPos = 0);
25
27 std::string containerName,
28 samurai::LoadedDll& loadedDll, samurai::LogManager& logManager,
29 samurai::samuraiImgui::ImGuiIdsManager& imguiIDsManager, std::string& cmd, size_t memoryPos = 0);
30
31 void* allocateContainerMemory(samurai::RuntimeContainer &container, samurai::ContainerInformation containerInformation, void *memPos = 0);
32
33 //buffer should have the correct size
35 samurai::ContainerInformation containerInformation, void *buffer);
36
37
38 //deallocates memory, does not call destructors
40
41 void init();
42
43 void update(
44 samurai::LoadedDll &loadedDll,
45 samurai::Window &window,
48
49 void reloadDll(samurai::LoadedDll &loadedDll,
50 samurai::Window &window,
52
53 bool destroyContainer(containerId_t id, samurai::LoadedDll &loadedDll,
54 samurai::LogManager &logManager);
55
56 //same as destroy container but doesn't call user destructors
57 bool forceTerminateContainer(containerId_t id, samurai::LoadedDll &loadedDll,
58 samurai::LogManager &logManager);
59
60 void destroyAllContainers(samurai::LoadedDll &loadedDll,
61 samurai::LogManager &logManager);
62
64
65 //todo move outside
66 void *allocateOSMemory(size_t size, void* baseAdress = 0);
67
68 void deallocateOSMemory(void *baseAdress);
69 };
70
71
72}
unsigned int containerId_t
void destroyAllContainers(samurai::LoadedDll &loadedDll, samurai::LogManager &logManager)
bool destroyContainer(containerId_t id, samurai::LoadedDll &loadedDll, samurai::LogManager &logManager)
bool forceTerminateContainer(containerId_t id, samurai::LoadedDll &loadedDll, samurai::LogManager &logManager)
void * allocateContainerMemory(samurai::RuntimeContainer &container, samurai::ContainerInformation containerInformation, void *memPos=0)
void freeContainerStuff(samurai::RuntimeContainer &container)
void deallocateOSMemory(void *baseAdress)
void allocateContainerMemoryAtBuffer(samurai::RuntimeContainer &container, samurai::ContainerInformation containerInformation, void *buffer)
void update(samurai::LoadedDll &loadedDll, samurai::Window &window, samurai::LogManager &logs, samurai::samuraiImgui::ImGuiIdsManager &imguiIdManager)
containerId_t createContainer(samurai::ContainerInformation containerInformation, samurai::LoadedDll &loadedDll, samurai::LogManager &logManager, samurai::samuraiImgui::ImGuiIdsManager &imguiIDsManager, std::string &cmd, size_t memoryPos=0)
std::unordered_map< containerId_t, samurai::RuntimeContainer > runningContainers
void * allocateOSMemory(size_t size, void *baseAdress=0)
void reloadDll(samurai::LoadedDll &loadedDll, samurai::Window &window, samurai::LogManager &logs)