Vuo 2.4.4
Loading...
Searching...
No Matches
VuoNodeSynchronization.hh
Go to the documentation of this file.
1
10#pragma once
11
12#include <mutex>
13#include "VuoCompositionState.h"
14#include "VuoRuntimeContext.hh"
15
20{
21public:
22 void lockNodes(VuoCompositionState *compositionState, unsigned long *nodeIndices, unsigned long nodeCount, unsigned long eventId);
23 void lockNode(VuoCompositionState *compositionState, unsigned long nodeIndex, unsigned long eventId);
24 void unlockNodes(VuoCompositionState *compositionState, unsigned long *nodeIndices, unsigned long nodeCount);
25 void unlockNode(VuoCompositionState *compositionState, unsigned long nodeIndex);
26
27private:
28 void recordWaiting(VuoCompositionState *compositionState, unsigned long eventId, unsigned long nodeIndex);
29 void recordLocked(VuoCompositionState *compositionState, unsigned long eventId, unsigned long nodeIndex);
30 void recordUnlocked(VuoCompositionState *compositionState, unsigned long eventId, unsigned long nodeIndex);
31 void print(void);
32
34
37 map<string, map<unsigned long, vector<unsigned long>>> statusLocked;
38 map<string, map<unsigned long, vector<unsigned long>>> statusWaiting;
39 std::mutex statusMutex;
41};
42
43extern "C"
44{
45void vuoLockNodes(VuoCompositionState *compositionState, unsigned long *nodeIndices, unsigned long nodeCount, unsigned long eventId);
46void vuoLockNode(VuoCompositionState *compositionState, unsigned long nodeIndex, unsigned long eventId);
47void vuoUnlockNodes(VuoCompositionState *compositionState, unsigned long *nodeIndices, unsigned long nodeCount);
48void vuoUnlockNode(VuoCompositionState *compositionState, unsigned long nodeIndex);
49}