Vuo  2.3.2
VuoCompositionDiff.hh
Go to the documentation of this file.
1 
10 #pragma once
11 
12 class VuoRuntimeState;
13 #include "VuoCompositionState.h"
14 
19 {
20 public:
25  {
31  ChangeMove
32  };
33 
34 private:
35  char *diff;
36 
37  static string joinPortIdentifier(const string &nodeIdentifier, const string &portName);
38  static string convertIdentifierToPath(const char *compositionIdentifier, const char *nodeIdentifier);
39  static void convertPathToIdentifier(const char *nodePath, string &compositionIdentifier, string &nodeIdentifier);
40 
41 public:
42  VuoCompositionDiff(void);
43  ~VuoCompositionDiff(void);
44  void setDiff(char *diff);
45  ChangeType findNode(const char *compositionIdentifier, const char *nodeIdentifier, json_object **replacementObj);
46  bool isNodeBeingRemovedOrReplaced(const char *compositionIdentifier, const char *nodeIdentifier, json_object **replacementObj);
47  bool isNodeBeingAddedOrReplaced(const char *compositionIdentifier, const char *nodeIdentifier, json_object **replacementObj);
48  bool isPortBeingReplaced(const char *portName, json_object *replacementObj);
49  bool isPortReplacingAnother(const char *portName, json_object *replacementObj, string &oldNodeIdentifier, string &oldPortIdentifier);
50  bool isNodeBeingMovedToHere(const char *newCompositionIdentifier, const char *nodeIdentifier, json_object *replacementObj, string &oldCompositionIdentifier);
51  bool isPortBeingCopied(const char *portName, json_object *replacementObj, string &destinationCompositionIdentifier, string &destinationPortIdentifier);
53 };
54 
55 extern "C"
56 {
57 void vuoSetCompositionDiff(VuoCompositionState *compositionState, char *diff);
58 bool vuoIsNodeBeingRemovedOrReplaced(VuoCompositionState *compositionState, const char *nodeIdentifier, json_object **replacementObj);
59 bool vuoIsNodeBeingAddedOrReplaced(VuoCompositionState *compositionState, const char *nodeIdentifier, json_object **replacementObj);
60 }