diff --git a/doc/html/_coroutine_scheduler_8hpp.html b/doc/html/_coroutine_scheduler_8hpp.html
index 2a2b315..10c8794 100644
--- a/doc/html/_coroutine_scheduler_8hpp.html
+++ b/doc/html/_coroutine_scheduler_8hpp.html
@@ -5,8 +5,7 @@
-
Simple coroutine scheduler that runs periodic callbacks using SFML time utilities.
@@ -125,7 +124,7 @@ Classes
diff --git a/doc/html/_coroutine_scheduler_8hpp.js b/doc/html/_coroutine_scheduler_8hpp.js
index 5ddb44f..a6ad760 100644
--- a/doc/html/_coroutine_scheduler_8hpp.js
+++ b/doc/html/_coroutine_scheduler_8hpp.js
@@ -1,5 +1,5 @@
var _coroutine_scheduler_8hpp =
[
- [ "mce::CoroutineScheduler", "classmce_1_1_coroutine_scheduler.html", "classmce_1_1_coroutine_scheduler" ],
- [ "mce::CoroutineScheduler::Task", "structmce_1_1_coroutine_scheduler_1_1_task.html", "structmce_1_1_coroutine_scheduler_1_1_task" ]
+ [ "mce::core::CoroutineScheduler", "classmce_1_1core_1_1_coroutine_scheduler.html", "classmce_1_1core_1_1_coroutine_scheduler" ],
+ [ "mce::core::CoroutineScheduler::Task", "structmce_1_1core_1_1_coroutine_scheduler_1_1_task.html", "structmce_1_1core_1_1_coroutine_scheduler_1_1_task" ]
];
\ No newline at end of file
diff --git a/doc/html/_coroutine_scheduler_8hpp_source.html b/doc/html/_coroutine_scheduler_8hpp_source.html
index 0aa8411..8c22908 100644
--- a/doc/html/_coroutine_scheduler_8hpp_source.html
+++ b/doc/html/_coroutine_scheduler_8hpp_source.html
@@ -5,8 +5,7 @@
-
Minecraft Community Edition: Core/CoroutineScheduler.hpp Source File
-
+
Minecraft Community Edition: Minecraft-Community-Edition/Core/CoroutineScheduler.hpp Source File
@@ -100,26 +99,26 @@ $(function(){initNavTree('_coroutine_scheduler_8hpp_source.html','',''); });
6 #include <EASTL/vector.h>
-
+
-
+
-
+
-
-
+
+
-
+
-
+
78 std::mutex tasksMutex;
79 eastl::vector<Task> vecTasks;
@@ -129,21 +128,21 @@ $(function(){initNavTree('_coroutine_scheduler_8hpp_source.html','',''); });
-
CoroutineScheduler()=default
Default constructor.
-
void processTasks()
Process all scheduled tasks.
Definition CoroutineScheduler.cpp:20
-
void addTask(Callback cb)
Add a task to the scheduler.
Definition CoroutineScheduler.cpp:10
-
eastl::function< sf::Time()> Callback
Callback type invoked by scheduled tasks.
Definition CoroutineScheduler.hpp:39
-
Represents a single scheduled task.
Definition CoroutineScheduler.hpp:53
-
sf::Clock clock
Definition CoroutineScheduler.hpp:56
-
Callback callback
Definition CoroutineScheduler.hpp:54
-
sf::Time interval
Definition CoroutineScheduler.hpp:55
+
CoroutineScheduler()=default
Default constructor.
+
eastl::function< sf::Time()> Callback
Callback type invoked by scheduled tasks.
Definition CoroutineScheduler.hpp:39
+
void processTasks()
Process all scheduled tasks.
Definition CoroutineScheduler.cpp:20
+
void addTask(Callback cb)
Add a task to the scheduler.
Definition CoroutineScheduler.cpp:10
+
Represents a single scheduled task.
Definition CoroutineScheduler.hpp:53
+
sf::Time interval
Definition CoroutineScheduler.hpp:55
+
sf::Clock clock
Definition CoroutineScheduler.hpp:56
+
Callback callback
Definition CoroutineScheduler.hpp:54
-
-
-
48 explicit Logger(
QEventBus & qBus, std::string_view name,
bool createStdoutSink =
true );
-
-
50 void addSink(
const eastl::shared_ptr<LoggerSink>& sink);
-
51 void log(LogLevel level, std::string_view message, eastl::optional<std::source_location> location = eastl::nullopt);
-
-
53 template <
typename ... Args>
-
54 void info(std::format_string<Args...> format, Args&&... args) {
-
55 log(LogLevel::INFO, std::format(format, std::forward<Args>(args)...));
-
-
-
58 template <
typename ... Args>
-
59 void warn(std::format_string<Args...> format, Args&&... args) {
-
60 log(LogLevel::WARN, std::format(format, std::forward<Args>(args)...));
-
-
-
63 template <
typename ... Args>
-
64 void error(std::format_string<Args...> format, Args&&... args) {
-
65 log(LogLevel::ERROR, std::format(format, std::forward<Args>(args)...));
-
-
-
68 template <
typename ... Args>
-
69 void debug(std::format_string<Args...> format, Args&&... args) {
-
70 log(LogLevel::DEBUG, std::format(format, std::forward<Args>(args)...));
-
-
-
73 template <
typename ... Args>
-
74 void info_trace(
const std::source_location& location, std::format_string<Args...> format, Args&&... args) {
-
75 log(LogLevel::INFO, std::format(format, std::forward<Args>(args)...), location);
-
-
-
78 template <
typename ... Args>
-
79 void warn_trace(
const std::source_location& location, std::format_string<Args...> format, Args&&... args) {
-
80 log(LogLevel::WARN, std::format(format, std::forward<Args>(args)...), location);
-
-
-
83 template <
typename ... Args>
-
84 void error_trace(
const std::source_location& location, std::format_string<Args...> format, Args&&... args) {
-
85 log(LogLevel::ERROR, std::format(format, std::forward<Args>(args)...), location);
-
-
-
88 template <
typename ... Args>
-
89 void debug_trace(
const std::source_location& location, std::format_string<Args...> format, Args&&... args) {
-
90 log(LogLevel::DEBUG, std::format(format, std::forward<Args>(args)...), location);
-
-
-
-
94 static Logger& getGlobalLogger(
QEventBus & qBus);
-
-
-
-
-
-
-
-
102 static std::string getFormattedSource(
const std::source_location& location);
-
-
104 static std::string GetFormattedTime();
-
105 const size_t MAX_LOG_EVENTS = 10000;
-
-
-
108 eastl::vector<eastl::shared_ptr<LoggerSink>> sinks;
-
-
-
-
+
+
+
38 using core::QEventBus;
+
39 using core::SubscriptionToken;
+
+
+
+
+
+
+
+
+
+
+
+
50 explicit Logger(
QEventBus & qBus, std::string_view name,
bool createStdoutSink =
true );
+
+
52 void addSink(
const eastl::shared_ptr<LoggerSink>& sink);
+
53 void log(LogLevel level, std::string_view message, eastl::optional<std::source_location> location = eastl::nullopt);
+
+
55 template <
typename ... Args>
+
56 void info(std::format_string<Args...> format, Args&&... args) {
+
57 log(LogLevel::INFO, std::format(format, std::forward<Args>(args)...));
+
+
+
60 template <
typename ... Args>
+
61 void warn(std::format_string<Args...> format, Args&&... args) {
+
62 log(LogLevel::WARN, std::format(format, std::forward<Args>(args)...));
+
+
+
65 template <
typename ... Args>
+
66 void error(std::format_string<Args...> format, Args&&... args) {
+
67 log(LogLevel::ERROR, std::format(format, std::forward<Args>(args)...));
+
+
+
70 template <
typename ... Args>
+
71 void debug(std::format_string<Args...> format, Args&&... args) {
+
72 log(LogLevel::DEBUG, std::format(format, std::forward<Args>(args)...));
+
+
+
75 template <
typename ... Args>
+
76 void info_trace(
const std::source_location& location, std::format_string<Args...> format, Args&&... args) {
+
77 log(LogLevel::INFO, std::format(format, std::forward<Args>(args)...), location);
+
+
+
80 template <
typename ... Args>
+
81 void warn_trace(
const std::source_location& location, std::format_string<Args...> format, Args&&... args) {
+
82 log(LogLevel::WARN, std::format(format, std::forward<Args>(args)...), location);
+
+
+
85 template <
typename ... Args>
+
86 void error_trace(
const std::source_location& location, std::format_string<Args...> format, Args&&... args) {
+
87 log(LogLevel::ERROR, std::format(format, std::forward<Args>(args)...), location);
+
+
+
90 template <
typename ... Args>
+
91 void debug_trace(
const std::source_location& location, std::format_string<Args...> format, Args&&... args) {
+
92 log(LogLevel::DEBUG, std::format(format, std::forward<Args>(args)...), location);
+
+
+
+
96 static Logger& getGlobalLogger(
QEventBus & qBus);
+
+
+
+
+
+
+
103 void logCallback(
const event::LoggerOutput& e);
+
104 static std::string getFormattedSource(
const std::source_location& location);
+
+
106 static std::string GetFormattedTime();
+
107 const size_t MAX_LOG_EVENTS = 10000;
+
+
+
110 eastl::vector<eastl::shared_ptr<LoggerSink>> sinks;
+
+
+
+
-
+
-
Definition LoggerSinks.hpp:16
-
Thread-safe event bus.
Definition QEventBus.hpp:58
-
Token object that controls the lifetime of an event subscription.
Definition QEventBus.hpp:27
-
+
Thread-safe event bus.
Definition QEventBus.hpp:58
+
Definition LoggerSinks.hpp:16
+
Token object that controls the lifetime of an event subscription.
Definition QEventBus.hpp:27
2 #include "InputStream.hpp"
-
+
4 namespace mce::io::stream {
-
+
-
+
-
28 virtual size_t read (
void * buffer,
size_t size)
override ;
+
28 virtual size_t read (
void * buffer,
size_t size)
override ;
-
42 size_t readString (
char *& buffer,
size_t & size);
+
42 size_t readString (
char *& buffer,
size_t & size);
-
49 virtual size_t seek (
size_t position)
override ;
+
49 virtual size_t seek (
size_t position)
override ;
-
55 virtual size_t tell ()
override ;
+
55 virtual size_t tell ()
override ;
-
61 virtual size_t getSize ()
override ;
+
61 virtual size_t getSize ()
override ;
67 const char * data =
nullptr ;
@@ -120,20 +119,20 @@ $(function(){initNavTree('_memory_input_stream_8hpp_source.html','',''); });
-
-
-
-
-
-
-
+
+
+
+
+
+
+
Thread-safe event bus.
@@ -128,7 +127,7 @@ Classes
diff --git a/doc/html/_q_event_bus_8hpp.js b/doc/html/_q_event_bus_8hpp.js
index cd86e0e..2950f69 100644
--- a/doc/html/_q_event_bus_8hpp.js
+++ b/doc/html/_q_event_bus_8hpp.js
@@ -1,5 +1,5 @@
var _q_event_bus_8hpp =
[
- [ "mce::SubscriptionToken", "structmce_1_1_subscription_token.html", "structmce_1_1_subscription_token" ],
- [ "mce::QEventBus", "classmce_1_1_q_event_bus.html", "classmce_1_1_q_event_bus" ]
+ [ "mce::core::SubscriptionToken", "structmce_1_1core_1_1_subscription_token.html", "structmce_1_1core_1_1_subscription_token" ],
+ [ "mce::core::QEventBus", "classmce_1_1core_1_1_q_event_bus.html", "classmce_1_1core_1_1_q_event_bus" ]
];
\ No newline at end of file
diff --git a/doc/html/_q_event_bus_8hpp_source.html b/doc/html/_q_event_bus_8hpp_source.html
index 56f818f..f1464b9 100644
--- a/doc/html/_q_event_bus_8hpp_source.html
+++ b/doc/html/_q_event_bus_8hpp_source.html
@@ -5,8 +5,7 @@
-
Minecraft Community Edition: Core/QEventBus.hpp Source File
-
+
Minecraft Community Edition: Minecraft-Community-Edition/Core/QEventBus.hpp Source File
@@ -103,45 +102,45 @@ $(function(){initNavTree('_q_event_bus_8hpp_source.html','',''); });
-
+
-
+
60 QEventBus(
const std::string_view& eventNamespace);
68 template <
typename EventType>
-
69 using Handler = eastl::function<void(
const EventType&)>;
+
69 using Handler = eastl::function<void(
const EventType&)>;
81 template <
typename EventType>
-
+
93 template <
typename EventType>
-
+
105 template <
typename EventType>
-
106 void post (EventType&& event);
+
106 void post (EventType&& event);
-
+
-
+
-
+
133 size_t getQueueSize()
const ;
-
+
142 const std::string_view& getNamespace()
const ;
-
152 void dispatch(
const IEvent & e);
+
152 void dispatch(
const IEvent& e);
155 struct TypeIndexHash {
@@ -178,19 +177,19 @@ $(function(){initNavTree('_q_event_bus_8hpp_source.html','',''); });
216 template <
typename EventType>
-
+
218 std::lock_guard<std::mutex> lock(QEventBus::mutex);
220 auto & handlers = QEventBus::handlers[
typeid (EventType)];
-
222 handlers.emplace_back([handler](
const IEvent & e) {
+
222 handlers.emplace_back([handler](
const IEvent& e) {
223 handler(
static_cast< const EventType&
> (e));
226 auto it = eastl::prev(handlers.end());
227 std::type_index typeIdx = std::type_index(
typeid (EventType));
-
+
230 std::lock_guard<std::mutex> lock(QEventBus::mutex);
231 auto mapIt = QEventBus::handlers.find(typeIdx);
232 if (mapIt != QEventBus::handlers.end()) {
@@ -209,12 +208,12 @@ $(function(){initNavTree('_q_event_bus_8hpp_source.html','',''); });
245 template <
typename EventType>
-
+
247 std::lock_guard<std::mutex> lock(QEventBus::mutex);
250 auto & handlers = QEventBus::handlers[
typeid (EventType)];
-
251 handlers.emplace_back([handler](
const IEvent & e) {
+
251 handlers.emplace_back([handler](
const IEvent& e) {
252 handler(
static_cast< const EventType&
> (e));
@@ -222,7 +221,7 @@ $(function(){initNavTree('_q_event_bus_8hpp_source.html','',''); });
256 template <
typename EventType>
-
+
259 using Decayed = std::decay_t<EventType>;
260 auto ptr = eastl::make_unique<Decayed>(eastl::forward<EventType>(event));
@@ -234,25 +233,24 @@ $(function(){initNavTree('_q_event_bus_8hpp_source.html','',''); });
-
~QEventBus()
Destructor.
Definition QEventBus.cpp:47
-
void stop()
Stop asynchronous processing and join the worker thread.
Definition QEventBus.cpp:37
-
void post(EventType &&event)
Post an event instance to the bus for later processing.
Definition QEventBus.hpp:257
-
void runAsync()
Start asynchronous processing of queued events.
Definition QEventBus.cpp:18
-
void process()
Process and dispatch all currently queued events.
Definition QEventBus.cpp:5
-
eastl::function< void(const EventType &)> Handler
Alias for an event handler function.
Definition QEventBus.hpp:69
-
SubscriptionToken subscribeRAII(Handler< EventType > handler)
Subscribe a handler to EventType and receive a RAII token.
Definition QEventBus.hpp:217
-
void subscribe(Handler< EventType > handler)
Subscribe a handler to EventType without RAII token.
Definition QEventBus.hpp:246
-
-
Token object that controls the lifetime of an event subscription.
Definition QEventBus.hpp:27
-
eastl::function< void()> unsubscribe
Callable invoked to perform the unsubscribe action.
Definition QEventBus.hpp:33
-
~SubscriptionToken()
Destructor.
Definition QEventBus.hpp:40
+
void subscribe(Handler< EventType > handler)
Subscribe a handler to EventType without RAII token.
Definition QEventBus.hpp:246
+
void stop()
Stop asynchronous processing and join the worker thread.
Definition QEventBus.cpp:37
+
void runAsync()
Start asynchronous processing of queued events.
Definition QEventBus.cpp:18
+
void process()
Process and dispatch all currently queued events.
Definition QEventBus.cpp:5
+
void post(EventType &&event)
Post an event instance to the bus for later processing.
Definition QEventBus.hpp:257
+
SubscriptionToken subscribeRAII(Handler< EventType > handler)
Subscribe a handler to EventType and receive a RAII token.
Definition QEventBus.hpp:217
+
eastl::function< void(const EventType &)> Handler
Alias for an event handler function.
Definition QEventBus.hpp:69
+
~QEventBus()
Destructor.
Definition QEventBus.cpp:47
+
Token object that controls the lifetime of an event subscription.
Definition QEventBus.hpp:27
+
eastl::function< void()> unsubscribe
Callable invoked to perform the unsubscribe action.
Definition QEventBus.hpp:33
+
~SubscriptionToken()
Destructor.
Definition QEventBus.hpp:40
High-level Thread wrapper and callable adapters used by the project.
@@ -128,7 +127,7 @@ Classes
diff --git a/doc/html/_thread_8hpp.js b/doc/html/_thread_8hpp.js
index bd0dffa..c0d987d 100644
--- a/doc/html/_thread_8hpp.js
+++ b/doc/html/_thread_8hpp.js
@@ -1,8 +1,8 @@
var _thread_8hpp =
[
- [ "mce::ThreadFunc", "structmce_1_1_thread_func.html", "structmce_1_1_thread_func" ],
- [ "mce::ThreadFunctor< F >", "structmce_1_1_thread_functor.html", "structmce_1_1_thread_functor" ],
- [ "mce::ThreadMemberFunctor< C >", "structmce_1_1_thread_member_functor.html", "structmce_1_1_thread_member_functor" ],
- [ "mce::ThreadMemberFunctorWithArgs< C, Args >", "structmce_1_1_thread_member_functor_with_args.html", "structmce_1_1_thread_member_functor_with_args" ],
- [ "mce::Thread", "classmce_1_1_thread.html", "classmce_1_1_thread" ]
+ [ "mce::core::ThreadFunc", "structmce_1_1core_1_1_thread_func.html", "structmce_1_1core_1_1_thread_func" ],
+ [ "mce::core::ThreadFunctor< F >", "structmce_1_1core_1_1_thread_functor.html", "structmce_1_1core_1_1_thread_functor" ],
+ [ "mce::core::ThreadMemberFunctor< C >", "structmce_1_1core_1_1_thread_member_functor.html", "structmce_1_1core_1_1_thread_member_functor" ],
+ [ "mce::core::ThreadMemberFunctorWithArgs< C, Args >", "structmce_1_1core_1_1_thread_member_functor_with_args.html", "structmce_1_1core_1_1_thread_member_functor_with_args" ],
+ [ "mce::core::Thread", "classmce_1_1core_1_1_thread.html", "classmce_1_1core_1_1_thread" ]
];
\ No newline at end of file
diff --git a/doc/html/_thread_8hpp_source.html b/doc/html/_thread_8hpp_source.html
index bbc64f5..307fe94 100644
--- a/doc/html/_thread_8hpp_source.html
+++ b/doc/html/_thread_8hpp_source.html
@@ -5,8 +5,7 @@
-
Minecraft Community Edition: Core/Thread.hpp Source File
-
+
Minecraft Community Edition: Minecraft-Community-Edition/Core/Thread.hpp Source File
@@ -96,82 +95,82 @@ $(function(){initNavTree('_thread_8hpp_source.html','',''); });
-
-
+
+
-
-
+
+
-
33 virtual void run () = 0;
+
33 virtual void run () = 0;
90 template <
typename C,
typename ... Args>
-
-
+
+
-
103 virtual void run ()
override {
+
103 virtual void run ()
override {
104 call(std::index_sequence_for<Args...>{});
-
+
-
+
-
+
120 template <std::size_t... I>
121 void call(std::index_sequence<I...>) {
-
+
-
+
-
+
-
+
164 template <
typename C,
typename ... Args>
-
165 Thread (
QEventBus & qBus,
void (C::* function)(), C*
object , Args&&... args);
+
165 Thread (
QEventBus & qBus,
void (C::* function)(), C*
object , Args&&... args);
-
+
-
+
-
+
183 friend class ThreadImpl;
@@ -180,71 +179,71 @@ $(function(){initNavTree('_thread_8hpp_source.html','',''); });
-
+
-
+
216 template <
typename C,
typename ...Args>
-
Thread-safe event bus.
Definition QEventBus.hpp:58
-
void launch()
Start execution of the stored callable on a new thread.
Definition Thread.cpp:10
-
void wait()
Block until the thread has finished executing.
Definition Thread.cpp:17
-
Thread(QEventBus &qBus, F function)
Construct a Thread from a generic callable (lambda, functor, function pointer).
Definition Thread.hpp:203
-
~Thread()
Destructor; cleans up stored callable and implementation pointer.
Definition Thread.cpp:5
-
Platform-specific thread implementation.
Definition ThreadImpl.hpp:32
-
Abstract type-erased callable interface used as a thread entry point.
Definition Thread.hpp:22
-
virtual ~ThreadFunc()
Virtual destructor to allow safe deletion via base pointer.
Definition Thread.hpp:26
-
virtual void run()=0
Execute the wrapped callable.
-
Adapter that wraps a generic functor/lambda.
Definition Thread.hpp:41
-
virtual void run() override
Invoke the stored functor.
Definition Thread.hpp:51
-
F functor
The stored functor instance.
Definition Thread.hpp:54
-
ThreadFunctor(F functor)
Construct the adapter with the provided functor.
Definition Thread.hpp:46
-
Adapter that wraps a member function without extra arguments.
Definition Thread.hpp:62
-
ThreadMemberFunctor(void(C::*function)(), C *object)
Construct with member function pointer and target object.
Definition Thread.hpp:68
-
void(C::* functor)()
Pointer to the member function to invoke.
Definition Thread.hpp:79
-
virtual void run() override
Invoke the stored member function on the stored object.
Definition Thread.hpp:76
-
C * object
Pointer to the object instance used when invoking the member function.
Definition Thread.hpp:82
-
Adapter that wraps a member function with arbitrary arguments.
Definition Thread.hpp:91
-
void(C::* functor)(Args...)
Pointer to the member function to invoke.
Definition Thread.hpp:108
-
C * object
Pointer to the object instance used when invoking the member function.
Definition Thread.hpp:111
-
std::tuple< Args... > args
Tuple holding the arguments to forward to the member function.
Definition Thread.hpp:114
-
ThreadMemberFunctorWithArgs(void(C::*function)(Args...), C *object, Args &&... args)
Construct with member function pointer, target object and arguments.
Definition Thread.hpp:98
-
virtual void run() override
Invoke the stored member function forwarding the stored arguments.
Definition Thread.hpp:103
+
Thread-safe event bus.
Definition QEventBus.hpp:58
+
void launch()
Start execution of the stored callable on a new thread.
Definition Thread.cpp:10
+
~Thread()
Destructor; cleans up stored callable and implementation pointer.
Definition Thread.cpp:5
+
Thread(QEventBus &qBus, F function)
Construct a Thread from a generic callable (lambda, functor, function pointer).
Definition Thread.hpp:203
+
void wait()
Block until the thread has finished executing.
Definition Thread.cpp:17
+
Platform-specific thread implementation.
Definition ThreadImpl.hpp:32
+
Abstract type-erased callable interface used as a thread entry point.
Definition Thread.hpp:22
+
virtual ~ThreadFunc()
Virtual destructor to allow safe deletion via base pointer.
Definition Thread.hpp:26
+
virtual void run()=0
Execute the wrapped callable.
+
Adapter that wraps a generic functor/lambda.
Definition Thread.hpp:41
+
F functor
The stored functor instance.
Definition Thread.hpp:54
+
ThreadFunctor(F functor)
Construct the adapter with the provided functor.
Definition Thread.hpp:46
+
virtual void run() override
Invoke the stored functor.
Definition Thread.hpp:51
+
Adapter that wraps a member function without extra arguments.
Definition Thread.hpp:62
+
void(C::* functor)()
Pointer to the member function to invoke.
Definition Thread.hpp:79
+
ThreadMemberFunctor(void(C::*function)(), C *object)
Construct with member function pointer and target object.
Definition Thread.hpp:68
+
virtual void run() override
Invoke the stored member function on the stored object.
Definition Thread.hpp:76
+
C * object
Pointer to the object instance used when invoking the member function.
Definition Thread.hpp:82
+
Adapter that wraps a member function with arbitrary arguments.
Definition Thread.hpp:91
+
virtual void run() override
Invoke the stored member function forwarding the stored arguments.
Definition Thread.hpp:103
+
C * object
Pointer to the object instance used when invoking the member function.
Definition Thread.hpp:111
+
std::tuple< Args... > args
Tuple holding the arguments to forward to the member function.
Definition Thread.hpp:114
+
ThreadMemberFunctorWithArgs(void(C::*function)(Args...), C *object, Args &&... args)
Construct with member function pointer, target object and arguments.
Definition Thread.hpp:98
+
void(C::* functor)(Args...)
Pointer to the member function to invoke.
Definition Thread.hpp:108
-
Platform-specific implementation details for mce::Thread .
+
Platform-specific implementation details for mce::Thread.
More...
-
#include "..\Common\Platform.hpp"
+
#include "..\Platform.hpp"
Go to the source code of this file.
-
Platform-specific implementation details for mce::Thread .
-
Contains the PIMPL-like backing class used by mce::Thread to manage platform thread handles and lifecycle operations.
+
Platform-specific implementation details for mce::Thread.
+
Contains the PIMPL-like backing class used by mce::Thread to manage platform thread handles and lifecycle operations.
@@ -120,7 +119,7 @@ Classes
diff --git a/doc/html/_thread_impl_8hpp.js b/doc/html/_thread_impl_8hpp.js
index c4766f5..4536645 100644
--- a/doc/html/_thread_impl_8hpp.js
+++ b/doc/html/_thread_impl_8hpp.js
@@ -1,4 +1,4 @@
var _thread_impl_8hpp =
[
- [ "mce::ThreadImpl", "classmce_1_1_thread_impl.html", "classmce_1_1_thread_impl" ]
+ [ "mce::core::ThreadImpl", "classmce_1_1core_1_1_thread_impl.html", "classmce_1_1core_1_1_thread_impl" ]
];
\ No newline at end of file
diff --git a/doc/html/_thread_impl_8hpp_source.html b/doc/html/_thread_impl_8hpp_source.html
index 03ad163..1f63070 100644
--- a/doc/html/_thread_impl_8hpp_source.html
+++ b/doc/html/_thread_impl_8hpp_source.html
@@ -5,8 +5,7 @@
-
Minecraft Community Edition: Core/ThreadImpl.hpp Source File
-
+
Minecraft Community Edition: Minecraft-Community-Edition/Core/ThreadImpl.hpp Source File
@@ -93,27 +92,27 @@ $(function(){initNavTree('_thread_impl_8hpp_source.html','',''); });
Go to the documentation of this file.
-
2 #include "..\Common\Platform.hpp"
+
2 #include "..\Platform.hpp"
3 #if defined(MCE_PLATFORM_LINUX) || defined(MCE_PLATFORM_MACOS)
-
-
+
+
-
+
-
+
43 #ifdef MCE_PLATFORM_WINDOWS
-
+
-
+
-
+
73 bool isRunning()
const ;
@@ -133,17 +132,17 @@ $(function(){initNavTree('_thread_impl_8hpp_source.html','',''); });
-
Lightweight high-level thread wrapper.
Definition Thread.hpp:134
-
void wait()
Block until the associated thread exits.
-
ThreadImpl(Thread *owner)
Construct a ThreadImpl bound to its owner.
-
void terminate()
Request termination of the associated thread.
+
Lightweight high-level thread wrapper.
Definition Thread.hpp:134
+
void terminate()
Request termination of the associated thread.
+
void wait()
Block until the associated thread exits.
+
ThreadImpl(Thread *owner)
Construct a ThreadImpl bound to its owner.
-
Manages lifecycle and bookkeeping for mce::Thread instances.
+
Manages lifecycle and bookkeeping for mce::Thread instances.
More...
#include "Thread.hpp "
#include <EASTL/unique_ptr.h>
@@ -105,12 +104,12 @@ $(function(){initNavTree('_thread_manager_8hpp.html','',''); });
-
Manages lifecycle and bookkeeping for mce::Thread instances.
+
Manages lifecycle and bookkeeping for mce::Thread instances.
ThreadManager provides thread creation helpers, launching, waiting and statistics. It stores owned Thread instances and a map of Thread -> ThreadInfo for monitoring start/end times and finished state.
@@ -125,7 +124,7 @@ Classes
diff --git a/doc/html/_thread_manager_8hpp.js b/doc/html/_thread_manager_8hpp.js
index e689a9b..4de51e6 100644
--- a/doc/html/_thread_manager_8hpp.js
+++ b/doc/html/_thread_manager_8hpp.js
@@ -1,5 +1,5 @@
var _thread_manager_8hpp =
[
- [ "mce::ThreadManager", "classmce_1_1_thread_manager.html", "classmce_1_1_thread_manager" ],
- [ "mce::ThreadManager::ThreadInfo", "structmce_1_1_thread_manager_1_1_thread_info.html", "structmce_1_1_thread_manager_1_1_thread_info" ]
+ [ "mce::core::ThreadManager", "classmce_1_1core_1_1_thread_manager.html", "classmce_1_1core_1_1_thread_manager" ],
+ [ "mce::core::ThreadManager::ThreadInfo", "structmce_1_1core_1_1_thread_manager_1_1_thread_info.html", "structmce_1_1core_1_1_thread_manager_1_1_thread_info" ]
];
\ No newline at end of file
diff --git a/doc/html/_thread_manager_8hpp_source.html b/doc/html/_thread_manager_8hpp_source.html
index 6fb43b5..8982430 100644
--- a/doc/html/_thread_manager_8hpp_source.html
+++ b/doc/html/_thread_manager_8hpp_source.html
@@ -5,8 +5,7 @@
-
Minecraft Community Edition: Core/ThreadManager.hpp Source File
-
+
Minecraft Community Edition: Minecraft-Community-Edition/Core/ThreadManager.hpp Source File
@@ -100,71 +99,71 @@ $(function(){initNavTree('_thread_manager_8hpp_source.html','',''); });
-
+
-
+
-
-
-
-
33 std::chrono::steady_clock::time_point
startTime , endTime;
-
+
+
+
+
33 std::chrono::steady_clock::time_point
startTime , endTime;
+
-
+
-
+
-
+
-
+
-
+
-
92 void launch (
const eastl::string& name);
+
92 void launch (
const eastl::string& name);
-
+
-
+
-
+
-
+
-
+
132 void onThreadFinished(
const event::ThreadFinished& e);
139 void cleanupFinishedUnlocked();
142 mutable std::mutex mutex;
144 eastl::unordered_map<Thread*, ThreadInfo> threads;
146 eastl::vector<eastl::unique_ptr<Thread>> threadStorage;
-
+
-
+
152 auto thread = eastl::make_unique<Thread>(qBus, [
this , func, name]() {
-
+
153 qBus.post(event::ThreadStarted{
nullptr , name });
-
157 Thread * rawThread = thread.get();
+
157 Thread * rawThread = thread.get();
159 std::lock_guard<std::mutex> lock(mutex);
-
-
161 ti.
startTime = std::chrono::steady_clock::now();
-
-
+
+
161 ti.
startTime = std::chrono::steady_clock::now();
+
+
-
+
166 threads.emplace(rawThread, ti);
168 threadStorage.push_back(eastl::move(thread));
@@ -173,18 +172,18 @@ $(function(){initNavTree('_thread_manager_8hpp_source.html','',''); });
-
-
+
+
173 qBus.post(event::ThreadStarted{
nullptr , name });
174 auto thread = eastl::make_unique<Thread>(
-
180 Thread * rawThread = thread.get();
+
180 Thread * rawThread = thread.get();
182 std::lock_guard<std::mutex> lock(mutex);
-
+
186 std::chrono::steady_clock::now(),
@@ -199,30 +198,28 @@ $(function(){initNavTree('_thread_manager_8hpp_source.html','',''); });
High-level Thread wrapper and callable adapters used by the project.
-
Thread-safe event bus.
Definition QEventBus.hpp:58
-
Lightweight high-level thread wrapper.
Definition Thread.hpp:134
-
void printStats()
Print statistics (e.g. runtime durations) for managed threads.
Definition ThreadManager.cpp:52
-
~ThreadManager()
Destructor cleans up managed threads and subscriptions.
Definition ThreadManager.cpp:14
-
Thread * createThread(const eastl::string &name, F func)
Create (and store) a Thread from a generic callable.
Definition ThreadManager.hpp:151
-
size_t activeCount() const
Count of currently active (non-finished) threads.
Definition ThreadManager.cpp:62
-
ThreadManager(QEventBus &qBus)
Construct a ThreadManager bound to a QEventBus.
Definition ThreadManager.cpp:5
-
void cleanupFinished()
Remove and cleanup finished threads from internal storage.
Definition ThreadManager.cpp:47
-
void waitAll()
Block until all managed threads have finished executing.
Definition ThreadManager.cpp:39
-
void launch(Thread *th)
Launch a previously created Thread instance.
Definition ThreadManager.cpp:17
-
Metadata stored per managed thread.
Definition ThreadManager.hpp:27
-
bool finished
True when the thread has finished execution.
Definition ThreadManager.hpp:35
-
Thread * thread
Non-owning pointer to the tracked Thread.
Definition ThreadManager.hpp:29
-
std::chrono::steady_clock::time_point startTime
Time point when the thread was started.
Definition ThreadManager.hpp:33
-
eastl::string name
Human readable thread name.
Definition ThreadManager.hpp:31
-
-
+
Thread-safe event bus.
Definition QEventBus.hpp:58
+
Lightweight high-level thread wrapper.
Definition Thread.hpp:134
+
Thread * createThread(const eastl::string &name, F func)
Create (and store) a Thread from a generic callable.
Definition ThreadManager.hpp:151
+
ThreadManager(QEventBus &qBus)
Construct a ThreadManager bound to a QEventBus.
Definition ThreadManager.cpp:5
+
~ThreadManager()
Destructor cleans up managed threads and subscriptions.
Definition ThreadManager.cpp:14
+
void waitAll()
Block until all managed threads have finished executing.
Definition ThreadManager.cpp:39
+
void launch(Thread *th)
Launch a previously created Thread instance.
Definition ThreadManager.cpp:17
+
size_t activeCount() const
Count of currently active (non-finished) threads.
Definition ThreadManager.cpp:62
+
void printStats()
Print statistics (e.g. runtime durations) for managed threads.
Definition ThreadManager.cpp:52
+
void cleanupFinished()
Remove and cleanup finished threads from internal storage.
Definition ThreadManager.cpp:47
+
Metadata stored per managed thread.
Definition ThreadManager.hpp:27
+
bool finished
True when the thread has finished execution.
Definition ThreadManager.hpp:35
+
std::chrono::steady_clock::time_point startTime
Time point when the thread was started.
Definition ThreadManager.hpp:33
+
eastl::string name
Human readable thread name.
Definition ThreadManager.hpp:31
+
Thread * thread
Non-owning pointer to the tracked Thread.
Definition ThreadManager.hpp:29
Here are the classes, structs, unions and interfaces with brief descriptions:
-
[detail level 1 2 3 ]
+[detail level 1 2 3 4 ]
diff --git a/doc/html/annotated_dup.js b/doc/html/annotated_dup.js
index 2377212..70142f9 100644
--- a/doc/html/annotated_dup.js
+++ b/doc/html/annotated_dup.js
@@ -1,37 +1,44 @@
var annotated_dup =
[
[ "mce", null, [
- [ "event", null, [
- [ "LoggerOutput", "structmce_1_1event_1_1_logger_output.html", null ],
- [ "ThreadFinished", "structmce_1_1event_1_1_thread_finished.html", null ],
- [ "ThreadStarted", "structmce_1_1event_1_1_thread_started.html", null ]
+ [ "core", null, [
+ [ "CoroutineScheduler", "classmce_1_1core_1_1_coroutine_scheduler.html", "classmce_1_1core_1_1_coroutine_scheduler" ],
+ [ "FunctionContainer", "classmce_1_1core_1_1_function_container.html", "classmce_1_1core_1_1_function_container" ],
+ [ "SubscriptionToken", "structmce_1_1core_1_1_subscription_token.html", "structmce_1_1core_1_1_subscription_token" ],
+ [ "QEventBus", "classmce_1_1core_1_1_q_event_bus.html", "classmce_1_1core_1_1_q_event_bus" ],
+ [ "ThreadFunc", "structmce_1_1core_1_1_thread_func.html", "structmce_1_1core_1_1_thread_func" ],
+ [ "ThreadFunctor", "structmce_1_1core_1_1_thread_functor.html", "structmce_1_1core_1_1_thread_functor" ],
+ [ "ThreadMemberFunctor", "structmce_1_1core_1_1_thread_member_functor.html", "structmce_1_1core_1_1_thread_member_functor" ],
+ [ "ThreadMemberFunctorWithArgs", "structmce_1_1core_1_1_thread_member_functor_with_args.html", "structmce_1_1core_1_1_thread_member_functor_with_args" ],
+ [ "Thread", "classmce_1_1core_1_1_thread.html", "classmce_1_1core_1_1_thread" ],
+ [ "ThreadImpl", "classmce_1_1core_1_1_thread_impl.html", "classmce_1_1core_1_1_thread_impl" ],
+ [ "ThreadManager", "classmce_1_1core_1_1_thread_manager.html", "classmce_1_1core_1_1_thread_manager" ]
] ],
- [ "CoroutineScheduler", "classmce_1_1_coroutine_scheduler.html", "classmce_1_1_coroutine_scheduler" ],
- [ "FunctionContainer", "classmce_1_1_function_container.html", "classmce_1_1_function_container" ],
- [ "IEvent", "structmce_1_1_i_event.html", null ],
- [ "SubscriptionToken", "structmce_1_1_subscription_token.html", "structmce_1_1_subscription_token" ],
- [ "QEventBus", "classmce_1_1_q_event_bus.html", "classmce_1_1_q_event_bus" ],
- [ "ThreadFunc", "structmce_1_1_thread_func.html", "structmce_1_1_thread_func" ],
- [ "ThreadFunctor", "structmce_1_1_thread_functor.html", "structmce_1_1_thread_functor" ],
- [ "ThreadMemberFunctor", "structmce_1_1_thread_member_functor.html", "structmce_1_1_thread_member_functor" ],
- [ "ThreadMemberFunctorWithArgs", "structmce_1_1_thread_member_functor_with_args.html", "structmce_1_1_thread_member_functor_with_args" ],
- [ "Thread", "classmce_1_1_thread.html", "classmce_1_1_thread" ],
- [ "ThreadImpl", "classmce_1_1_thread_impl.html", "classmce_1_1_thread_impl" ],
- [ "ThreadManager", "classmce_1_1_thread_manager.html", "classmce_1_1_thread_manager" ],
- [ "GraphicsContext", "classmce_1_1_graphics_context.html", null ],
- [ "Renderer", "classmce_1_1_renderer.html", null ],
- [ "Logger", "classmce_1_1_logger.html", null ],
- [ "LoggerSink", "classmce_1_1_logger_sink.html", null ],
- [ "StdoutSink", "classmce_1_1_stdout_sink.html", null ],
- [ "FileSink", "classmce_1_1_file_sink.html", null ],
- [ "VirtualFileSystem", "classmce_1_1_virtual_file_system.html", "classmce_1_1_virtual_file_system" ],
- [ "GLGraphicsContext", "classmce_1_1_g_l_graphics_context.html", null ],
- [ "GLRenderer", "classmce_1_1_g_l_renderer.html", null ],
- [ "FileInputStream", "classmce_1_1_file_input_stream.html", "classmce_1_1_file_input_stream" ],
- [ "FileOutputStream", "classmce_1_1_file_output_stream.html", "classmce_1_1_file_output_stream" ],
- [ "InputStream", "classmce_1_1_input_stream.html", "classmce_1_1_input_stream" ],
- [ "MemoryInputStream", "classmce_1_1_memory_input_stream.html", "classmce_1_1_memory_input_stream" ],
- [ "OutputStream", "classmce_1_1_output_stream.html", "classmce_1_1_output_stream" ]
- ] ],
- [ "ExampleClass", "class_example_class.html", "class_example_class" ]
+ [ "gfx", null, [
+ [ "gl", null, [
+ [ "GLGraphicsContext", "classmce_1_1gfx_1_1gl_1_1_g_l_graphics_context.html", null ],
+ [ "GLRenderer", "classmce_1_1gfx_1_1gl_1_1_g_l_renderer.html", null ]
+ ] ],
+ [ "GraphicsContext", "classmce_1_1gfx_1_1_graphics_context.html", null ],
+ [ "Renderer", "classmce_1_1gfx_1_1_renderer.html", null ]
+ ] ],
+ [ "io", null, [
+ [ "stream", null, [
+ [ "FileInputStream", "classmce_1_1io_1_1stream_1_1_file_input_stream.html", "classmce_1_1io_1_1stream_1_1_file_input_stream" ],
+ [ "FileOutputStream", "classmce_1_1io_1_1stream_1_1_file_output_stream.html", "classmce_1_1io_1_1stream_1_1_file_output_stream" ],
+ [ "InputStream", "classmce_1_1io_1_1stream_1_1_input_stream.html", "classmce_1_1io_1_1stream_1_1_input_stream" ],
+ [ "MemoryInputStream", "classmce_1_1io_1_1stream_1_1_memory_input_stream.html", "classmce_1_1io_1_1stream_1_1_memory_input_stream" ],
+ [ "OutputStream", "classmce_1_1io_1_1stream_1_1_output_stream.html", "classmce_1_1io_1_1stream_1_1_output_stream" ]
+ ] ],
+ [ "Logger", "classmce_1_1io_1_1_logger.html", null ],
+ [ "LoggerSink", "classmce_1_1io_1_1_logger_sink.html", null ],
+ [ "StdoutSink", "classmce_1_1io_1_1_stdout_sink.html", null ],
+ [ "FileSink", "classmce_1_1io_1_1_file_sink.html", null ],
+ [ "VirtualFileSystem", "classmce_1_1io_1_1_virtual_file_system.html", "classmce_1_1io_1_1_virtual_file_system" ],
+ [ "QEventBus", "classmce_1_1io_1_1_q_event_bus.html", "classmce_1_1io_1_1_q_event_bus" ],
+ [ "SubscriptionToken", "structmce_1_1io_1_1_subscription_token.html", "structmce_1_1io_1_1_subscription_token" ],
+ [ "FileOutputStream", "classmce_1_1io_1_1_file_output_stream.html", "classmce_1_1io_1_1_file_output_stream" ],
+ [ "FileInputStream", "classmce_1_1io_1_1_file_input_stream.html", "classmce_1_1io_1_1_file_input_stream" ]
+ ] ]
+ ] ]
];
\ No newline at end of file
diff --git a/doc/html/classes.html b/doc/html/classes.html
index a309bbe..ba34800 100644
--- a/doc/html/classes.html
+++ b/doc/html/classes.html
@@ -6,7 +6,6 @@
Minecraft Community Edition: Class Index
-
@@ -92,47 +91,44 @@ $(function(){initNavTree('classes.html','',''); });
diff --git a/doc/html/classmce_1_1core_1_1_coroutine_scheduler-members.html b/doc/html/classmce_1_1core_1_1_coroutine_scheduler-members.html
new file mode 100644
index 0000000..abaac3d
--- /dev/null
+++ b/doc/html/classmce_1_1core_1_1_coroutine_scheduler-members.html
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
This is the complete list of members for mce::core::CoroutineScheduler , including all inherited members.
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1core_1_1_coroutine_scheduler.html b/doc/html/classmce_1_1core_1_1_coroutine_scheduler.html
new file mode 100644
index 0000000..065de68
--- /dev/null
+++ b/doc/html/classmce_1_1core_1_1_coroutine_scheduler.html
@@ -0,0 +1,214 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: mce::core::CoroutineScheduler Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
Coroutine scheduler that manages periodic tasks.
+ More...
+
+
#include <CoroutineScheduler.hpp >
+
+
+struct Task
+ Represents a single scheduled task. More...
+
+
+using Callback = eastl::function<sf::Time()>
+ Callback type invoked by scheduled tasks.
+
+
+
+ CoroutineScheduler ()=default
+ Default constructor.
+void addTask (Callback cb)
+ Add a task to the scheduler.
+void processTasks ()
+ Process all scheduled tasks.
+
+
+
Coroutine scheduler that manages periodic tasks.
+
The scheduler stores tasks that each have their own clock and interval. Each task's callback should return an sf::Time representing the time to wait until the next invocation. When a task's clock has elapsed at least its interval the callback is invoked and the returned sf::Time is used as the new interval.
+
example usage:
+
addTask([]() -> sf::Time {
+
return sf::seconds(1);
+
}
+
+
+
◆ Callback
+
+
+
+
+
Callback type invoked by scheduled tasks.
+
Returns An sf::Time that indicates how long to wait until the next invocation of this callback.
+
+
+
+
+
+
◆ addTask()
+
+
+
+
+
+ void mce::core::CoroutineScheduler::addTask
+ (
+ Callback cb )
+
+
+
+
+
+
Add a task to the scheduler.
+
Parameters
+
+ cb The callback to schedule. The callback is invoked immediately to obtain the initial interval.
+
+
+
+
The callback should return an sf::Time specifying how long to wait until the next invocation. The task's clock is restarted when added.
+
+
+
+
+
◆ processTasks()
+
+
+
+
+
+ void mce::core::CoroutineScheduler::processTasks
+ (
+ )
+
+
+
+
+
+
Process all scheduled tasks.
+
This should be called periodically (for example once per frame). For each task if its clock has elapsed at least its interval, the task's callback is invoked, the returned sf::Time is used as the new interval, and the task clock is restarted.
+
+
+
+
The documentation for this class was generated from the following files:
+Minecraft-Community-Edition/Core/CoroutineScheduler.hpp
+Minecraft-Community-Edition/Core/CoroutineScheduler.cpp
+
+
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1core_1_1_coroutine_scheduler.js b/doc/html/classmce_1_1core_1_1_coroutine_scheduler.js
new file mode 100644
index 0000000..8a062ec
--- /dev/null
+++ b/doc/html/classmce_1_1core_1_1_coroutine_scheduler.js
@@ -0,0 +1,8 @@
+var classmce_1_1core_1_1_coroutine_scheduler =
+[
+ [ "Task", "structmce_1_1core_1_1_coroutine_scheduler_1_1_task.html", "structmce_1_1core_1_1_coroutine_scheduler_1_1_task" ],
+ [ "Callback", "classmce_1_1core_1_1_coroutine_scheduler.html#a8f98ed5e4a27a264740912dc67d35cc5", null ],
+ [ "CoroutineScheduler", "classmce_1_1core_1_1_coroutine_scheduler.html#a8bc21d98af57f73c6e498bf87cdb2c2b", null ],
+ [ "addTask", "classmce_1_1core_1_1_coroutine_scheduler.html#aa8c42b9cde4415eb197d1578bcdb2f58", null ],
+ [ "processTasks", "classmce_1_1core_1_1_coroutine_scheduler.html#a9cdd8c11bd536150bbe362f39e47da44", null ]
+];
\ No newline at end of file
diff --git a/doc/html/classmce_1_1core_1_1_function_container-members.html b/doc/html/classmce_1_1core_1_1_function_container-members.html
new file mode 100644
index 0000000..2cf8f39
--- /dev/null
+++ b/doc/html/classmce_1_1core_1_1_function_container-members.html
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
This is the complete list of members for mce::core::FunctionContainer , including all inherited members.
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1core_1_1_function_container.html b/doc/html/classmce_1_1core_1_1_function_container.html
new file mode 100644
index 0000000..ba3c45b
--- /dev/null
+++ b/doc/html/classmce_1_1core_1_1_function_container.html
@@ -0,0 +1,398 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: mce::core::FunctionContainer Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
Container for storing and invoking named functions.
+ More...
+
+
#include <FunctionContainer.hpp >
+
+
+
+ FunctionContainer ()=default
+ Default constructor.
+ FunctionContainer (QEventBus &qBus, std::initializer_list< std::pair< eastl::string, eastl::any > > initlist)
+ Construct the container with an initializer list of name/value pairs.
+template<typename Functor>
+void addFunction (const eastl::string &name, Functor functor)
+ Add a function to the container.
+template<typename Return, typename... Arguments>
+Return callFunction (const eastl::string &name, Arguments &&... args)
+ Call a stored function by name with the provided arguments.
+bool findFunction (const eastl::string &name)
+ Check whether a function with the given name exists in the container.
+template<typename Return, typename... Arguments>
+eastl::function< Return(Arguments...)> operator[] (const eastl::string &name)
+ Retrieve a stored function as an eastl::function via operator[].
+template<typename Return, typename... Arguments>
+eastl::function< Return(Arguments...)> getFunction (const eastl::string &name)
+ Retrieve a stored function as an eastl::function.
+
+
+
Container for storing and invoking named functions.
+
This class allows storing callables (wrapped as eastl::any) associated with string keys. Functions can be retrieved, cast to the expected signature, and invoked. The API supports adding functions, calling them by name, checking for existence, and retrieving a stored function as an eastl::function object.
+
A usage example: FunctionContainer fc = { { "foo", eastl::function<int(int)>([](int value) -> int{ return value + 1; }) } }; if(fc.findFunction("foo") fc.callFunction<int, int>("foo", 1);
+
+
+
◆ FunctionContainer()
+
+
+
+
+
+ mce::core::FunctionContainer::FunctionContainer
+ (
+ QEventBus & qBus ,
+
+
+
+
+ std::initializer_list< std::pair< eastl::string, eastl::any > > initlist )
+
+
+
+
+
Construct the container with an initializer list of name/value pairs.
+
The initializer list should contain pairs of function name and eastl::any containing the callable.
+
Parameters
+
+ initlist Initializer list of pairs (name, callable-as-eastl::any).
+
+
+
+
+
+
+
+
+
◆ addFunction()
+
+
+
+
+template<typename Functor>
+
+
+
+
+
+ void mce::core::FunctionContainer::addFunction
+ (
+ const eastl::string & name ,
+
+
+
+
+ Functor functor )
+
+
+
+
+inline
+
+
+
+
+
Add a function to the container.
+
Add a function implementation.
+
The callable will be stored in the internal map under the provided name. The callable is stored as an eastl::any and should be retrievable later by using the same signature when casting.
+
Template Parameters
+
+ Functor Type of the callable being stored.
+
+
+
+
Parameters
+
+ name The name under which the function will be stored.
+ functor The callable to store.
+
+
+
+
See addFunction documentation above.
+
+
+
+
+
◆ callFunction()
+
+
+
+
+template<typename Return, typename ... Arguments>
+
+
+
+
+
+ Return mce::core::FunctionContainer::callFunction
+ (
+ const eastl::string & name ,
+
+
+
+
+ Arguments &&... args )
+
+
+
+
+inline
+
+
+
+
+
Call a stored function by name with the provided arguments.
+
Call a stored function implementation.
+
The template parameters specify the expected return type and argument types of the stored function. If the named function exists it will be cast to eastl::function<Return(Arguments...)> and invoked. If the function is not found an error is logged via MCE_ERROR and behavior is undefined for the returned value.
+
Template Parameters
+
+ Return The expected return type of the function.
+ Arguments The expected argument types of the function.
+
+
+
+
Parameters
+
+ name The name of the function to call.
+ args Arguments to forward to the function.
+
+
+
+
Returns Return The value returned by the invoked function.
+
See callFunction documentation above.
+
+
+
+
+
◆ findFunction()
+
+
+
+
+
+ bool mce::core::FunctionContainer::findFunction
+ (
+ const eastl::string & name )
+
+
+
+
+
+
Check whether a function with the given name exists in the container.
+
Parameters
+
+ name The name to check for.
+
+
+
+
Returns true if a function with the given name exists, false otherwise.
+
+
+
+
+
◆ getFunction()
+
+
+
+
+template<typename Return, typename ... Arguments>
+
+
+
+
+
+ eastl::function< Return(Arguments...)> mce::core::FunctionContainer::getFunction
+ (
+ const eastl::string & name )
+
+
+
+
+
+inline
+
+
+
+
+
Retrieve a stored function as an eastl::function.
+
getFunction implementation to retrieve stored function.
+
Same behavior as operator[] but provided with an explicit named method.
+
Template Parameters
+
+ Return The return type of the function.
+ Arguments The argument types of the function.
+
+
+
+
Parameters
+
+ name The name of the stored function.
+
+
+
+
Returns eastl::function<Return(Arguments...)> The callable if found; a null function otherwise.
+
See getFunction documentation above.
+
+
+
+
+
◆ operator[]()
+
+
+
+
+template<typename Return, typename ... Arguments>
+
+
+
+
+
+ eastl::function< Return(Arguments...)> mce::core::FunctionContainer::operator[]
+ (
+ const eastl::string & name )
+
+
+
+
+
+inline
+
+
+
+
+
Retrieve a stored function as an eastl::function via operator[].
+
operator[] implementation to retrieve stored function.
+
The template specifies the expected signature of the function stored under the given name. If no function exists an error is logged and a null function is returned.
+
Template Parameters
+
+ Return The return type of the function.
+ Arguments The argument types of the function.
+
+
+
+
Parameters
+
+ name The name of the stored function.
+
+
+
+
Returns eastl::function<Return(Arguments...)> The callable if found; a null function otherwise.
+
See operator[] documentation above.
+
+
+
+
The documentation for this class was generated from the following files:
+Minecraft-Community-Edition/Core/FunctionContainer.hpp
+Minecraft-Community-Edition/Core/FunctionContainer.cpp
+
+
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1core_1_1_function_container.js b/doc/html/classmce_1_1core_1_1_function_container.js
new file mode 100644
index 0000000..644e884
--- /dev/null
+++ b/doc/html/classmce_1_1core_1_1_function_container.js
@@ -0,0 +1,10 @@
+var classmce_1_1core_1_1_function_container =
+[
+ [ "FunctionContainer", "classmce_1_1core_1_1_function_container.html#aef906ee697bd4d7e3639598adb0d8635", null ],
+ [ "FunctionContainer", "classmce_1_1core_1_1_function_container.html#a5fac8fe19271b60952943982fe930a9d", null ],
+ [ "addFunction", "classmce_1_1core_1_1_function_container.html#ae889babe0e927ba4323965bedefe9ff1", null ],
+ [ "callFunction", "classmce_1_1core_1_1_function_container.html#ae1f41473c4f0de54d1020f2662127b75", null ],
+ [ "findFunction", "classmce_1_1core_1_1_function_container.html#a04f44fc8a1554d8b9121da1f0adfcfed", null ],
+ [ "getFunction", "classmce_1_1core_1_1_function_container.html#a0fab8d9ee7264fe77c33273078c04d8c", null ],
+ [ "operator[]", "classmce_1_1core_1_1_function_container.html#a256606382db9a72b39dec3a1c0f22d99", null ]
+];
\ No newline at end of file
diff --git a/doc/html/classmce_1_1core_1_1_q_event_bus-members.html b/doc/html/classmce_1_1core_1_1_q_event_bus-members.html
new file mode 100644
index 0000000..f60efef
--- /dev/null
+++ b/doc/html/classmce_1_1core_1_1_q_event_bus-members.html
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
This is the complete list of members for mce::core::QEventBus , including all inherited members.
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1core_1_1_q_event_bus.html b/doc/html/classmce_1_1core_1_1_q_event_bus.html
new file mode 100644
index 0000000..06ba426
--- /dev/null
+++ b/doc/html/classmce_1_1core_1_1_q_event_bus.html
@@ -0,0 +1,394 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: mce::core::QEventBus Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
Thread-safe event bus.
+ More...
+
+
#include <QEventBus.hpp >
+
+
+template<typename EventType>
+using Handler = eastl::function<void(const EventType&)>
+ Alias for an event handler function.
+
+
+
+ QEventBus (const std::string_view &eventNamespace)
+template<typename EventType>
+SubscriptionToken subscribeRAII (Handler < EventType > handler)
+ Subscribe a handler to EventType and receive a RAII token.
+template<typename EventType>
+void subscribe (Handler < EventType > handler)
+ Subscribe a handler to EventType without RAII token.
+template<typename EventType>
+void post (EventType &&event)
+ Post an event instance to the bus for later processing.
+void process ()
+ Process and dispatch all currently queued events.
+void runAsync ()
+ Start asynchronous processing of queued events.
+void stop ()
+ Stop asynchronous processing and join the worker thread.
+
+size_t getQueueSize () const
+ ~QEventBus ()
+ Destructor.
+
+const std::string_view & getNamespace () const
+
+
+
Thread-safe event bus.
+
QEventBus allows subscribing handlers to event types, posting events to a queue, and dispatching queued events to all registered handlers. It supports both synchronous processing via process() and asynchronous processing via runAsync() /stop().
+
Handlers are stored per event type (std::type_index of the concrete event) and receive events by const-reference to the concrete event type.
+
Note All public subscribe/post/process operations are designed to be thread-safe, but handlers themselves are invoked on the processing thread/context and must be safe to execute there.
+
+
+
◆ Handler
+
+
+
+
+template<typename EventType>
+
+
+
+
Alias for an event handler function.
+
Template Parameters
+
+ EventType Concrete event type handled by the function.
+
+
+
+
The handler receives a const reference to the event instance.
+
+
+
+
+
+
◆ ~QEventBus()
+
+
+
+
+
+ mce::core::QEventBus::~QEventBus
+ (
+ )
+
+
+
+
+
+
Destructor.
+
Ensures asynchronous processing is stopped and resources are cleaned up. Any remaining queued events will be destroyed.
+
+
+
+
+
+
◆ post()
+
+
+
+
+template<typename EventType>
+
+
+
+
+
+ void mce::core::QEventBus::post
+ (
+ EventType && event )
+
+
+
+
+
+inline
+
+
+
+
+
Post an event instance to the bus for later processing.
+
Template Parameters
+
+ EventType The concrete event type being posted.
+
+
+
+
Parameters
+
+ event The event instance to enqueue (moved or copied as needed).
+
+
+
+
The event is stored as a heap-allocated IEvent-derived instance and will be dispatched during process() or by the asynchronous thread if runAsync() is active.
+
+
+
+
+
◆ process()
+
+
+
+
+
+ void mce::core::QEventBus::process
+ (
+ )
+
+
+
+
+
+
Process and dispatch all currently queued events.
+
This method will dequeue all pending events and invoke their registered handlers synchronously in the caller's thread.
+
+
+
+
+
◆ runAsync()
+
+
+
+
+
+ void mce::core::QEventBus::runAsync
+ (
+ )
+
+
+
+
+
+
Start asynchronous processing of queued events.
+
This creates a background thread that waits for posted events and calls dispatch on them as they arrive.
+
+
+
+
+
◆ stop()
+
+
+
+
+
+ void mce::core::QEventBus::stop
+ (
+ )
+
+
+
+
+
+
Stop asynchronous processing and join the worker thread.
+
Blocks until the background processing thread has exited. After stop() returns, it is safe to destroy the QEventBus or call runAsync() again.
+
+
+
+
+
◆ subscribe()
+
+
+
+
+template<typename EventType>
+
+
+
+
+
+ void mce::core::QEventBus::subscribe
+ (
+ Handler < EventType > handler )
+
+
+
+
+
+inline
+
+
+
+
+
Subscribe a handler to EventType without RAII token.
+
Template Parameters
+
+ EventType The event type to subscribe to.
+
+
+
+
Parameters
+
+ handler The handler called when an EventType is dispatched.
+
+
+
+
Use this if you do not need automated unsubscription. To remove the handler manually you must extend this class or implement additional removal logic.
+
+
+
+
+
◆ subscribeRAII()
+
+
+
+
+template<typename EventType>
+
+
+
+
Subscribe a handler to EventType and receive a RAII token.
+
Template Parameters
+
+ EventType The event type to subscribe to.
+
+
+
+
Parameters
+
+ handler The handler called when an EventType is dispatched.
+
+
+
+
Returns SubscriptionToken RAII object that will unsubscribe on destruction.
+
The returned token ensures the handler is removed when the token is destroyed. The unsubscribe action captured in the token is safe to call from any thread.
+
+
+
+
The documentation for this class was generated from the following files:
+Minecraft-Community-Edition/Core/QEventBus.hpp
+Minecraft-Community-Edition/Core/QEventBus.cpp
+
+
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1core_1_1_q_event_bus.js b/doc/html/classmce_1_1core_1_1_q_event_bus.js
new file mode 100644
index 0000000..28c2c07
--- /dev/null
+++ b/doc/html/classmce_1_1core_1_1_q_event_bus.js
@@ -0,0 +1,11 @@
+var classmce_1_1core_1_1_q_event_bus =
+[
+ [ "Handler", "classmce_1_1core_1_1_q_event_bus.html#ac6b25bc7c6d277c777e1af45aa77eff5", null ],
+ [ "~QEventBus", "classmce_1_1core_1_1_q_event_bus.html#acfb8698fa740a06260bf55aa9ef7b4be", null ],
+ [ "post", "classmce_1_1core_1_1_q_event_bus.html#a9c90940992c45828785bc470bb7bc72e", null ],
+ [ "process", "classmce_1_1core_1_1_q_event_bus.html#a78ba6364174af661c7b728253144e137", null ],
+ [ "runAsync", "classmce_1_1core_1_1_q_event_bus.html#a63f7403250a74245dae27ef7414694b8", null ],
+ [ "stop", "classmce_1_1core_1_1_q_event_bus.html#a63a90c0389b1517503337f8124cea297", null ],
+ [ "subscribe", "classmce_1_1core_1_1_q_event_bus.html#a433c7ba313925f4d15706bda9428cb90", null ],
+ [ "subscribeRAII", "classmce_1_1core_1_1_q_event_bus.html#abfc942cfc9d467f459a91c78f65cc87f", null ]
+];
\ No newline at end of file
diff --git a/doc/html/classmce_1_1core_1_1_thread-members.html b/doc/html/classmce_1_1core_1_1_thread-members.html
new file mode 100644
index 0000000..819e7f3
--- /dev/null
+++ b/doc/html/classmce_1_1core_1_1_thread-members.html
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
This is the complete list of members for mce::core::Thread , including all inherited members.
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1core_1_1_thread.html b/doc/html/classmce_1_1core_1_1_thread.html
new file mode 100644
index 0000000..d8a393b
--- /dev/null
+++ b/doc/html/classmce_1_1core_1_1_thread.html
@@ -0,0 +1,309 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: mce::core::Thread Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
Lightweight high-level thread wrapper.
+ More...
+
+
#include <Thread.hpp >
+
+
+template<typename F>
+ Thread (QEventBus &qBus, F function)
+ Construct a Thread from a generic callable (lambda, functor, function pointer).
+template<typename C>
+ Thread (QEventBus &qBus, void(C::*function)(), C *object)
+ Construct a Thread that will call a parameterless member function.
+template<typename C, typename... Args>
+ Thread (QEventBus &qBus, void(C::*function)(), C *object, Args &&... args)
+ Construct a Thread that will call a member function with arguments.
+
+ ~Thread ()
+ Destructor; cleans up stored callable and implementation pointer.
+
+void launch ()
+ Start execution of the stored callable on a new thread.
+
+void wait ()
+ Block until the thread has finished executing.
+
+
+
Lightweight high-level thread wrapper.
+
Stores a pointer to a platform-specific implementation (ThreadImpl ) and a type-erased callable adapter (ThreadFunc ) representing the entry point. Use the constructors to create a Thread from lambdas, functors, member functions, or member functions with arguments.
+
+
+
◆ Thread() [1/3]
+
+
+
+
+template<typename F>
+
+
+
+
+
+ mce::core::Thread::Thread
+ (
+ QEventBus & qBus ,
+
+
+
+
+ F function )
+
+
+
+
+inline
+
+
+
+
+
Construct a Thread from a generic callable (lambda, functor, function pointer).
+
Template Parameters
+
+ F Type of the callable.
+
+
+
+
Parameters
+
+ qBus Reference to the QEventBus used for thread lifecycle events.
+ function The callable to execute when the thread runs.
+
+
+
+
+
+
+
+
◆ Thread() [2/3]
+
+
+
+
+template<typename C>
+
+
+
+
+
+ mce::core::Thread::Thread
+ (
+ QEventBus & qBus ,
+
+
+
+
+ void(C::* function )(),
+
+
+
+
+ C * object )
+
+
+
+
+inline
+
+
+
+
+
Construct a Thread that will call a parameterless member function.
+
Template Parameters
+
+ C Class type owning the member function.
+
+
+
+
Parameters
+
+ qBus Reference to the QEventBus used for thread lifecycle events.
+ function Pointer to the member function to invoke.
+ object Pointer to the object instance on which to invoke the member function.
+
+
+
+
+
+
+
+
◆ Thread() [3/3]
+
+
+
+
+template<typename C, typename ... Args>
+
+
+
+
+
+ mce::core::Thread::Thread
+ (
+ QEventBus & qBus ,
+
+
+
+
+ void(C::* function )(),
+
+
+
+
+ C * object ,
+
+
+
+
+ Args &&... args )
+
+
+
+
+inline
+
+
+
+
+
Construct a Thread that will call a member function with arguments.
+
Template Parameters
+
+ C Class type owning the member function.
+ Args Types of the arguments to forward when invoking the member function.
+
+
+
+
Parameters
+
+ qBus Reference to the QEventBus used for thread lifecycle events.
+ function Pointer to the member function to invoke.
+ object Pointer to the object instance on which to invoke the member function.
+ args Arguments to forward to the member function when the thread runs.
+
+
+
+
+
+
+
The documentation for this class was generated from the following files:
+Minecraft-Community-Edition/Core/Thread.hpp
+Minecraft-Community-Edition/Core/Thread.cpp
+
+
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1core_1_1_thread.js b/doc/html/classmce_1_1core_1_1_thread.js
new file mode 100644
index 0000000..4084a57
--- /dev/null
+++ b/doc/html/classmce_1_1core_1_1_thread.js
@@ -0,0 +1,9 @@
+var classmce_1_1core_1_1_thread =
+[
+ [ "Thread", "classmce_1_1core_1_1_thread.html#a5c2ce9f111b89f119b47af3ec1ce8a00", null ],
+ [ "Thread", "classmce_1_1core_1_1_thread.html#a05de96580531c85901fae73a8c844ee2", null ],
+ [ "Thread", "classmce_1_1core_1_1_thread.html#a5e1e35c39fea84e1a49a161e52293345", null ],
+ [ "~Thread", "classmce_1_1core_1_1_thread.html#a1e1425d5263133f0bd16fba495839796", null ],
+ [ "launch", "classmce_1_1core_1_1_thread.html#a17d067360737b1dae418b85295c37f5e", null ],
+ [ "wait", "classmce_1_1core_1_1_thread.html#a956fa62a80b4bfb22ba33b82d7e14daa", null ]
+];
\ No newline at end of file
diff --git a/doc/html/classmce_1_1core_1_1_thread_impl-members.html b/doc/html/classmce_1_1core_1_1_thread_impl-members.html
new file mode 100644
index 0000000..fc6d0ba
--- /dev/null
+++ b/doc/html/classmce_1_1core_1_1_thread_impl-members.html
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
This is the complete list of members for mce::core::ThreadImpl , including all inherited members.
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1core_1_1_thread_impl.html b/doc/html/classmce_1_1core_1_1_thread_impl.html
new file mode 100644
index 0000000..acc0d16
--- /dev/null
+++ b/doc/html/classmce_1_1core_1_1_thread_impl.html
@@ -0,0 +1,205 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: mce::core::ThreadImpl Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
Platform-specific thread implementation.
+ More...
+
+
#include <ThreadImpl.hpp >
+
+
+ ThreadImpl (Thread *owner)
+ Construct a ThreadImpl bound to its owner.
+void wait ()
+ Block until the associated thread exits.
+void terminate ()
+ Request termination of the associated thread.
+
+bool isRunning () const
+
+
+
Platform-specific thread implementation.
+
This class encapsulates native thread handles and provides a small interface for the Thread wrapper to control thread lifetime.
+
It is intentionally non-copyable (implicitly, due to native handles).
+
+
+
◆ ThreadImpl()
+
+
+
+
+
+ mce::core::ThreadImpl::ThreadImpl
+ (
+ Thread * owner )
+
+
+
+
+
+
Construct a ThreadImpl bound to its owner.
+
Parameters
+
+ owner Pointer to the high-level Thread object that owns this implementation.
+
+
+
+
The owner is stored by reference only for use inside the static entryPoint function to call back into Thread::run() or equivalent.
+
+
+
+
+
+
◆ terminate()
+
+
+
+
+
+ void mce::core::ThreadImpl::terminate
+ (
+ )
+
+
+
+
+
+
Request termination of the associated thread.
+
Implementations may signal the thread to stop or forcibly terminate the native thread handle depending on platform support and usage.
+
Note Prefer cooperative shutdown via shared flags when possible.
+
+
+
+
+
◆ wait()
+
+
+
+
+
+ void mce::core::ThreadImpl::wait
+ (
+ )
+
+
+
+
+
+
Block until the associated thread exits.
+
On success this method returns after the remote thread has terminated. Behavior and error handling are platform-specific.
+
+
+
+
The documentation for this class was generated from the following file:
+
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1core_1_1_thread_impl.js b/doc/html/classmce_1_1core_1_1_thread_impl.js
new file mode 100644
index 0000000..8db3762
--- /dev/null
+++ b/doc/html/classmce_1_1core_1_1_thread_impl.js
@@ -0,0 +1,6 @@
+var classmce_1_1core_1_1_thread_impl =
+[
+ [ "ThreadImpl", "classmce_1_1core_1_1_thread_impl.html#af5cd60703d89b878ddbf8ba6ce35cf5d", null ],
+ [ "terminate", "classmce_1_1core_1_1_thread_impl.html#aabbc90d71c67ebea645c0261874ad3ac", null ],
+ [ "wait", "classmce_1_1core_1_1_thread_impl.html#aeef6af3b52228514016470c300b99e0f", null ]
+];
\ No newline at end of file
diff --git a/doc/html/classmce_1_1core_1_1_thread_manager-members.html b/doc/html/classmce_1_1core_1_1_thread_manager-members.html
new file mode 100644
index 0000000..8455caa
--- /dev/null
+++ b/doc/html/classmce_1_1core_1_1_thread_manager-members.html
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
This is the complete list of members for mce::core::ThreadManager , including all inherited members.
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1core_1_1_thread_manager.html b/doc/html/classmce_1_1core_1_1_thread_manager.html
new file mode 100644
index 0000000..61e2f70
--- /dev/null
+++ b/doc/html/classmce_1_1core_1_1_thread_manager.html
@@ -0,0 +1,418 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: mce::core::ThreadManager Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+ ThreadManager (QEventBus &qBus)
+ Construct a ThreadManager bound to a QEventBus .
+
+ ~ThreadManager ()
+ Destructor cleans up managed threads and subscriptions.
+template<typename F>
+Thread * createThread (const eastl::string &name, F func)
+ Create (and store) a Thread from a generic callable.
+template<typename C>
+Thread * createThread (const eastl::string &name, void(C::*func)(), C *object)
+ Create (and store) a Thread for a member function on an object.
+void launch (Thread *th)
+ Launch a previously created Thread instance.
+void launch (const eastl::string &name)
+ Convenience: launches the thread with the given name.
+void waitAll ()
+ Block until all managed threads have finished executing.
+void cleanupFinished ()
+ Remove and cleanup finished threads from internal storage.
+void printStats ()
+ Print statistics (e.g. runtime durations) for managed threads.
+size_t activeCount () const
+ Count of currently active (non-finished) threads.
+
+
+
+
◆ ThreadManager()
+
+
+
+
+
+
+
+
+ mce::core::ThreadManager::ThreadManager
+ (
+ QEventBus & qBus )
+
+
+
+
+
+explicit
+
+
+
+
+
Construct a ThreadManager bound to a QEventBus .
+
Parameters
+
+ qBus Reference to the application's QEventBus used to post thread events.
+
+
+
+
The ThreadManager subscribes to thread lifecycle events on qBus to maintain accurate bookkeeping.
+
+
+
+
+
+
◆ activeCount()
+
+
+
+
+
+ size_t mce::core::ThreadManager::activeCount
+ (
+ )
+ const
+
+
+
+
+
Count of currently active (non-finished) threads.
+
Returns Number of active threads being tracked.
+
+
+
+
+
◆ cleanupFinished()
+
+
+
+
+
+ void mce::core::ThreadManager::cleanupFinished
+ (
+ )
+
+
+
+
+
+
Remove and cleanup finished threads from internal storage.
+
This method may be used regularly to free resources held for threads that have already completed.
+
+
+
+
+
◆ createThread() [1/2]
+
+
+
+
+template<typename F>
+
+
+
+
+
+ Thread * mce::core::ThreadManager::createThread
+ (
+ const eastl::string & name ,
+
+
+
+
+ F func )
+
+
+
+
+inline
+
+
+
+
+
Create (and store) a Thread from a generic callable.
+
Template Parameters
+
+ F Callable type (lambda, functor or function pointer).
+
+
+
+
Parameters
+
+ name Human readable name for the thread.
+ func Callable to execute when the thread runs.
+
+
+
+
Returns Pointer to the created Thread (owned by ThreadManager ).
+
The returned Thread pointer is non-owning; ThreadManager retains ownership in its internal storage (threadStorage). The thread is created but not launched — call launch() to start it.
+
+
+
+
+
◆ createThread() [2/2]
+
+
+
+
+template<typename C>
+
+
+
+
+
+ Thread * mce::core::ThreadManager::createThread
+ (
+ const eastl::string & name ,
+
+
+
+
+ void(C::* func )(),
+
+
+
+
+ C * object )
+
+
+
+
+inline
+
+
+
+
+
Create (and store) a Thread for a member function on an object.
+
Template Parameters
+
+ C Class type of the target object.
+
+
+
+
Parameters
+
+ name Human readable name for the thread.
+ func Pointer to the member function to call.
+ object Pointer to the object instance on which to call the member function.
+
+
+
+
Returns Pointer to the created Thread (owned by ThreadManager ).
+
Creates a Thread adapter that will call (object->*func)() when executed.
+
+
+
+
+
◆ launch() [1/2]
+
+
+
+
+
+ void mce::core::ThreadManager::launch
+ (
+ const eastl::string & name )
+
+
+
+
+
+
Convenience: launches the thread with the given name.
+
Parameters
+
+ name Name of the thread to launch.
+
+
+
+
Finds the Thread associated with name and launches it. If multiple threads share the same name behavior depends on underlying container order.
+
+
+
+
+
◆ launch() [2/2]
+
+
+
+
+
+ void mce::core::ThreadManager::launch
+ (
+ Thread * th )
+
+
+
+
+
+
+
◆ printStats()
+
+
+
+
+
+ void mce::core::ThreadManager::printStats
+ (
+ )
+
+
+
+
+
+
Print statistics (e.g. runtime durations) for managed threads.
+
Implementations should format and output info about active/finished threads using the project's logging facilities.
+
+
+
+
+
◆ waitAll()
+
+
+
+
+
+ void mce::core::ThreadManager::waitAll
+ (
+ )
+
+
+
+
+
+
Block until all managed threads have finished executing.
+
Joins/waits any active threads tracked by this manager.
+
+
+
+
The documentation for this class was generated from the following files:
+Minecraft-Community-Edition/Core/ThreadManager.hpp
+Minecraft-Community-Edition/Core/ThreadManager.cpp
+
+
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1core_1_1_thread_manager.js b/doc/html/classmce_1_1core_1_1_thread_manager.js
new file mode 100644
index 0000000..0e9a833
--- /dev/null
+++ b/doc/html/classmce_1_1core_1_1_thread_manager.js
@@ -0,0 +1,14 @@
+var classmce_1_1core_1_1_thread_manager =
+[
+ [ "ThreadInfo", "structmce_1_1core_1_1_thread_manager_1_1_thread_info.html", "structmce_1_1core_1_1_thread_manager_1_1_thread_info" ],
+ [ "ThreadManager", "classmce_1_1core_1_1_thread_manager.html#a1e8a1ae981f1d028c1b63f77397b66c9", null ],
+ [ "~ThreadManager", "classmce_1_1core_1_1_thread_manager.html#a4118a0b098dac95350c04de8eedfd79c", null ],
+ [ "activeCount", "classmce_1_1core_1_1_thread_manager.html#aadd21ffb5492a39ae78f12096d4c7303", null ],
+ [ "cleanupFinished", "classmce_1_1core_1_1_thread_manager.html#afc3095af493d9919b5a836e08042a7a3", null ],
+ [ "createThread", "classmce_1_1core_1_1_thread_manager.html#a01475e23b0ea908900c63a1d1149635c", null ],
+ [ "createThread", "classmce_1_1core_1_1_thread_manager.html#a3a1d710b34bbdf24a7bf92f1311ae14d", null ],
+ [ "launch", "classmce_1_1core_1_1_thread_manager.html#a6b5600e1e40391eeeaa9d3f3b1548e54", null ],
+ [ "launch", "classmce_1_1core_1_1_thread_manager.html#a7d2d57b8c75442cf44e85e7307bcf2a2", null ],
+ [ "printStats", "classmce_1_1core_1_1_thread_manager.html#ae1ece8be3ff388ad65297189f4870f55", null ],
+ [ "waitAll", "classmce_1_1core_1_1_thread_manager.html#a53a96e7eadbb5988273f71cb4eb8e33f", null ]
+];
\ No newline at end of file
diff --git a/doc/html/classmce_1_1gfx_1_1_graphics_context-members.html b/doc/html/classmce_1_1gfx_1_1_graphics_context-members.html
new file mode 100644
index 0000000..47b6f48
--- /dev/null
+++ b/doc/html/classmce_1_1gfx_1_1_graphics_context-members.html
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
This is the complete list of members for mce::gfx::GraphicsContext , including all inherited members.
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1gfx_1_1_graphics_context.html b/doc/html/classmce_1_1gfx_1_1_graphics_context.html
new file mode 100644
index 0000000..cd3d5f0
--- /dev/null
+++ b/doc/html/classmce_1_1gfx_1_1_graphics_context.html
@@ -0,0 +1,142 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: mce::gfx::GraphicsContext Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ enum class API { OpenGL
+, Vulkan
+ }
+
+
+
+virtual eastl::unique_ptr< Renderer > createRenderer (sf::Window &window)=0
+
+
The documentation for this class was generated from the following files:
+Minecraft-Community-Edition/Graphics/GraphicsContext.hpp
+Minecraft-Community-Edition/Graphics/GraphicsContext.cpp
+
+
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1gfx_1_1_graphics_context.png b/doc/html/classmce_1_1gfx_1_1_graphics_context.png
new file mode 100644
index 0000000..caa1741
Binary files /dev/null and b/doc/html/classmce_1_1gfx_1_1_graphics_context.png differ
diff --git a/doc/html/classmce_1_1gfx_1_1_renderer-members.html b/doc/html/classmce_1_1gfx_1_1_renderer-members.html
new file mode 100644
index 0000000..ec18e50
--- /dev/null
+++ b/doc/html/classmce_1_1gfx_1_1_renderer-members.html
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
This is the complete list of members for mce::gfx::Renderer , including all inherited members.
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1gfx_1_1_renderer.html b/doc/html/classmce_1_1gfx_1_1_renderer.html
new file mode 100644
index 0000000..2c0eb38
--- /dev/null
+++ b/doc/html/classmce_1_1gfx_1_1_renderer.html
@@ -0,0 +1,131 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: mce::gfx::Renderer Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+virtual void renderFrame ()=0
+
+
The documentation for this class was generated from the following files:
+Minecraft-Community-Edition/Graphics/Renderer.hpp
+Minecraft-Community-Edition/Graphics/Renderer.cpp
+
+
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1gfx_1_1_renderer.png b/doc/html/classmce_1_1gfx_1_1_renderer.png
new file mode 100644
index 0000000..e80426a
Binary files /dev/null and b/doc/html/classmce_1_1gfx_1_1_renderer.png differ
diff --git a/doc/html/classmce_1_1gfx_1_1gl_1_1_g_l_graphics_context-members.html b/doc/html/classmce_1_1gfx_1_1gl_1_1_g_l_graphics_context-members.html
new file mode 100644
index 0000000..d711694
--- /dev/null
+++ b/doc/html/classmce_1_1gfx_1_1gl_1_1_g_l_graphics_context-members.html
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
This is the complete list of members for mce::gfx::gl::GLGraphicsContext , including all inherited members.
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1gfx_1_1gl_1_1_g_l_graphics_context.html b/doc/html/classmce_1_1gfx_1_1gl_1_1_g_l_graphics_context.html
new file mode 100644
index 0000000..01eb38c
--- /dev/null
+++ b/doc/html/classmce_1_1gfx_1_1gl_1_1_g_l_graphics_context.html
@@ -0,0 +1,168 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: mce::gfx::gl::GLGraphicsContext Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ enum class API { OpenGL
+, Vulkan
+ }
+
+
+static eastl::unique_ptr< GraphicsContext > create (API api)
+
+
+
+
◆ createRenderer()
+
+
+
+
+
+
+
+
+ eastl::unique_ptr< Renderer > mce::gfx::gl::GLGraphicsContext::createRenderer
+ (
+ sf::Window & window )
+
+
+
+
+
+override virtual
+
+
+
+
+
The documentation for this class was generated from the following files:
+Minecraft-Community-Edition/Graphics/OpenGL/GLGraphicsContext.hpp
+Minecraft-Community-Edition/Graphics/OpenGL/GLGraphicsContext.cpp
+
+
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1gfx_1_1gl_1_1_g_l_graphics_context.png b/doc/html/classmce_1_1gfx_1_1gl_1_1_g_l_graphics_context.png
new file mode 100644
index 0000000..2ba625c
Binary files /dev/null and b/doc/html/classmce_1_1gfx_1_1gl_1_1_g_l_graphics_context.png differ
diff --git a/doc/html/classmce_1_1gfx_1_1gl_1_1_g_l_renderer-members.html b/doc/html/classmce_1_1gfx_1_1gl_1_1_g_l_renderer-members.html
new file mode 100644
index 0000000..7931f24
--- /dev/null
+++ b/doc/html/classmce_1_1gfx_1_1gl_1_1_g_l_renderer-members.html
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
This is the complete list of members for mce::gfx::gl::GLRenderer , including all inherited members.
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1gfx_1_1gl_1_1_g_l_renderer.html b/doc/html/classmce_1_1gfx_1_1gl_1_1_g_l_renderer.html
new file mode 100644
index 0000000..64c4522
--- /dev/null
+++ b/doc/html/classmce_1_1gfx_1_1gl_1_1_g_l_renderer.html
@@ -0,0 +1,160 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: mce::gfx::gl::GLRenderer Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GLRenderer (sf::Window &window)
+void renderFrame () override
+
+
+
+
◆ renderFrame()
+
+
+
+
+
+
+
+
+ void mce::gfx::gl::GLRenderer::renderFrame
+ (
+ )
+
+
+
+
+
+override virtual
+
+
+
+
+
The documentation for this class was generated from the following files:
+Minecraft-Community-Edition/Graphics/OpenGL/GLRenderer.hpp
+Minecraft-Community-Edition/Graphics/OpenGL/GLRenderer.cpp
+
+
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1gfx_1_1gl_1_1_g_l_renderer.png b/doc/html/classmce_1_1gfx_1_1gl_1_1_g_l_renderer.png
new file mode 100644
index 0000000..124354f
Binary files /dev/null and b/doc/html/classmce_1_1gfx_1_1gl_1_1_g_l_renderer.png differ
diff --git a/doc/html/classmce_1_1io_1_1_file_input_stream-members.html b/doc/html/classmce_1_1io_1_1_file_input_stream-members.html
new file mode 100644
index 0000000..eded0b1
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1_file_input_stream-members.html
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
This is the complete list of members for mce::io::FileInputStream , including all inherited members.
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1io_1_1_file_input_stream.html b/doc/html/classmce_1_1io_1_1_file_input_stream.html
new file mode 100644
index 0000000..1179f79
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1_file_input_stream.html
@@ -0,0 +1,332 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: mce::io::FileInputStream Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+bool open (const std::string &file)
+ Constructs the stream and opens a file.
+bool isOpen () const
+
+void close ()
+ Closes the file.
+size_t read (void *buffer, size_t size) override
+ Reads from the input stream.
+size_t seek (size_t position) override
+ Changes the current position the stream is reading.
+size_t tell () override
+size_t getSize () override
+
+
+
+static constexpr size_t FILE_NOT_FOUND = 0
+
+static constexpr size_t INVALID_FILE_SIZE = ~(0)
+
+static constexpr size_t INVALID_FILE_POSITION = ~(0)
+
+
+
+
◆ getSize()
+
+
+
+
+
+
+
+
+
+override virtual
+
+
+
+
+
+
◆ isOpen()
+
+
+
+
Returns True if the file was successfully opened
+
+
+
+
+
◆ open()
+
+
+
+
+
Constructs the stream and opens a file.
+
Parameters
+
+ file The path (absolute or relative) to the file
+
+
+
+
Opens a file to read from
Parameters
+
+ file The path (absolute or relative) to the file
+
+
+
+
+
+
+
+
◆ read()
+
+
+
+
+
+
+
+
+
+override virtual
+
+
+
+
+
Reads from the input stream.
+
Parameters
+
+ buffer The buffer to read the bytes into
+ size The amount of bytes to read
+
+
+
+
Returns The amount of bytes written
+
+
Implements mce::io::stream::InputStream .
+
+
+
+
+
◆ seek()
+
+
+
+
+
+
+
+
+
+override virtual
+
+
+
+
+
Changes the current position the stream is reading.
+
Parameters
+
+ position The position to seek the input stream to
+
+
+
+
Returns The position the input stream is at now
+
+
Implements mce::io::stream::InputStream .
+
+
+
+
+
◆ tell()
+
+
+
+
+
+
+
+
+
+override virtual
+
+
+
+
+
The documentation for this class was generated from the following file:
+
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1io_1_1_file_input_stream.js b/doc/html/classmce_1_1io_1_1_file_input_stream.js
new file mode 100644
index 0000000..f99dbcc
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1_file_input_stream.js
@@ -0,0 +1,10 @@
+var classmce_1_1io_1_1_file_input_stream =
+[
+ [ "close", "classmce_1_1io_1_1_file_input_stream.html#a71114ce3a2363940b2e952d6f58df79b", null ],
+ [ "getSize", "classmce_1_1io_1_1_file_input_stream.html#a96009fb45d364e5b7f0d52abaa149a45", null ],
+ [ "isOpen", "classmce_1_1io_1_1_file_input_stream.html#ac7a544d4bdaab0f51c40e697870ed81b", null ],
+ [ "open", "classmce_1_1io_1_1_file_input_stream.html#ab7e50aadebd4197b5265d73b1e8525c9", null ],
+ [ "read", "classmce_1_1io_1_1_file_input_stream.html#a6ca2b2bb43e44cd8b43066f557b5a911", null ],
+ [ "seek", "classmce_1_1io_1_1_file_input_stream.html#a0f9babfbeac96f147752ffe41cff1ca4", null ],
+ [ "tell", "classmce_1_1io_1_1_file_input_stream.html#ad0fac06330b8408a3c5615bbcd37bf50", null ]
+];
\ No newline at end of file
diff --git a/doc/html/classmce_1_1io_1_1_file_input_stream.png b/doc/html/classmce_1_1io_1_1_file_input_stream.png
new file mode 100644
index 0000000..de67ebe
Binary files /dev/null and b/doc/html/classmce_1_1io_1_1_file_input_stream.png differ
diff --git a/doc/html/classmce_1_1io_1_1_file_output_stream-members.html b/doc/html/classmce_1_1io_1_1_file_output_stream-members.html
new file mode 100644
index 0000000..83bbeaf
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1_file_output_stream-members.html
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
This is the complete list of members for mce::io::FileOutputStream , including all inherited members.
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1io_1_1_file_output_stream.html b/doc/html/classmce_1_1io_1_1_file_output_stream.html
new file mode 100644
index 0000000..c1000b6
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1_file_output_stream.html
@@ -0,0 +1,372 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: mce::io::FileOutputStream Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
Platform-independent file output stream implementation.
+ More...
+
+
#include <FileOutputStream.hpp >
+
+
+
+
+
+
+
+
+
+
+
+ FileOutputStream ()=default
+ Default constructor.
+bool open (const std::string &file)
+ Opens a file for writing (creates/truncates by default).
+bool isOpen () const
+ Query whether the underlying file handle is open.
+
+void close ()
+ Close the file and release any resources.
+size_t write (const void *buffer, size_t size) override
+ Write bytes to the file.
+size_t seek (size_t position) override
+ Change the current write position in the file.
+size_t tell () override
+ Get the current write position in the file.
+size_t getSize () override
+ Get the total size of the underlying file in bytes.
+
+
+static constexpr size_t INVALID_FILE_SIZE = ~(0)
+ Constant indicating an invalid file size/position.
+
+static constexpr size_t INVALID_FILE_POSITION = ~(0)
+ Constant indicating an invalid file position.
+
+
+
Platform-independent file output stream implementation.
+
Provides a concrete OutputStream that writes data to a file using the platform native file handle or FILE* depending on the platform.
+
+
+
◆ getSize()
+
+
+
+
+
+
+
+
+
+override virtual
+
+
+
+
+
Get the total size of the underlying file in bytes.
+
Returns File size in bytes or INVALID_FILE_SIZE on error.
+
+
Implements mce::io::stream::OutputStream .
+
+
+
+
+
◆ isOpen()
+
+
+
+
+
Query whether the underlying file handle is open.
+
Returns True when the file is open and ready for writing.
+
+
+
+
+
◆ open()
+
+
+
+
+
Opens a file for writing (creates/truncates by default).
+
Parameters
+
+ file Path (absolute or relative) to the file to open.
+
+
+
+
Returns True if the file was successfully opened.
+
+
+
+
+
◆ seek()
+
+
+
+
+
+
+
+
+
+override virtual
+
+
+
+
+
Change the current write position in the file.
+
Parameters
+
+ position The absolute position (in bytes) to seek to.
+
+
+
+
Returns The new position in the file after seeking.
+
+
Implements mce::io::stream::OutputStream .
+
+
+
+
+
◆ tell()
+
+
+
+
+
+
+
+
+
+override virtual
+
+
+
+
+
Get the current write position in the file.
+
Returns Current position in bytes from the start of the file.
+
+
Implements mce::io::stream::OutputStream .
+
+
+
+
+
◆ write()
+
+
+
+
+
+
+
+
+
+override virtual
+
+
+
+
+
Write bytes to the file.
+
Parameters
+
+ buffer Pointer to the data to write.
+ size Number of bytes to write from buffer.
+
+
+
+
Returns Number of bytes actually written.
+
+
Implements mce::io::stream::OutputStream .
+
+
+
+
+
+
◆ INVALID_FILE_SIZE
+
+
+
+
+
+
+
+
+
+inline static constexpr
+
+
+
+
+
Constant indicating an invalid file size/position.
+
This value is returned by getSize() or tell() when the operation fails.
+
+
+
+
The documentation for this class was generated from the following file:
+
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1io_1_1_file_output_stream.js b/doc/html/classmce_1_1io_1_1_file_output_stream.js
new file mode 100644
index 0000000..5840d3d
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1_file_output_stream.js
@@ -0,0 +1,11 @@
+var classmce_1_1io_1_1_file_output_stream =
+[
+ [ "FileOutputStream", "classmce_1_1io_1_1_file_output_stream.html#afa07782fd21742c833545744a907a163", null ],
+ [ "close", "classmce_1_1io_1_1_file_output_stream.html#a957bc7e779b3967f65d45ab6d7a81ce8", null ],
+ [ "getSize", "classmce_1_1io_1_1_file_output_stream.html#a8d5e97b01178866c7d898d06872b8223", null ],
+ [ "isOpen", "classmce_1_1io_1_1_file_output_stream.html#aa5850054846c0e24e244ec8f137f80c8", null ],
+ [ "open", "classmce_1_1io_1_1_file_output_stream.html#afd682afed600aa9f2efda8965c5c5bf1", null ],
+ [ "seek", "classmce_1_1io_1_1_file_output_stream.html#a6eeb71a3396de98cbf0a6ae9acd43f81", null ],
+ [ "tell", "classmce_1_1io_1_1_file_output_stream.html#afe6e6ec5cf6a1396faa94130cce9cf43", null ],
+ [ "write", "classmce_1_1io_1_1_file_output_stream.html#a579d72d46213ac70df80d73e98a7beec", null ]
+];
\ No newline at end of file
diff --git a/doc/html/classmce_1_1io_1_1_file_output_stream.png b/doc/html/classmce_1_1io_1_1_file_output_stream.png
new file mode 100644
index 0000000..331bc48
Binary files /dev/null and b/doc/html/classmce_1_1io_1_1_file_output_stream.png differ
diff --git a/doc/html/classmce_1_1io_1_1_file_sink-members.html b/doc/html/classmce_1_1io_1_1_file_sink-members.html
new file mode 100644
index 0000000..2a07897
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1_file_sink-members.html
@@ -0,0 +1,110 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
This is the complete list of members for mce::io::FileSink , including all inherited members.
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1io_1_1_file_sink.html b/doc/html/classmce_1_1io_1_1_file_sink.html
new file mode 100644
index 0000000..0fc8791
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1_file_sink.html
@@ -0,0 +1,164 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: mce::io::FileSink Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FileSink (std::string_view filename)
+void log (std::string_view prettyMessage, std::string_view basicMessage) override
+
+
+
+
◆ log()
+
+
+
+
+
+
+
+
+ void mce::io::FileSink::log
+ (
+ std::string_view prettyMessage ,
+
+
+
+
+ std::string_view basicMessage )
+
+
+
+
+override virtual
+
+
+
+
+
The documentation for this class was generated from the following files:
+Minecraft-Community-Edition/IO/LoggerSinks.hpp
+Minecraft-Community-Edition/IO/LoggerSinks.cpp
+
+
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1io_1_1_file_sink.png b/doc/html/classmce_1_1io_1_1_file_sink.png
new file mode 100644
index 0000000..75133d8
Binary files /dev/null and b/doc/html/classmce_1_1io_1_1_file_sink.png differ
diff --git a/doc/html/classmce_1_1io_1_1_logger-members.html b/doc/html/classmce_1_1io_1_1_logger-members.html
new file mode 100644
index 0000000..7a41048
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1_logger-members.html
@@ -0,0 +1,119 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
This is the complete list of members for mce::io::Logger , including all inherited members.
+
+ addSink (const eastl::shared_ptr< LoggerSink > &sink) (defined in mce::io::Logger )mce::io::Logger
+ debug (std::format_string< Args... > format, Args &&... args) (defined in mce::io::Logger )mce::io::Logger inline
+ debug_trace (const std::source_location &location, std::format_string< Args... > format, Args &&... args) (defined in mce::io::Logger )mce::io::Logger inline
+ error (std::format_string< Args... > format, Args &&... args) (defined in mce::io::Logger )mce::io::Logger inline
+ error_trace (const std::source_location &location, std::format_string< Args... > format, Args &&... args) (defined in mce::io::Logger )mce::io::Logger inline
+ getGlobalLogger (QEventBus &qBus) (defined in mce::io::Logger )mce::io::Logger static
+ info (std::format_string< Args... > format, Args &&... args) (defined in mce::io::Logger )mce::io::Logger inline
+ info_trace (const std::source_location &location, std::format_string< Args... > format, Args &&... args) (defined in mce::io::Logger )mce::io::Logger inline
+ log (LogLevel level, std::string_view message, eastl::optional< std::source_location > location=eastl::nullopt) (defined in mce::io::Logger )mce::io::Logger
+ Logger (QEventBus &qBus, std::string_view name, bool createStdoutSink=true) (defined in mce::io::Logger )mce::io::Logger explicit
+ warn (std::format_string< Args... > format, Args &&... args) (defined in mce::io::Logger )mce::io::Logger inline
+ warn_trace (const std::source_location &location, std::format_string< Args... > format, Args &&... args) (defined in mce::io::Logger )mce::io::Logger inline
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1io_1_1_logger.html b/doc/html/classmce_1_1io_1_1_logger.html
new file mode 100644
index 0000000..7d8a65a
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1_logger.html
@@ -0,0 +1,155 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: mce::io::Logger Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
+ Logger (QEventBus &qBus, std::string_view name, bool createStdoutSink=true)
+
+void addSink (const eastl::shared_ptr< LoggerSink > &sink)
+
+void log (LogLevel level, std::string_view message, eastl::optional< std::source_location > location=eastl::nullopt)
+
+template<typename... Args>
+void info (std::format_string< Args... > format, Args &&... args)
+
+template<typename... Args>
+void warn (std::format_string< Args... > format, Args &&... args)
+
+template<typename... Args>
+void error (std::format_string< Args... > format, Args &&... args)
+
+template<typename... Args>
+void debug (std::format_string< Args... > format, Args &&... args)
+
+template<typename... Args>
+void info_trace (const std::source_location &location, std::format_string< Args... > format, Args &&... args)
+
+template<typename... Args>
+void warn_trace (const std::source_location &location, std::format_string< Args... > format, Args &&... args)
+
+template<typename... Args>
+void error_trace (const std::source_location &location, std::format_string< Args... > format, Args &&... args)
+
+template<typename... Args>
+void debug_trace (const std::source_location &location, std::format_string< Args... > format, Args &&... args)
+
+
+
+static Logger & getGlobalLogger (QEventBus &qBus)
+
+
The documentation for this class was generated from the following files:
+Minecraft-Community-Edition/IO/Logger.hpp
+Minecraft-Community-Edition/IO/Logger.cpp
+
+
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1io_1_1_logger_sink-members.html b/doc/html/classmce_1_1io_1_1_logger_sink-members.html
new file mode 100644
index 0000000..ec29064
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1_logger_sink-members.html
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
This is the complete list of members for mce::io::LoggerSink , including all inherited members.
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1io_1_1_logger_sink.html b/doc/html/classmce_1_1io_1_1_logger_sink.html
new file mode 100644
index 0000000..57f3527
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1_logger_sink.html
@@ -0,0 +1,131 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: mce::io::LoggerSink Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+virtual void log (std::string_view prettyMessage, std::string_view basicMessage)=0
+
+
The documentation for this class was generated from the following file:
+
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1io_1_1_logger_sink.png b/doc/html/classmce_1_1io_1_1_logger_sink.png
new file mode 100644
index 0000000..df41234
Binary files /dev/null and b/doc/html/classmce_1_1io_1_1_logger_sink.png differ
diff --git a/doc/html/classmce_1_1io_1_1_q_event_bus-members.html b/doc/html/classmce_1_1io_1_1_q_event_bus-members.html
new file mode 100644
index 0000000..4757be8
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1_q_event_bus-members.html
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
This is the complete list of members for mce::io::QEventBus , including all inherited members.
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1io_1_1_q_event_bus.html b/doc/html/classmce_1_1io_1_1_q_event_bus.html
new file mode 100644
index 0000000..ed8d411
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1_q_event_bus.html
@@ -0,0 +1,394 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: mce::io::QEventBus Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
Thread-safe event bus.
+ More...
+
+
#include <QEventBus.hpp >
+
+
+template<typename EventType>
+using Handler = eastl::function<void(const EventType&)>
+ Alias for an event handler function.
+
+
+
+ QEventBus (const std::string_view &eventNamespace)
+template<typename EventType>
+SubscriptionToken subscribeRAII (Handler < EventType > handler)
+ Subscribe a handler to EventType and receive a RAII token.
+template<typename EventType>
+void subscribe (Handler < EventType > handler)
+ Subscribe a handler to EventType without RAII token.
+template<typename EventType>
+void post (EventType &&event)
+ Post an event instance to the bus for later processing.
+void process ()
+ Process and dispatch all currently queued events.
+void runAsync ()
+ Start asynchronous processing of queued events.
+void stop ()
+ Stop asynchronous processing and join the worker thread.
+
+size_t getQueueSize () const
+ ~QEventBus ()
+ Destructor.
+
+const std::string_view & getNamespace () const
+
+
+
Thread-safe event bus.
+
QEventBus allows subscribing handlers to event types, posting events to a queue, and dispatching queued events to all registered handlers. It supports both synchronous processing via process() and asynchronous processing via runAsync() /stop().
+
Handlers are stored per event type (std::type_index of the concrete event) and receive events by const-reference to the concrete event type.
+
Note All public subscribe/post/process operations are designed to be thread-safe, but handlers themselves are invoked on the processing thread/context and must be safe to execute there.
+
+
+
◆ Handler
+
+
+
+
+template<typename EventType>
+
+
+
+
Alias for an event handler function.
+
Template Parameters
+
+ EventType Concrete event type handled by the function.
+
+
+
+
The handler receives a const reference to the event instance.
+
+
+
+
+
+
◆ ~QEventBus()
+
+
+
+
+
Destructor.
+
Ensures asynchronous processing is stopped and resources are cleaned up. Any remaining queued events will be destroyed.
+
+
+
+
+
+
◆ post()
+
+
+
+
+template<typename EventType>
+
+
+
+
Post an event instance to the bus for later processing.
+
Template Parameters
+
+ EventType The concrete event type being posted.
+
+
+
+
Parameters
+
+ event The event instance to enqueue (moved or copied as needed).
+
+
+
+
The event is stored as a heap-allocated IEvent-derived instance and will be dispatched during process() or by the asynchronous thread if runAsync() is active.
+
+
+
+
+
◆ process()
+
+
+
+
+
Process and dispatch all currently queued events.
+
This method will dequeue all pending events and invoke their registered handlers synchronously in the caller's thread.
+
+
+
+
+
◆ runAsync()
+
+
+
+
+
Start asynchronous processing of queued events.
+
This creates a background thread that waits for posted events and calls dispatch on them as they arrive.
+
+
+
+
+
◆ stop()
+
+
+
+
+
Stop asynchronous processing and join the worker thread.
+
Blocks until the background processing thread has exited. After stop() returns, it is safe to destroy the QEventBus or call runAsync() again.
+
+
+
+
+
◆ subscribe()
+
+
+
+
+template<typename EventType>
+
+
+
+
Subscribe a handler to EventType without RAII token.
+
Template Parameters
+
+ EventType The event type to subscribe to.
+
+
+
+
Parameters
+
+ handler The handler called when an EventType is dispatched.
+
+
+
+
Use this if you do not need automated unsubscription. To remove the handler manually you must extend this class or implement additional removal logic.
+
+
+
+
+
◆ subscribeRAII()
+
+
+
+
+template<typename EventType>
+
+
+
+
Subscribe a handler to EventType and receive a RAII token.
+
Template Parameters
+
+ EventType The event type to subscribe to.
+
+
+
+
Parameters
+
+ handler The handler called when an EventType is dispatched.
+
+
+
+
Returns SubscriptionToken RAII object that will unsubscribe on destruction.
+
The returned token ensures the handler is removed when the token is destroyed. The unsubscribe action captured in the token is safe to call from any thread.
+
+
+
+
The documentation for this class was generated from the following files:
+Minecraft-Community-Edition/Core/QEventBus.hpp
+Minecraft-Community-Edition/Core/QEventBus.cpp
+
+
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1io_1_1_q_event_bus.js b/doc/html/classmce_1_1io_1_1_q_event_bus.js
new file mode 100644
index 0000000..732b0de
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1_q_event_bus.js
@@ -0,0 +1,11 @@
+var classmce_1_1io_1_1_q_event_bus =
+[
+ [ "Handler", "classmce_1_1io_1_1_q_event_bus.html#ac6b25bc7c6d277c777e1af45aa77eff5", null ],
+ [ "~QEventBus", "classmce_1_1io_1_1_q_event_bus.html#acfb8698fa740a06260bf55aa9ef7b4be", null ],
+ [ "post", "classmce_1_1io_1_1_q_event_bus.html#a9c90940992c45828785bc470bb7bc72e", null ],
+ [ "process", "classmce_1_1io_1_1_q_event_bus.html#a78ba6364174af661c7b728253144e137", null ],
+ [ "runAsync", "classmce_1_1io_1_1_q_event_bus.html#a63f7403250a74245dae27ef7414694b8", null ],
+ [ "stop", "classmce_1_1io_1_1_q_event_bus.html#a63a90c0389b1517503337f8124cea297", null ],
+ [ "subscribe", "classmce_1_1io_1_1_q_event_bus.html#a433c7ba313925f4d15706bda9428cb90", null ],
+ [ "subscribeRAII", "classmce_1_1io_1_1_q_event_bus.html#abfc942cfc9d467f459a91c78f65cc87f", null ]
+];
\ No newline at end of file
diff --git a/doc/html/classmce_1_1io_1_1_stdout_sink-members.html b/doc/html/classmce_1_1io_1_1_stdout_sink-members.html
new file mode 100644
index 0000000..1f1f985
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1_stdout_sink-members.html
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
This is the complete list of members for mce::io::StdoutSink , including all inherited members.
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1io_1_1_stdout_sink.html b/doc/html/classmce_1_1io_1_1_stdout_sink.html
new file mode 100644
index 0000000..98b6c89
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1_stdout_sink.html
@@ -0,0 +1,162 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: mce::io::StdoutSink Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+void log (std::string_view prettyMessage, std::string_view basicMessage) override
+
+
+
+
◆ log()
+
+
+
+
+
+
+
+
+ void mce::io::StdoutSink::log
+ (
+ std::string_view prettyMessage ,
+
+
+
+
+ std::string_view basicMessage )
+
+
+
+
+override virtual
+
+
+
+
+
The documentation for this class was generated from the following files:
+Minecraft-Community-Edition/IO/LoggerSinks.hpp
+Minecraft-Community-Edition/IO/LoggerSinks.cpp
+
+
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1io_1_1_stdout_sink.png b/doc/html/classmce_1_1io_1_1_stdout_sink.png
new file mode 100644
index 0000000..1457a16
Binary files /dev/null and b/doc/html/classmce_1_1io_1_1_stdout_sink.png differ
diff --git a/doc/html/classmce_1_1io_1_1_virtual_file_system-members.html b/doc/html/classmce_1_1io_1_1_virtual_file_system-members.html
new file mode 100644
index 0000000..e2e9666
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1_virtual_file_system-members.html
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
This is the complete list of members for mce::io::VirtualFileSystem , including all inherited members.
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1io_1_1_virtual_file_system.html b/doc/html/classmce_1_1io_1_1_virtual_file_system.html
new file mode 100644
index 0000000..42391f4
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1_virtual_file_system.html
@@ -0,0 +1,288 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: mce::io::VirtualFileSystem Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
VirtualFileSystem manages a collection of files referenced by tags.
+ More...
+
+
#include <VirtualFileSystem.hpp >
+
+
+Config & getConfig ()
+ Access the runtime configuration.
+bool getFile (const eastl::string_view &fileTag, eastl::vector< char > &bytes)
+ Retrieve a file's bytes identified by its tag.
+bool buildJSONMappingFile (const std::string &fileInName, const std::string &fileOutName)
+ Build a binary VFS file from a JSON mapping.
+bool loadFile (const std::string &fileName)
+ Load the virtual file system from a file.
+
+
+
VirtualFileSystem manages a collection of files referenced by tags.
+
The virtual file system can be built from a JSON mapping (debug mode) or from a binary VFS file (release). It supports loading file contents either via stream input or by keeping the virtual file contents in memory.
+
+
+
◆ FileBinaryType
+
+
+
+
+
Types of virtual file collections that can be stored in a VFS file.
+
+Enumerator NONE No file type specified.
+
+ ASSETS_FILE Assets bundle.
+
+ SOURCE_FILE Source files bundle.
+
+ WORLD_FILE World data bundle.
+
+
+
+
+
+
+
+
◆ buildJSONMappingFile()
+
+
+
+
+
+ bool mce::io::VirtualFileSystem::buildJSONMappingFile
+ (
+ const std::string & fileInName ,
+
+
+
+
+ const std::string & fileOutName )
+
+
+
+
+
Build a binary VFS file from a JSON mapping.
+
Parameters
+
+ fileInName Path to the input JSON mapping file.
+ fileOutName Path where the resulting binary VFS should be written.
+
+
+
+
Returns True if the output file was successfully created.
+
+
+
+
+
◆ getConfig()
+
+
+
+
+
Access the runtime configuration.
+
Returns Reference to the VFS configuration.
+
+
+
+
+
◆ getFile()
+
+
+
+
+
+ bool mce::io::VirtualFileSystem::getFile
+ (
+ const eastl::string_view & fileTag ,
+
+
+
+
+ eastl::vector< char > & bytes )
+
+
+
+
+
Retrieve a file's bytes identified by its tag.
+
Parameters
+
+ fileTag Tag identifying the file in the VFS.
+ bytes Output vector which will be filled with file data.
+
+
+
+
Returns True if the file was found and bytes were successfully loaded.
+
+
+
+
+
◆ loadFile()
+
+
+
+
+
+ bool mce::io::VirtualFileSystem::loadFile
+ (
+ const std::string & fileName )
+
+
+
+
+
+
Load the virtual file system from a file.
+
Parameters
+
+ fileName Base file name (without extension) to load.
+
+
+
+
Returns True if the VFS data was successfully loaded.
+
+
+
+
The documentation for this class was generated from the following files:
+Minecraft-Community-Edition/IO/VirtualFileSystem.hpp
+Minecraft-Community-Edition/IO/VirtualFileSystem.cpp
+
+
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1io_1_1_virtual_file_system.js b/doc/html/classmce_1_1io_1_1_virtual_file_system.js
new file mode 100644
index 0000000..46893a4
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1_virtual_file_system.js
@@ -0,0 +1,15 @@
+var classmce_1_1io_1_1_virtual_file_system =
+[
+ [ "Version", "unionmce_1_1io_1_1_virtual_file_system_1_1_version.html", "unionmce_1_1io_1_1_virtual_file_system_1_1_version" ],
+ [ "Config", "structmce_1_1io_1_1_virtual_file_system_1_1_config.html", "structmce_1_1io_1_1_virtual_file_system_1_1_config" ],
+ [ "FileBinaryType", "classmce_1_1io_1_1_virtual_file_system.html#ad079e7a8b95bc51cd2405df1bc04bfed", [
+ [ "NONE", "classmce_1_1io_1_1_virtual_file_system.html#ad079e7a8b95bc51cd2405df1bc04bfeda92070e1afb740503dbb34f28c57b219c", null ],
+ [ "ASSETS_FILE", "classmce_1_1io_1_1_virtual_file_system.html#ad079e7a8b95bc51cd2405df1bc04bfeda37395c91e1ea0a05dc6b640b575d7496", null ],
+ [ "SOURCE_FILE", "classmce_1_1io_1_1_virtual_file_system.html#ad079e7a8b95bc51cd2405df1bc04bfedaa2e138ff0a95c2ad14466cb996e120f9", null ],
+ [ "WORLD_FILE", "classmce_1_1io_1_1_virtual_file_system.html#ad079e7a8b95bc51cd2405df1bc04bfeda4a43abaa37022df69172ecf4763812b5", null ]
+ ] ],
+ [ "buildJSONMappingFile", "classmce_1_1io_1_1_virtual_file_system.html#afcb51a189f6a60114b41d44f7cbdb10d", null ],
+ [ "getConfig", "classmce_1_1io_1_1_virtual_file_system.html#ae7427d78453993e0837ea1ca7d7064f0", null ],
+ [ "getFile", "classmce_1_1io_1_1_virtual_file_system.html#a64b841bb8b532f97889d19e5a8adc4ab", null ],
+ [ "loadFile", "classmce_1_1io_1_1_virtual_file_system.html#ac489bcdf8e119cd828c22022572fb169", null ]
+];
\ No newline at end of file
diff --git a/doc/html/classmce_1_1io_1_1stream_1_1_file_input_stream-members.html b/doc/html/classmce_1_1io_1_1stream_1_1_file_input_stream-members.html
new file mode 100644
index 0000000..a1c3271
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1stream_1_1_file_input_stream-members.html
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
This is the complete list of members for mce::io::stream::FileInputStream , including all inherited members.
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1io_1_1stream_1_1_file_input_stream.html b/doc/html/classmce_1_1io_1_1stream_1_1_file_input_stream.html
new file mode 100644
index 0000000..541f2d3
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1stream_1_1_file_input_stream.html
@@ -0,0 +1,332 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: mce::io::stream::FileInputStream Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+bool open (const std::string &file)
+ Constructs the stream and opens a file.
+bool isOpen () const
+
+void close ()
+ Closes the file.
+size_t read (void *buffer, size_t size) override
+ Reads from the input stream.
+size_t seek (size_t position) override
+ Changes the current position the stream is reading.
+size_t tell () override
+size_t getSize () override
+
+
+
+static constexpr size_t FILE_NOT_FOUND = 0
+
+static constexpr size_t INVALID_FILE_SIZE = ~(0)
+
+static constexpr size_t INVALID_FILE_POSITION = ~(0)
+
+
+
+
◆ getSize()
+
+
+
+
+
+
+
+
+ size_t mce::io::stream::FileInputStream::getSize
+ (
+ )
+
+
+
+
+
+override virtual
+
+
+
+
+
+
◆ isOpen()
+
+
+
+
+
+ bool mce::io::stream::FileInputStream::isOpen
+ (
+ )
+ const
+
+
+
+
Returns True if the file was successfully opened
+
+
+
+
+
◆ open()
+
+
+
+
+
+ bool mce::io::stream::FileInputStream::open
+ (
+ const std::string & file )
+
+
+
+
+
+
Constructs the stream and opens a file.
+
Parameters
+
+ file The path (absolute or relative) to the file
+
+
+
+
Opens a file to read from
Parameters
+
+ file The path (absolute or relative) to the file
+
+
+
+
+
+
+
+
◆ read()
+
+
+
+
+
+
+
+
+ size_t mce::io::stream::FileInputStream::read
+ (
+ void * buffer ,
+
+
+
+
+ size_t size )
+
+
+
+
+override virtual
+
+
+
+
+
Reads from the input stream.
+
Parameters
+
+ buffer The buffer to read the bytes into
+ size The amount of bytes to read
+
+
+
+
Returns The amount of bytes written
+
+
Implements mce::io::stream::InputStream .
+
+
+
+
+
◆ seek()
+
+
+
+
+
+
+
+
+ size_t mce::io::stream::FileInputStream::seek
+ (
+ size_t position )
+
+
+
+
+
+override virtual
+
+
+
+
+
Changes the current position the stream is reading.
+
Parameters
+
+ position The position to seek the input stream to
+
+
+
+
Returns The position the input stream is at now
+
+
Implements mce::io::stream::InputStream .
+
+
+
+
+
◆ tell()
+
+
+
+
+
+
+
+
+ size_t mce::io::stream::FileInputStream::tell
+ (
+ )
+
+
+
+
+
+override virtual
+
+
+
+
+
The documentation for this class was generated from the following file:
+
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1io_1_1stream_1_1_file_input_stream.js b/doc/html/classmce_1_1io_1_1stream_1_1_file_input_stream.js
new file mode 100644
index 0000000..0c687a1
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1stream_1_1_file_input_stream.js
@@ -0,0 +1,10 @@
+var classmce_1_1io_1_1stream_1_1_file_input_stream =
+[
+ [ "close", "classmce_1_1io_1_1stream_1_1_file_input_stream.html#a71114ce3a2363940b2e952d6f58df79b", null ],
+ [ "getSize", "classmce_1_1io_1_1stream_1_1_file_input_stream.html#a96009fb45d364e5b7f0d52abaa149a45", null ],
+ [ "isOpen", "classmce_1_1io_1_1stream_1_1_file_input_stream.html#ac7a544d4bdaab0f51c40e697870ed81b", null ],
+ [ "open", "classmce_1_1io_1_1stream_1_1_file_input_stream.html#ab7e50aadebd4197b5265d73b1e8525c9", null ],
+ [ "read", "classmce_1_1io_1_1stream_1_1_file_input_stream.html#a6ca2b2bb43e44cd8b43066f557b5a911", null ],
+ [ "seek", "classmce_1_1io_1_1stream_1_1_file_input_stream.html#a0f9babfbeac96f147752ffe41cff1ca4", null ],
+ [ "tell", "classmce_1_1io_1_1stream_1_1_file_input_stream.html#ad0fac06330b8408a3c5615bbcd37bf50", null ]
+];
\ No newline at end of file
diff --git a/doc/html/classmce_1_1io_1_1stream_1_1_file_input_stream.png b/doc/html/classmce_1_1io_1_1stream_1_1_file_input_stream.png
new file mode 100644
index 0000000..b173350
Binary files /dev/null and b/doc/html/classmce_1_1io_1_1stream_1_1_file_input_stream.png differ
diff --git a/doc/html/classmce_1_1io_1_1stream_1_1_file_output_stream-members.html b/doc/html/classmce_1_1io_1_1stream_1_1_file_output_stream-members.html
new file mode 100644
index 0000000..ad4ebe2
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1stream_1_1_file_output_stream-members.html
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
This is the complete list of members for mce::io::stream::FileOutputStream , including all inherited members.
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1io_1_1stream_1_1_file_output_stream.html b/doc/html/classmce_1_1io_1_1stream_1_1_file_output_stream.html
new file mode 100644
index 0000000..d25da8a
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1stream_1_1_file_output_stream.html
@@ -0,0 +1,372 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: mce::io::stream::FileOutputStream Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
Platform-independent file output stream implementation.
+ More...
+
+
#include <FileOutputStream.hpp >
+
+
+
+
+
+
+
+
+
+
+
+ FileOutputStream ()=default
+ Default constructor.
+bool open (const std::string &file)
+ Opens a file for writing (creates/truncates by default).
+bool isOpen () const
+ Query whether the underlying file handle is open.
+
+void close ()
+ Close the file and release any resources.
+size_t write (const void *buffer, size_t size) override
+ Write bytes to the file.
+size_t seek (size_t position) override
+ Change the current write position in the file.
+size_t tell () override
+ Get the current write position in the file.
+size_t getSize () override
+ Get the total size of the underlying file in bytes.
+
+
+static constexpr size_t INVALID_FILE_SIZE = ~(0)
+ Constant indicating an invalid file size/position.
+
+static constexpr size_t INVALID_FILE_POSITION = ~(0)
+ Constant indicating an invalid file position.
+
+
+
Platform-independent file output stream implementation.
+
Provides a concrete OutputStream that writes data to a file using the platform native file handle or FILE* depending on the platform.
+
+
+
◆ getSize()
+
+
+
+
+
+
+
+
+ size_t mce::io::stream::FileOutputStream::getSize
+ (
+ )
+
+
+
+
+
+override virtual
+
+
+
+
+
Get the total size of the underlying file in bytes.
+
Returns File size in bytes or INVALID_FILE_SIZE on error.
+
+
Implements mce::io::stream::OutputStream .
+
+
+
+
+
◆ isOpen()
+
+
+
+
+
+ bool mce::io::stream::FileOutputStream::isOpen
+ (
+ )
+ const
+
+
+
+
+
Query whether the underlying file handle is open.
+
Returns True when the file is open and ready for writing.
+
+
+
+
+
◆ open()
+
+
+
+
+
+ bool mce::io::stream::FileOutputStream::open
+ (
+ const std::string & file )
+
+
+
+
+
+
Opens a file for writing (creates/truncates by default).
+
Parameters
+
+ file Path (absolute or relative) to the file to open.
+
+
+
+
Returns True if the file was successfully opened.
+
+
+
+
+
◆ seek()
+
+
+
+
+
+
+
+
+ size_t mce::io::stream::FileOutputStream::seek
+ (
+ size_t position )
+
+
+
+
+
+override virtual
+
+
+
+
+
Change the current write position in the file.
+
Parameters
+
+ position The absolute position (in bytes) to seek to.
+
+
+
+
Returns The new position in the file after seeking.
+
+
Implements mce::io::stream::OutputStream .
+
+
+
+
+
◆ tell()
+
+
+
+
+
+
+
+
+ size_t mce::io::stream::FileOutputStream::tell
+ (
+ )
+
+
+
+
+
+override virtual
+
+
+
+
+
Get the current write position in the file.
+
Returns Current position in bytes from the start of the file.
+
+
Implements mce::io::stream::OutputStream .
+
+
+
+
+
◆ write()
+
+
+
+
+
+
+
+
+ size_t mce::io::stream::FileOutputStream::write
+ (
+ const void * buffer ,
+
+
+
+
+ size_t size )
+
+
+
+
+override virtual
+
+
+
+
+
Write bytes to the file.
+
Parameters
+
+ buffer Pointer to the data to write.
+ size Number of bytes to write from buffer.
+
+
+
+
Returns Number of bytes actually written.
+
+
Implements mce::io::stream::OutputStream .
+
+
+
+
+
+
◆ INVALID_FILE_SIZE
+
+
+
+
+
+
+
+
+ size_t mce::io::stream::FileOutputStream::INVALID_FILE_SIZE = ~(0)
+
+
+
+
+inline static constexpr
+
+
+
+
+
Constant indicating an invalid file size/position.
+
This value is returned by getSize() or tell() when the operation fails.
+
+
+
+
The documentation for this class was generated from the following file:
+
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1io_1_1stream_1_1_file_output_stream.js b/doc/html/classmce_1_1io_1_1stream_1_1_file_output_stream.js
new file mode 100644
index 0000000..87b4e85
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1stream_1_1_file_output_stream.js
@@ -0,0 +1,11 @@
+var classmce_1_1io_1_1stream_1_1_file_output_stream =
+[
+ [ "FileOutputStream", "classmce_1_1io_1_1stream_1_1_file_output_stream.html#afa07782fd21742c833545744a907a163", null ],
+ [ "close", "classmce_1_1io_1_1stream_1_1_file_output_stream.html#a957bc7e779b3967f65d45ab6d7a81ce8", null ],
+ [ "getSize", "classmce_1_1io_1_1stream_1_1_file_output_stream.html#a8d5e97b01178866c7d898d06872b8223", null ],
+ [ "isOpen", "classmce_1_1io_1_1stream_1_1_file_output_stream.html#aa5850054846c0e24e244ec8f137f80c8", null ],
+ [ "open", "classmce_1_1io_1_1stream_1_1_file_output_stream.html#afd682afed600aa9f2efda8965c5c5bf1", null ],
+ [ "seek", "classmce_1_1io_1_1stream_1_1_file_output_stream.html#a6eeb71a3396de98cbf0a6ae9acd43f81", null ],
+ [ "tell", "classmce_1_1io_1_1stream_1_1_file_output_stream.html#afe6e6ec5cf6a1396faa94130cce9cf43", null ],
+ [ "write", "classmce_1_1io_1_1stream_1_1_file_output_stream.html#a579d72d46213ac70df80d73e98a7beec", null ]
+];
\ No newline at end of file
diff --git a/doc/html/classmce_1_1io_1_1stream_1_1_file_output_stream.png b/doc/html/classmce_1_1io_1_1stream_1_1_file_output_stream.png
new file mode 100644
index 0000000..f1d0be5
Binary files /dev/null and b/doc/html/classmce_1_1io_1_1stream_1_1_file_output_stream.png differ
diff --git a/doc/html/classmce_1_1io_1_1stream_1_1_input_stream-members.html b/doc/html/classmce_1_1io_1_1stream_1_1_input_stream-members.html
new file mode 100644
index 0000000..12ddcda
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1stream_1_1_input_stream-members.html
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
This is the complete list of members for mce::io::stream::InputStream , including all inherited members.
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1io_1_1stream_1_1_input_stream.html b/doc/html/classmce_1_1io_1_1stream_1_1_input_stream.html
new file mode 100644
index 0000000..d2a440f
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1stream_1_1_input_stream.html
@@ -0,0 +1,270 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: mce::io::stream::InputStream Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+virtual size_t read (void *buffer, size_t size)=0
+ Reads from the input stream.
+virtual size_t seek (size_t position)=0
+ Changes the current position the stream is reading.
+virtual size_t tell ()=0
+virtual size_t getSize ()=0
+
+
+
+
◆ getSize()
+
+
+
+
+
+
+
+
+ virtual size_t mce::io::stream::InputStream::getSize
+ (
+ )
+
+
+
+
+
+pure virtual
+
+
+
+
+
+
◆ read()
+
+
+
+
+
+
+
+
+ virtual size_t mce::io::stream::InputStream::read
+ (
+ void * buffer ,
+
+
+
+
+ size_t size )
+
+
+
+
+pure virtual
+
+
+
+
+
+
◆ seek()
+
+
+
+
+
+
+
+
+ virtual size_t mce::io::stream::InputStream::seek
+ (
+ size_t position )
+
+
+
+
+
+pure virtual
+
+
+
+
+
+
◆ tell()
+
+
+
+
+
+
+
+
+ virtual size_t mce::io::stream::InputStream::tell
+ (
+ )
+
+
+
+
+
+pure virtual
+
+
+
+
+
The documentation for this class was generated from the following files:
+Minecraft-Community-Edition/IO/Stream/InputStream.hpp
+Minecraft-Community-Edition/IO/Stream/InputStream.cpp
+
+
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1io_1_1stream_1_1_input_stream.js b/doc/html/classmce_1_1io_1_1stream_1_1_input_stream.js
new file mode 100644
index 0000000..b740f6e
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1stream_1_1_input_stream.js
@@ -0,0 +1,7 @@
+var classmce_1_1io_1_1stream_1_1_input_stream =
+[
+ [ "getSize", "classmce_1_1io_1_1stream_1_1_input_stream.html#af04b7ddd5d0c0e266c97a7d60f4ba0a2", null ],
+ [ "read", "classmce_1_1io_1_1stream_1_1_input_stream.html#accde11ae1fd83ab4c22ee235769543e7", null ],
+ [ "seek", "classmce_1_1io_1_1stream_1_1_input_stream.html#a50d2a260775c9d58fde9633beb1df76a", null ],
+ [ "tell", "classmce_1_1io_1_1stream_1_1_input_stream.html#a165631a416f7a186f5de98e46a9797aa", null ]
+];
\ No newline at end of file
diff --git a/doc/html/classmce_1_1io_1_1stream_1_1_input_stream.png b/doc/html/classmce_1_1io_1_1stream_1_1_input_stream.png
new file mode 100644
index 0000000..9491f61
Binary files /dev/null and b/doc/html/classmce_1_1io_1_1stream_1_1_input_stream.png differ
diff --git a/doc/html/classmce_1_1io_1_1stream_1_1_memory_input_stream-members.html b/doc/html/classmce_1_1io_1_1stream_1_1_memory_input_stream-members.html
new file mode 100644
index 0000000..1967000
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1stream_1_1_memory_input_stream-members.html
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
This is the complete list of members for mce::io::stream::MemoryInputStream , including all inherited members.
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1io_1_1stream_1_1_memory_input_stream.html b/doc/html/classmce_1_1io_1_1stream_1_1_memory_input_stream.html
new file mode 100644
index 0000000..cbed3ba
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1stream_1_1_memory_input_stream.html
@@ -0,0 +1,350 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: mce::io::stream::MemoryInputStream Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
Memory-backed input stream.
+ More...
+
+
#include <MemoryInputStream.hpp >
+
+
+
+
+
+
+
+
+
+
+ MemoryInputStream (const void *data, size_t size)
+ Construct a memory input stream over existing data.
+virtual size_t read (void *buffer, size_t size) override
+ Read bytes from the memory buffer into the provided buffer.
+size_t readString (char *&buffer, size_t &size)
+ Read a NUL-terminated string from the stream.
+virtual size_t seek (size_t position) override
+ Seek to an absolute position in the memory buffer.
+virtual size_t tell () override
+ Get the current read position in the buffer.
+virtual size_t getSize () override
+ Get the total size of the memory buffer.
+
+
+
Memory-backed input stream.
+
Provides a read-only InputStream view over an existing memory buffer. The stream does not take ownership of the provided memory; the caller is responsible for ensuring the lifetime of the memory buffer exceeds the lifetime of the MemoryInputStream instance.
+
+
+
◆ MemoryInputStream()
+
+
+
+
+
+ mce::io::stream::MemoryInputStream::MemoryInputStream
+ (
+ const void * data ,
+
+
+
+
+ size_t size )
+
+
+
+
+
Construct a memory input stream over existing data.
+
Parameters
+
+ data Pointer to the memory buffer to read from. Must not be nullptr unless size is zero.
+ size Size of the buffer in bytes.
+
+
+
+
+
+
+
+
+
◆ getSize()
+
+
+
+
+
+
+
+
+ size_t mce::io::stream::MemoryInputStream::getSize
+ (
+ )
+
+
+
+
+
+override virtual
+
+
+
+
+
+
◆ read()
+
+
+
+
+
+
+
+
+ size_t mce::io::stream::MemoryInputStream::read
+ (
+ void * buffer ,
+
+
+
+
+ size_t size )
+
+
+
+
+override virtual
+
+
+
+
+
Read bytes from the memory buffer into the provided buffer.
+
Parameters
+
+ buffer Destination buffer to receive data.
+ size Maximum number of bytes to read from the stream.
+
+
+
+
Returns Number of bytes actually read.
+
+
Implements mce::io::stream::InputStream .
+
+
+
+
+
◆ readString()
+
+
+
+
+
+ size_t mce::io::stream::MemoryInputStream::readString
+ (
+ char *& buffer ,
+
+
+
+
+ size_t & size )
+
+
+
+
+
Read a NUL-terminated string from the stream.
+
The function does not allocate new memory for the string. Instead it returns a pointer into the original memory buffer via the buffer reference parameter. The returned pointer is valid only while the original memory and this stream remain valid.
+
Parameters
+
+ buffer Reference to a char* which will be set to point to the string inside the memory buffer.
+ size Reference to a size_t which will be set to the length of the string (excluding the terminating NUL).
+
+
+
+
Returns Number of bytes consumed from the stream, including the terminating NULL byte.
+
+
+
+
+
◆ seek()
+
+
+
+
+
+
+
+
+ size_t mce::io::stream::MemoryInputStream::seek
+ (
+ size_t position )
+
+
+
+
+
+override virtual
+
+
+
+
+
Seek to an absolute position in the memory buffer.
+
Parameters
+
+ position Absolute position in bytes from the start of the buffer.
+
+
+
+
Returns The new position after seeking.
+
+
Implements mce::io::stream::InputStream .
+
+
+
+
+
◆ tell()
+
+
+
+
+
+
+
+
+ size_t mce::io::stream::MemoryInputStream::tell
+ (
+ )
+
+
+
+
+
+override virtual
+
+
+
+
+
Get the current read position in the buffer.
+
Returns Current position in bytes from the start of the buffer.
+
+
Implements mce::io::stream::InputStream .
+
+
+
+
The documentation for this class was generated from the following files:
+Minecraft-Community-Edition/IO/Stream/MemoryInputStream.hpp
+Minecraft-Community-Edition/IO/Stream/MemoryInputStream.cpp
+
+
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1io_1_1stream_1_1_memory_input_stream.js b/doc/html/classmce_1_1io_1_1stream_1_1_memory_input_stream.js
new file mode 100644
index 0000000..b1b5111
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1stream_1_1_memory_input_stream.js
@@ -0,0 +1,9 @@
+var classmce_1_1io_1_1stream_1_1_memory_input_stream =
+[
+ [ "MemoryInputStream", "classmce_1_1io_1_1stream_1_1_memory_input_stream.html#a917b4771e9ba796b606530ce9325fae6", null ],
+ [ "getSize", "classmce_1_1io_1_1stream_1_1_memory_input_stream.html#a17d5ecb327e9c168b6e6b531f49dac15", null ],
+ [ "read", "classmce_1_1io_1_1stream_1_1_memory_input_stream.html#a8335616e719ae5ee7270096e9554c97e", null ],
+ [ "readString", "classmce_1_1io_1_1stream_1_1_memory_input_stream.html#aada4b0821883366abaa2ea02d4afd547", null ],
+ [ "seek", "classmce_1_1io_1_1stream_1_1_memory_input_stream.html#aca044beecb14defa90e3005dadad3ed5", null ],
+ [ "tell", "classmce_1_1io_1_1stream_1_1_memory_input_stream.html#a17cd9cd4762b4b32fb457d26d1c9a3c2", null ]
+];
\ No newline at end of file
diff --git a/doc/html/classmce_1_1io_1_1stream_1_1_memory_input_stream.png b/doc/html/classmce_1_1io_1_1stream_1_1_memory_input_stream.png
new file mode 100644
index 0000000..757a73f
Binary files /dev/null and b/doc/html/classmce_1_1io_1_1stream_1_1_memory_input_stream.png differ
diff --git a/doc/html/classmce_1_1io_1_1stream_1_1_output_stream-members.html b/doc/html/classmce_1_1io_1_1stream_1_1_output_stream-members.html
new file mode 100644
index 0000000..cba1160
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1stream_1_1_output_stream-members.html
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: Member List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
This is the complete list of members for mce::io::stream::OutputStream , including all inherited members.
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1io_1_1stream_1_1_output_stream.html b/doc/html/classmce_1_1io_1_1stream_1_1_output_stream.html
new file mode 100644
index 0000000..f4379c1
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1stream_1_1_output_stream.html
@@ -0,0 +1,266 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: mce::io::stream::OutputStream Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+virtual size_t write (const void *buffer, size_t size)=0
+virtual size_t seek (size_t position)=0
+ Changes the current position the stream is at.
+virtual size_t tell ()=0
+virtual size_t getSize ()=0
+
+
+
+
◆ getSize()
+
+
+
+
+
+
+
+
+ virtual size_t mce::io::stream::OutputStream::getSize
+ (
+ )
+
+
+
+
+
+pure virtual
+
+
+
+
+
+
◆ seek()
+
+
+
+
+
+
+
+
+ virtual size_t mce::io::stream::OutputStream::seek
+ (
+ size_t position )
+
+
+
+
+
+pure virtual
+
+
+
+
+
+
◆ tell()
+
+
+
+
+
+
+
+
+ virtual size_t mce::io::stream::OutputStream::tell
+ (
+ )
+
+
+
+
+
+pure virtual
+
+
+
+
+
+
◆ write()
+
+
+
+
+
+
+
+
+ virtual size_t mce::io::stream::OutputStream::write
+ (
+ const void * buffer ,
+
+
+
+
+ size_t size )
+
+
+
+
+pure virtual
+
+
+
+
+
The documentation for this class was generated from the following files:
+Minecraft-Community-Edition/IO/Stream/OutputStream.hpp
+Minecraft-Community-Edition/IO/Stream/OutputStream.cpp
+
+
+
+
+
+
+
+
+
diff --git a/doc/html/classmce_1_1io_1_1stream_1_1_output_stream.js b/doc/html/classmce_1_1io_1_1stream_1_1_output_stream.js
new file mode 100644
index 0000000..60e8658
--- /dev/null
+++ b/doc/html/classmce_1_1io_1_1stream_1_1_output_stream.js
@@ -0,0 +1,7 @@
+var classmce_1_1io_1_1stream_1_1_output_stream =
+[
+ [ "getSize", "classmce_1_1io_1_1stream_1_1_output_stream.html#aa78274dd254564c68bbb4d3098705baf", null ],
+ [ "seek", "classmce_1_1io_1_1stream_1_1_output_stream.html#a1552e76f546d7b83703c9b1d00ae8e21", null ],
+ [ "tell", "classmce_1_1io_1_1stream_1_1_output_stream.html#a8c4f9dcad0fff9741a6a4e3d32693a48", null ],
+ [ "write", "classmce_1_1io_1_1stream_1_1_output_stream.html#a6fae9568f6c908d7d1465839ad5ea5bf", null ]
+];
\ No newline at end of file
diff --git a/doc/html/classmce_1_1io_1_1stream_1_1_output_stream.png b/doc/html/classmce_1_1io_1_1stream_1_1_output_stream.png
new file mode 100644
index 0000000..b8162bc
Binary files /dev/null and b/doc/html/classmce_1_1io_1_1stream_1_1_output_stream.png differ
diff --git a/doc/html/dir_0b95226d104ac28fb04b38b5d07d6c27.html b/doc/html/dir_0b95226d104ac28fb04b38b5d07d6c27.html
new file mode 100644
index 0000000..78ed650
--- /dev/null
+++ b/doc/html/dir_0b95226d104ac28fb04b38b5d07d6c27.html
@@ -0,0 +1,119 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: Minecraft-Community-Edition Directory Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft-Community-Edition
+
+
+
+
+
diff --git a/doc/html/dir_0b95226d104ac28fb04b38b5d07d6c27.js b/doc/html/dir_0b95226d104ac28fb04b38b5d07d6c27.js
new file mode 100644
index 0000000..a819348
--- /dev/null
+++ b/doc/html/dir_0b95226d104ac28fb04b38b5d07d6c27.js
@@ -0,0 +1,6 @@
+var dir_0b95226d104ac28fb04b38b5d07d6c27 =
+[
+ [ "Core", "dir_419c89b77434d6e715487f16ed3bc020.html", "dir_419c89b77434d6e715487f16ed3bc020" ],
+ [ "Graphics", "dir_9c87e2e2b56f8a634be92c69c4e4bbaf.html", "dir_9c87e2e2b56f8a634be92c69c4e4bbaf" ],
+ [ "IO", "dir_45cf80471b1d3bbf34be9f6d25f6c711.html", "dir_45cf80471b1d3bbf34be9f6d25f6c711" ]
+];
\ No newline at end of file
diff --git a/doc/html/dir_2e1261dd72f7602d2bce8d6f84397156.html b/doc/html/dir_2e1261dd72f7602d2bce8d6f84397156.html
new file mode 100644
index 0000000..e2e9e9a
--- /dev/null
+++ b/doc/html/dir_2e1261dd72f7602d2bce8d6f84397156.html
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: Minecraft-Community-Edition/IO/Stream Directory Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
FileInputStream.hpp
+
FileOutputStream.hpp
+
InputStream.hpp
+
MemoryInputStream.hpp
+
OutputStream.hpp
+
+
+
+
+
+
+
+
+ Minecraft-Community-Edition IO Stream
+
+
+
+
+
diff --git a/doc/html/dir_2e1261dd72f7602d2bce8d6f84397156.js b/doc/html/dir_2e1261dd72f7602d2bce8d6f84397156.js
new file mode 100644
index 0000000..be20a76
--- /dev/null
+++ b/doc/html/dir_2e1261dd72f7602d2bce8d6f84397156.js
@@ -0,0 +1,8 @@
+var dir_2e1261dd72f7602d2bce8d6f84397156 =
+[
+ [ "FileInputStream.hpp", "_file_input_stream_8hpp_source.html", null ],
+ [ "FileOutputStream.hpp", "_file_output_stream_8hpp_source.html", null ],
+ [ "InputStream.hpp", "_input_stream_8hpp_source.html", null ],
+ [ "MemoryInputStream.hpp", "_memory_input_stream_8hpp_source.html", null ],
+ [ "OutputStream.hpp", "_output_stream_8hpp_source.html", null ]
+];
\ No newline at end of file
diff --git a/doc/html/dir_419c89b77434d6e715487f16ed3bc020.html b/doc/html/dir_419c89b77434d6e715487f16ed3bc020.html
new file mode 100644
index 0000000..9a7a158
--- /dev/null
+++ b/doc/html/dir_419c89b77434d6e715487f16ed3bc020.html
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: Minecraft-Community-Edition/Core Directory Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
CoroutineScheduler.hpp
+ Simple coroutine scheduler that runs periodic callbacks using SFML time utilities.
+
FunctionContainer.hpp
+
QEventBus.hpp
+ Thread-safe event bus.
+
Thread.hpp
+ High-level Thread wrapper and callable adapters used by the project.
+
ThreadImpl.hpp
+ Platform-specific implementation details for mce::Thread.
+
ThreadManager.hpp
+ Manages lifecycle and bookkeeping for mce::Thread instances.
+
+
+
+
+
+
+
+
+ Minecraft-Community-Edition Core
+
+
+
+
+
diff --git a/doc/html/dir_419c89b77434d6e715487f16ed3bc020.js b/doc/html/dir_419c89b77434d6e715487f16ed3bc020.js
new file mode 100644
index 0000000..6634f87
--- /dev/null
+++ b/doc/html/dir_419c89b77434d6e715487f16ed3bc020.js
@@ -0,0 +1,9 @@
+var dir_419c89b77434d6e715487f16ed3bc020 =
+[
+ [ "CoroutineScheduler.hpp", "_coroutine_scheduler_8hpp.html", "_coroutine_scheduler_8hpp" ],
+ [ "FunctionContainer.hpp", "_function_container_8hpp_source.html", null ],
+ [ "QEventBus.hpp", "_q_event_bus_8hpp.html", "_q_event_bus_8hpp" ],
+ [ "Thread.hpp", "_thread_8hpp.html", "_thread_8hpp" ],
+ [ "ThreadImpl.hpp", "_thread_impl_8hpp.html", "_thread_impl_8hpp" ],
+ [ "ThreadManager.hpp", "_thread_manager_8hpp.html", "_thread_manager_8hpp" ]
+];
\ No newline at end of file
diff --git a/doc/html/dir_45cf80471b1d3bbf34be9f6d25f6c711.html b/doc/html/dir_45cf80471b1d3bbf34be9f6d25f6c711.html
new file mode 100644
index 0000000..f21ca31
--- /dev/null
+++ b/doc/html/dir_45cf80471b1d3bbf34be9f6d25f6c711.html
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: Minecraft-Community-Edition/IO Directory Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
Logger.hpp
+
LoggerSinks.hpp
+
VirtualFileSystem.hpp
+
+
+
+
+
+
+
+
+ Minecraft-Community-Edition IO
+
+
+
+
+
diff --git a/doc/html/dir_45cf80471b1d3bbf34be9f6d25f6c711.js b/doc/html/dir_45cf80471b1d3bbf34be9f6d25f6c711.js
new file mode 100644
index 0000000..7e56cbd
--- /dev/null
+++ b/doc/html/dir_45cf80471b1d3bbf34be9f6d25f6c711.js
@@ -0,0 +1,7 @@
+var dir_45cf80471b1d3bbf34be9f6d25f6c711 =
+[
+ [ "Stream", "dir_2e1261dd72f7602d2bce8d6f84397156.html", "dir_2e1261dd72f7602d2bce8d6f84397156" ],
+ [ "Logger.hpp", "_logger_8hpp_source.html", null ],
+ [ "LoggerSinks.hpp", "_logger_sinks_8hpp_source.html", null ],
+ [ "VirtualFileSystem.hpp", "_virtual_file_system_8hpp_source.html", null ]
+];
\ No newline at end of file
diff --git a/doc/html/dir_689700b57b5533b8ded4c6958bf62271.html b/doc/html/dir_689700b57b5533b8ded4c6958bf62271.html
new file mode 100644
index 0000000..ae776ae
--- /dev/null
+++ b/doc/html/dir_689700b57b5533b8ded4c6958bf62271.html
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: Minecraft-Community-Edition/Graphics/OpenGL Directory Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
GLGraphicsContext.hpp
+
GLRenderer.hpp
+
+
+
+
+
+
+
+
+ Minecraft-Community-Edition Graphics OpenGL
+
+
+
+
+
diff --git a/doc/html/dir_689700b57b5533b8ded4c6958bf62271.js b/doc/html/dir_689700b57b5533b8ded4c6958bf62271.js
new file mode 100644
index 0000000..d392cfd
--- /dev/null
+++ b/doc/html/dir_689700b57b5533b8ded4c6958bf62271.js
@@ -0,0 +1,5 @@
+var dir_689700b57b5533b8ded4c6958bf62271 =
+[
+ [ "GLGraphicsContext.hpp", "_g_l_graphics_context_8hpp_source.html", null ],
+ [ "GLRenderer.hpp", "_g_l_renderer_8hpp_source.html", null ]
+];
\ No newline at end of file
diff --git a/doc/html/dir_9c87e2e2b56f8a634be92c69c4e4bbaf.html b/doc/html/dir_9c87e2e2b56f8a634be92c69c4e4bbaf.html
new file mode 100644
index 0000000..3a6d764
--- /dev/null
+++ b/doc/html/dir_9c87e2e2b56f8a634be92c69c4e4bbaf.html
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
+Minecraft Community Edition: Minecraft-Community-Edition/Graphics Directory Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Minecraft Community Edition 0.1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+
+
+
+
+
+
GraphicsContext.hpp
+
Renderer.hpp
+
+
+
+
+
+
+
+
+ Minecraft-Community-Edition Graphics
+
+
+
+
+
diff --git a/doc/html/dir_9c87e2e2b56f8a634be92c69c4e4bbaf.js b/doc/html/dir_9c87e2e2b56f8a634be92c69c4e4bbaf.js
new file mode 100644
index 0000000..6ea24c9
--- /dev/null
+++ b/doc/html/dir_9c87e2e2b56f8a634be92c69c4e4bbaf.js
@@ -0,0 +1,6 @@
+var dir_9c87e2e2b56f8a634be92c69c4e4bbaf =
+[
+ [ "OpenGL", "dir_689700b57b5533b8ded4c6958bf62271.html", "dir_689700b57b5533b8ded4c6958bf62271" ],
+ [ "GraphicsContext.hpp", "_graphics_context_8hpp_source.html", null ],
+ [ "Renderer.hpp", "_renderer_8hpp_source.html", null ]
+];
\ No newline at end of file
diff --git a/doc/html/doxygen.css b/doc/html/doxygen.css
index 4542163..788923a 100644
--- a/doc/html/doxygen.css
+++ b/doc/html/doxygen.css
@@ -4,101 +4,101 @@ html {
/* page base colors */
--page-background-color: white;
--page-foreground-color: black;
---page-link-color: #110C43;
---page-visited-link-color: #110C43;
---page-external-link-color: #0C082F;
+--page-link-color: #3D578C;
+--page-visited-link-color: #3D578C;
+--page-external-link-color: #334975;
/* index */
---index-odd-item-bg-color: #F0EFFB;
+--index-odd-item-bg-color: #F8F9FC;
--index-even-item-bg-color: white;
--index-header-color: black;
--index-separator-color: #A0A0A0;
/* header */
---header-background-color: #F2F1FC;
---header-separator-color: #877EE6;
---group-header-separator-color: #AFAAEE;
---group-header-color: #0D0934;
+--header-background-color: #F9FAFC;
+--header-separator-color: #C4CFE5;
+--group-header-separator-color: #D9E0EE;
+--group-header-color: #354C7B;
---footer-foreground-color: #080621;
+--footer-foreground-color: #2A3D61;
--footer-logo-width: 75px;
---citation-label-color: #0C082F;
+--citation-label-color: #334975;
--glow-color: cyan;
--title-background-color: white;
---title-separator-color: #877EE6;
+--title-separator-color: #C4CFE5;
---blockquote-background-color: #EDECFB;
---blockquote-border-color: #4033D8;
+--blockquote-background-color: #F7F8FB;
+--blockquote-border-color: #9CAFD4;
---scrollbar-thumb-color: #877EE6;
---scrollbar-background-color: #F2F1FC;
+--scrollbar-thumb-color: #C4CFE5;
+--scrollbar-background-color: #F9FAFC;
---icon-background-color: #281D9D;
+--icon-background-color: #728DC1;
--icon-foreground-color: white;
---icon-folder-open-fill-color: #877EE6;
---icon-folder-fill-color: #ADA7EE;
---icon-folder-border-color: #17115A;
---icon-doc-fill-color: #ADA7EE;
---icon-doc-border-color: #17115A;
+--icon-folder-open-fill-color: #C4CFE5;
+--icon-folder-fill-color: #D8DFEE;
+--icon-folder-border-color: #4665A2;
+--icon-doc-fill-color: #D8DFEE;
+--icon-doc-border-color: #4665A2;
/* brief member declaration list */
---memdecl-background-color: #F2F1FC;
+--memdecl-background-color: #F9FAFC;
--memdecl-foreground-color: #555;
---memdecl-template-color: #17115A;
---memdecl-border-color: #A6A0ED;
+--memdecl-template-color: #4665A2;
+--memdecl-border-color: #D5DDEC;
/* detailed member list */
---memdef-border-color: #5448DC;
---memdef-title-background-color: #C2BEF2;
---memdef-proto-background-color: #DAD7F7;
---memdef-proto-text-color: #060419;
+--memdef-border-color: #A8B8D9;
+--memdef-title-background-color: #E2E8F2;
+--memdef-proto-background-color: #EEF1F7;
+--memdef-proto-text-color: #253555;
--memdef-param-name-color: #602020;
---memdef-template-color: #17115A;
+--memdef-template-color: #4665A2;
/* tables */
---table-cell-border-color: #090725;
---table-header-background-color: #0E0A38;
+--table-cell-border-color: #2D4068;
+--table-header-background-color: #374F7F;
--table-header-foreground-color: #FFFFFF;
/* labels */
---label-background-color: #281D9D;
---label-left-top-border-color: #1D1573;
---label-right-bottom-border-color: #877EE6;
+--label-background-color: #728DC1;
+--label-left-top-border-color: #5373B4;
+--label-right-bottom-border-color: #C4CFE5;
--label-foreground-color: white;
/** navigation bar/tree/menu */
---nav-background-color: #F2F1FC;
---nav-foreground-color: #0D0A35;
---nav-border-color: #877EE6;
---nav-breadcrumb-separator-color: #877EE6;
---nav-breadcrumb-active-bg: #DAD7F7;
---nav-breadcrumb-color: #0D0934;
---nav-splitbar-bg-color: #B4AFEF;
---nav-splitbar-handle-color: #4033D8;
+--nav-background-color: #F9FAFC;
+--nav-foreground-color: #364D7C;
+--nav-border-color: #C4CFE5;
+--nav-breadcrumb-separator-color: #C4CFE5;
+--nav-breadcrumb-active-bg: #EEF1F7;
+--nav-breadcrumb-color: #354C7B;
+--nav-splitbar-bg-color: #DCE2EF;
+--nav-splitbar-handle-color: #9CAFD4;
--nav-font-size-level1: 13px;
--nav-font-size-level2: 10px;
--nav-font-size-level3: 9px;
---nav-text-normal-color: #07051E;
---nav-menu-button-color: #0D0A35;
+--nav-text-normal-color: #283A5D;
+--nav-menu-button-color: #364D7C;
--nav-menu-background-color: white;
--nav-menu-foreground-color: #555555;
---nav-menu-active-bg: #B4AFEF;
---nav-menu-active-color: #4033D8;
---nav-arrow-color: #6D63E1;
---nav-arrow-selected-color: #3426CC;
+--nav-menu-active-bg: #DCE2EF;
+--nav-menu-active-color: #9CAFD4;
+--nav-arrow-color: #B6C4DF;
+--nav-arrow-selected-color: #90A5CE;
/* sync icon */
---sync-icon-border-color: #877EE6;
---sync-icon-background-color: #F2F1FC;
---sync-icon-selected-background-color: #DAD7F7;
---sync-icon-color: #877EE6;
---sync-icon-selected-color: #241B8F;
+--sync-icon-border-color: #C4CFE5;
+--sync-icon-background-color: #F9FAFC;
+--sync-icon-selected-background-color: #EEF1F7;
+--sync-icon-color: #C4CFE5;
+--sync-icon-selected-color: #6884BD;
/* table of contents */
---toc-background-color: #E8E7FA;
---toc-border-color: #ADA7EE;
---toc-header-color: #17115A;
+--toc-background-color: #F4F6FA;
+--toc-border-color: #D8DFEE;
+--toc-header-color: #4665A2;
--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595; ");
/** search field */
@@ -110,12 +110,12 @@ html {
--search-filter-foreground-color: black;
--search-filter-border-color: rgba(150,150,150,.4);
--search-filter-highlight-text-color: white;
---search-filter-highlight-bg-color: #110C43;
---search-results-foreground-color: #140E4F;
+--search-filter-highlight-bg-color: #3D578C;
+--search-results-foreground-color: #425E97;
--search-results-background-color: rgba(255,255,255,.8);
--search-results-backdrop-filter: blur(4px);
--search-results-border-color: rgba(150,150,150,.4);
---search-box-border-color: #6D63E1;
+--search-box-border-color: #B6C4DF;
--search-close-icon-bg-color: #A0A0A0;
--search-close-icon-fg-color: white;
@@ -133,14 +133,14 @@ html {
--code-vhdl-keyword-color: #700070;
--code-vhdl-logic-color: #FF0000;
--fragment-foreground-color: black;
---fragment-background-color: #F7F7FD;
---fragment-border-color: #877EE6;
+--fragment-background-color: #FBFCFD;
+--fragment-border-color: #C4CFE5;
--fragment-lineno-border-color: #00FF00;
--fragment-lineno-background-color: #E8E8E8;
--fragment-lineno-foreground-color: black;
---fragment-lineno-link-fg-color: #17115A;
+--fragment-lineno-link-fg-color: #4665A2;
--fragment-lineno-link-bg-color: #D8D8D8;
---fragment-lineno-link-hover-fg-color: #17115A;
+--fragment-lineno-link-hover-fg-color: #4665A2;
--fragment-lineno-link-hover-bg-color: #C8C8C8;
--fragment-copy-ok-color: #2EC82E;
--fragment-highlight-filter: -3;
@@ -151,7 +151,7 @@ html {
--tooltip-backdrop-filter: blur(3px);
--tooltip-doc-color: grey;
--tooltip-declaration-color: #006318;
---tooltip-link-color: #17115A;
+--tooltip-link-color: #4665A2;
--tooltip-shadow: 0 4px 8px 0 rgba(0,0,0,.25);
--fold-line-color: #808080;
@@ -201,118 +201,118 @@ html {
/* page base colors */
--page-background-color: black;
--page-foreground-color: #C9D1D9;
---page-link-color: #3426CC;
---page-visited-link-color: #3426CC;
---page-external-link-color: #4C3FDA;
+--page-link-color: #90A5CE;
+--page-visited-link-color: #90A5CE;
+--page-external-link-color: #A3B4D7;
/* index */
---index-odd-item-bg-color: #000002;
+--index-odd-item-bg-color: #0B101A;
--index-even-item-bg-color: black;
---index-header-color: #877EE6;
---index-separator-color: #0C082F;
+--index-header-color: #C4CFE5;
+--index-separator-color: #334975;
/* header */
---header-background-color: #000001;
---header-separator-color: #010107;
---group-header-separator-color: #04020F;
---group-header-color: #3426CC;
+--header-background-color: #070B11;
+--header-separator-color: #141C2E;
+--group-header-separator-color: #1D2A43;
+--group-header-color: #90A5CE;
---footer-foreground-color: #20177D;
+--footer-foreground-color: #5B7AB7;
--footer-logo-width: 60px;
---citation-label-color: #3426CC;
+--citation-label-color: #90A5CE;
--glow-color: cyan;
---title-background-color: #000001;
---title-separator-color: #050313;
+--title-background-color: #090D16;
+--title-separator-color: #212F4B;
---blockquote-background-color: #010005;
---blockquote-border-color: #07051E;
+--blockquote-background-color: #101826;
+--blockquote-border-color: #283A5D;
---scrollbar-thumb-color: #090623;
---scrollbar-background-color: #000001;
+--scrollbar-thumb-color: #2C3F65;
+--scrollbar-background-color: #070B11;
---icon-background-color: #0C082F;
---icon-foreground-color: #877EE6;
---icon-folder-open-fill-color: #17115A;
---icon-folder-fill-color: #1D1573;
---icon-folder-border-color: #877EE6;
---icon-doc-fill-color: #241B8F;
---icon-doc-border-color: #877EE6;
+--icon-background-color: #334975;
+--icon-foreground-color: #C4CFE5;
+--icon-folder-open-fill-color: #4665A2;
+--icon-folder-fill-color: #5373B4;
+--icon-folder-border-color: #C4CFE5;
+--icon-doc-fill-color: #6884BD;
+--icon-doc-border-color: #C4CFE5;
/* brief member declaration list */
---memdecl-background-color: #000002;
+--memdecl-background-color: #0B101A;
--memdecl-foreground-color: #BBB;
---memdecl-template-color: #2C20AC;
---memdecl-border-color: #050416;
+--memdecl-template-color: #7C95C6;
+--memdecl-border-color: #233250;
/* detailed member list */
---memdef-border-color: #050416;
---memdef-title-background-color: #03020E;
---memdef-proto-background-color: #03020C;
---memdef-proto-text-color: #4235D8;
+--memdef-border-color: #233250;
+--memdef-title-background-color: #1B2840;
+--memdef-proto-background-color: #19243A;
+--memdef-proto-text-color: #9DB0D4;
--memdef-param-name-color: #D28757;
---memdef-template-color: #2C20AC;
+--memdef-template-color: #7C95C6;
/* tables */
---table-cell-border-color: #07051E;
---table-header-background-color: #07051E;
---table-header-foreground-color: #877EE6;
+--table-cell-border-color: #283A5D;
+--table-header-background-color: #283A5D;
+--table-header-foreground-color: #C4CFE5;
/* labels */
---label-background-color: #0D0934;
---label-left-top-border-color: #17115A;
---label-right-bottom-border-color: #07051E;
+--label-background-color: #354C7B;
+--label-left-top-border-color: #4665A2;
+--label-right-bottom-border-color: #283A5D;
--label-foreground-color: #CCCCCC;
/** navigation bar/tree/menu */
---nav-background-color: #010005;
---nav-foreground-color: #0D0A35;
---nav-border-color: #050313;
---nav-breadcrumb-separator-color: #050313;
---nav-breadcrumb-active-bg: #04020F;
---nav-breadcrumb-color: #3426CC;
---nav-splitbar-bg-color: #07051E;
---nav-splitbar-handle-color: #17115A;
+--nav-background-color: #101826;
+--nav-foreground-color: #364D7C;
+--nav-border-color: #212F4B;
+--nav-breadcrumb-separator-color: #212F4B;
+--nav-breadcrumb-active-bg: #1D2A43;
+--nav-breadcrumb-color: #90A5CE;
+--nav-splitbar-bg-color: #283A5D;
+--nav-splitbar-handle-color: #4665A2;
--nav-font-size-level1: 13px;
--nav-font-size-level2: 10px;
--nav-font-size-level3: 9px;
---nav-text-normal-color: #6D63E1;
---nav-menu-button-color: #6D63E1;
---nav-menu-background-color: #000000;
+--nav-text-normal-color: #B6C4DF;
+--nav-menu-button-color: #B6C4DF;
+--nav-menu-background-color: #05070C;
--nav-menu-foreground-color: #BBBBBB;
---nav-menu-active-bg: #04020F;
---nav-menu-active-color: #9088E8;
---nav-arrow-color: #17115A;
---nav-arrow-selected-color: #241B8F;
+--nav-menu-active-bg: #1D2A43;
+--nav-menu-active-color: #C9D3E7;
+--nav-arrow-color: #4665A2;
+--nav-arrow-selected-color: #6884BD;
/* sync icon */
---sync-icon-border-color: #050313;
---sync-icon-background-color: #010005;
---sync-icon-selected-background-color: #04020F;
---sync-icon-color: #17115A;
---sync-icon-selected-color: #1D1573;
+--sync-icon-border-color: #212F4B;
+--sync-icon-background-color: #101826;
+--sync-icon-selected-background-color: #1D2A43;
+--sync-icon-color: #4665A2;
+--sync-icon-selected-color: #5373B4;
/* table of contents */
---toc-background-color: #020108;
---toc-border-color: #040313;
---toc-header-color: #4C3FDA;
+--toc-background-color: #151E30;
+--toc-border-color: #202E4A;
+--toc-header-color: #A3B4D7;
--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595; ");
/** search field */
--search-background-color: black;
--search-foreground-color: #C5C5C5;
--search-active-color: #F5F5F5;
---search-filter-background-color: #010005;
---search-filter-foreground-color: #3426CC;
+--search-filter-background-color: #101826;
+--search-filter-foreground-color: #90A5CE;
--search-filter-backdrop-filter: none;
---search-filter-border-color: #2C20AC;
---search-filter-highlight-text-color: #786EE3;
---search-filter-highlight-bg-color: #07051E;
+--search-filter-border-color: #7C95C6;
+--search-filter-highlight-text-color: #BCC9E2;
+--search-filter-highlight-bg-color: #283A5D;
--search-results-background-color: black;
---search-results-foreground-color: #3426CC;
+--search-results-foreground-color: #90A5CE;
--search-results-backdrop-filter: none;
---search-results-border-color: #0C082F;
---search-box-border-color: #0C082F;
+--search-results-border-color: #334975;
+--search-box-border-color: #334975;
--search-close-icon-bg-color: #909090;
--search-close-icon-fg-color: black;
@@ -330,7 +330,7 @@ html {
--code-vhdl-keyword-color: #CF53C9;
--code-vhdl-logic-color: #FF0000;
--fragment-foreground-color: #C9D1D9;
---fragment-background-color: #000001;
+--fragment-background-color: #090D16;
--fragment-border-color: #30363D;
--fragment-lineno-border-color: #30363D;
--fragment-lineno-background-color: black;
diff --git a/doc/html/doxygen.svg b/doc/html/doxygen.svg
index 59c76de..79a7635 100644
--- a/doc/html/doxygen.svg
+++ b/doc/html/doxygen.svg
@@ -4,15 +4,15 @@
-
-
+
+
-
-
+
+
@@ -21,7 +21,7 @@
-
+
diff --git a/doc/html/doxygen_crawl.html b/doc/html/doxygen_crawl.html
index 121836e..a572202 100644
--- a/doc/html/doxygen_crawl.html
+++ b/doc/html/doxygen_crawl.html
@@ -8,7 +8,6 @@
-
@@ -17,13 +16,11 @@
-
-
@@ -35,141 +32,163 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
@@ -177,66 +196,58 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+