Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
Watchdog.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/script_core/runtime/watchdog/scripting/IWatchdog.h"
7
8// auto generated forward declare list
9// clang-format off
10struct JSContext;
11namespace Scripting { struct ContextId; }
12namespace Scripting { struct WatchdogEvent; }
13namespace Scripting::QuickJS { class ContextTimings; }
14// clang-format on
15
16namespace Scripting::QuickJS {
17
18class Watchdog : public ::Scripting::IWatchdog {
19public:
20 // member variables
21 // NOLINTBEGIN
33 // NOLINTEND
34
35public:
36 // prevent constructor by default
37 Watchdog& operator=(Watchdog const&);
38 Watchdog(Watchdog const&);
39 Watchdog();
40
41public:
42 // virtual functions
43 // NOLINTBEGIN
44 virtual ~Watchdog() /*override*/ = default;
45
46 virtual void
47 setWatchdogEventHandler(::std::function<void(::Scripting::WatchdogEvent)> watchdogEventHandler) /*override*/;
48
49 virtual void setWatchdogInterruptPollCounter(uint counter) /*override*/;
50
51 virtual void beginTiming(::Scripting::ContextId contextId) /*override*/;
52
53 virtual void endTiming(::Scripting::ContextId contextId) /*override*/;
54
55 virtual void pushPhase(::std::string const& namedPhase, ::std::chrono::microseconds frameBaseLine) /*override*/;
56
57 virtual void popPhase() /*override*/;
58
59 virtual void endFrame() /*override*/;
60
61 virtual void resetTimings() /*override*/;
62 // NOLINTEND
63
64public:
65 // member functions
66 // NOLINTBEGIN
67 MCNAPI ::Scripting::QuickJS::ContextTimings& _getOrCreateContextTime(::Scripting::ContextId contextId);
68
70 // NOLINTEND
71
72public:
73 // static functions
74 // NOLINTBEGIN
75 MCNAPI static void _outOfMemoryHandler(::JSContext* ctx, void* runtimeOpaque);
76
77 MCNAPI static int _stackOverflowHandler(::JSContext* ctx, void* runtimeOpaque);
78
79 MCNAPI static int _timeoutHandler(::JSContext* ctx, void* runtimeOpaque);
80 // NOLINTEND
81
82public:
83 // virtual function thunks
84 // NOLINTBEGIN
85 MCNAPI void $setWatchdogEventHandler(::std::function<void(::Scripting::WatchdogEvent)> watchdogEventHandler);
86
87 MCNAPI void $setWatchdogInterruptPollCounter(uint counter);
88
89 MCNAPI void $beginTiming(::Scripting::ContextId contextId);
90
91 MCNAPI void $endTiming(::Scripting::ContextId contextId);
92
93 MCNAPI void $pushPhase(::std::string const& namedPhase, ::std::chrono::microseconds frameBaseLine);
94
95 MCNAPI void $popPhase();
96
97 MCNAPI void $endFrame();
98
99 MCNAPI void $resetTimings();
100
101
102 // NOLINTEND
103};
104
105} // namespace Scripting::QuickJS
Definition IWatchdog.h:13
Definition ContextTimings.h:7
MCAPI void $endTiming(::Scripting::ContextId contextId)
MCAPI void $setWatchdogInterruptPollCounter(uint counter)
MCAPI void $beginTiming(::Scripting::ContextId contextId)
MCAPI void $pushPhase(::std::string const &namedPhase, ::std::chrono::microseconds frameBaseLine)
MCAPI void $setWatchdogEventHandler(::std::function< void(::Scripting::WatchdogEvent)> watchdogEventHandler)
static MCAPI int _timeoutHandler(::JSContext *ctx, void *runtimeOpaque)
MCAPI::Scripting::QuickJS::ContextTimings & _getOrCreateContextTime(::Scripting::ContextId contextId)
static MCAPI void _outOfMemoryHandler(::JSContext *ctx, void *runtimeOpaque)
MCAPI void _sendWatchdogEvent(::Scripting::WatchdogEvent watchdogEvent)
static MCAPI int _stackOverflowHandler(::JSContext *ctx, void *runtimeOpaque)
Definition JSContext.h:5
Definition ContextId.h:7
Definition WatchdogEvent.h:7
Definition ctx.h:5
Definition Alias.h:14