Vuo 2.4.4
Loading...
Searching...
No Matches
VuoRuntimeState.hh
Go to the documentation of this file.
1
10#pragma once
11
13#include "VuoCompositionState.h"
14
20{
21private:
22 bool _isPaused;
23 bool hasBeenUnpaused;
24 bool _isStopped;
25 bool wasStopCompositionCalled;
26 bool continueIfRunnerDies;
27
28 pid_t runnerPid;
29
30 int terminationDisabledCount;
31 dispatch_queue_t terminationDisabledQueue;
32
33 dispatch_queue_t stopQueue;
34
35 dispatch_source_t waitForStopTimer;
36 dispatch_semaphore_t waitForStopCanceledSemaphore;
37
39
42 typedef void (*vuoSetupType)(void);
43 vuoSetupType vuoSetup;
44 typedef void (*vuoCleanupType)(void);
45 vuoCleanupType vuoCleanup;
46 typedef void (*vuoInstanceInitType)(void);
47 vuoInstanceInitType vuoInstanceInit;
48 typedef void (*vuoInstanceFiniType)(void);
49 vuoInstanceFiniType vuoInstanceFini;
50 typedef void (*vuoInstanceTriggerStartType)(void);
51 vuoInstanceTriggerStartType vuoInstanceTriggerStart;
52 typedef void (*vuoInstanceTriggerStopType)(void);
53 vuoInstanceTriggerStopType vuoInstanceTriggerStop;
55
56 bool isRunnerInCurrentProcess(void);
57 bool mayBeTerminated(void);
58 void stopComposition(bool isBeingReplaced, int timeoutInSeconds);
59 void killProcessAfterTimeout(int timeoutInSeconds);
60
61public:
63
64 VuoRuntimeState(void);
65 ~VuoRuntimeState(void);
66 void init(void *zmqContext, const char *controlUrl, const char *telemetryUrl, bool isPaused,
67 pid_t runnerPid, int runnerPipe, bool continueIfRunnerDies, const char *workingDirectory, void *compositionBinaryHandle);
68 void fini(void);
69 void updateCompositionSymbols(void *compositionBinaryHandle);
70 bool isPaused(void);
71 bool isStopped(void);
72 pid_t getRunnerPid(void);
73 void disableTermination(void);
74 void enableTermination(void);
75
76 void startComposition(void);
77 void pauseComposition(void);
78 void unpauseComposition(void);
79 void stopCompositionAsOrderedByRunner(bool isBeingReplaced, int timeoutInSeconds);
81 void breakOutOfEventLoop(void);
82};
83
84extern "C"
85{
86bool vuoIsPaused(VuoCompositionState *compositionState);
87}