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/scripting/runtime/watchdog/IWatchdog.h"
7
8// auto generated forward declare list
9// clang-format off
10struct JSContext;
11struct JSRuntime;
12namespace Scripting { struct ContextId; }
13namespace Scripting { struct WatchdogEvent; }
14namespace Scripting { struct WatchdogSettings; }
15namespace Scripting::QuickJS { class ContextTimings; }
16// clang-format on
17
18namespace Scripting::QuickJS {
19
20class Watchdog : public ::Scripting::IWatchdog {
21public:
22 // member variables
23 // NOLINTBEGIN
35 // NOLINTEND
36
37public:
38 // prevent constructor by default
39 Watchdog& operator=(Watchdog const&);
40 Watchdog(Watchdog const&);
41 Watchdog();
42
43public:
44 // virtual functions
45 // NOLINTBEGIN
46 virtual ~Watchdog() /*override*/;
47
48 virtual void
49 setWatchdogEventHandler(::std::function<void(::Scripting::WatchdogEvent)> watchdogEventHandler) /*override*/;
50
51 virtual void setWatchdogInterruptPollCounter(uint counter) /*override*/;
52
53 virtual void beginTiming(::Scripting::ContextId contextId) /*override*/;
54
55 virtual void endTiming(::Scripting::ContextId contextId) /*override*/;
56
57 virtual void pushPhase(::std::string const& namedPhase, ::std::chrono::microseconds frameBaseLine) /*override*/;
58
59 virtual void popPhase() /*override*/;
60
61 virtual void endFrame() /*override*/;
62
63 virtual void resetTimings() /*override*/;
64 // NOLINTEND
65
66public:
67 // member functions
68 // NOLINTBEGIN
70
72
73 MCNAPI ::Scripting::QuickJS::ContextTimings& _getOrCreateContextTime(::Scripting::ContextId contextId);
74
76 // NOLINTEND
77
78public:
79 // static functions
80 // NOLINTBEGIN
81 MCNAPI static void _outOfMemoryHandler(::JSContext* ctx, void* runtimeOpaque);
82
83 MCNAPI static int _stackOverflowHandler(::JSContext* ctx, void* runtimeOpaque);
84
85 MCNAPI static int _timeoutHandler(::JSContext* ctx, void* runtimeOpaque);
86 // NOLINTEND
87
88public:
89 // constructor thunks
90 // NOLINTBEGIN
91 MCNAPI void* $ctor(::JSRuntime* rt, ::Scripting::WatchdogSettings settings);
92 // NOLINTEND
93
94public:
95 // destructor thunk
96 // NOLINTBEGIN
97 MCNAPI void $dtor();
98 // NOLINTEND
99
100public:
101 // virtual function thunks
102 // NOLINTBEGIN
103 MCNAPI void $setWatchdogEventHandler(::std::function<void(::Scripting::WatchdogEvent)> watchdogEventHandler);
104
105 MCNAPI void $setWatchdogInterruptPollCounter(uint counter);
106
107 MCNAPI void $beginTiming(::Scripting::ContextId contextId);
108
109 MCNAPI void $endTiming(::Scripting::ContextId contextId);
110
111 MCNAPI void $pushPhase(::std::string const& namedPhase, ::std::chrono::microseconds frameBaseLine);
112
113 MCNAPI void $popPhase();
114
115 MCNAPI void $endFrame();
116
117 MCNAPI void $resetTimings();
118
119
120 // NOLINTEND
121
122public:
123 // vftables
124 // NOLINTBEGIN
125 MCNAPI static void** $vftable();
126 // NOLINTEND
127};
128
129} // namespace Scripting::QuickJS
Definition IWatchdog.h:16
Definition ContextTimings.h:7
MCAPI void $endTiming(::Scripting::ContextId contextId)
MCAPI Watchdog(::JSRuntime *rt, ::Scripting::WatchdogSettings settings)
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 _endContextTiming(::Scripting::ContextId contextId)
MCAPI void _sendWatchdogEvent(::Scripting::WatchdogEvent watchdogEvent)
MCAPI void * $ctor(::JSRuntime *rt, ::Scripting::WatchdogSettings settings)
static MCAPI void ** $vftable()
static MCAPI int _stackOverflowHandler(::JSContext *ctx, void *runtimeOpaque)
Definition JSContext.h:5
Definition JSRuntime.h:8
Definition ContextId.h:7
Definition WatchdogEvent.h:11
Definition WatchdogSettings.h:7
Definition ctx.h:5
Definition Alias.h:14