vtkSMPropertyLink.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: ParaView
4  Module: vtkSMPropertyLink.h
5 
6  Copyright (c) Kitware, Inc.
7  All rights reserved.
8  See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
23 #ifndef vtkSMPropertyLink_h
24 #define vtkSMPropertyLink_h
25 
26 #include "vtkRemotingServerManagerModule.h" //needed for exports
27 #include "vtkSMLink.h"
28 
29 class vtkSMProperty;
30 class vtkSMPropertyLinkInternals;
31 class vtkSMPropertyLinkObserver;
32 
34 {
35 public:
36  static vtkSMPropertyLink* New();
37  vtkTypeMacro(vtkSMPropertyLink, vtkSMLink);
38  void PrintSelf(ostream& os, vtkIndent indent) override;
39 
41 
50  void AddLinkedProperty(vtkSMProxy* proxy, const char* propertyname, int updateDir);
51  void RemoveLinkedProperty(vtkSMProxy* proxy, const char* propertyname);
53 
55 
58  unsigned int GetNumberOfLinkedObjects() override;
59  unsigned int GetNumberOfLinkedProperties();
61 
65  vtkSMProxy* GetLinkedProxy(int index) override;
66 
70  const char* GetLinkedPropertyName(int index);
71 
73 
77  int GetLinkedObjectDirection(int index) override;
78  int GetLinkedPropertyDirection(int index);
80 
84  void RemoveAllLinks() override;
85 
93  void LoadState(const vtkSMMessage* msg, vtkSMProxyLocator* locator) override;
94 
95 protected:
97  ~vtkSMPropertyLink() override;
98 
102  void Synchronize();
103 
104  friend class vtkSMPropertyLinkInternals;
105  friend class vtkSMPropertyLinkObserver;
106 
110  int LoadXMLState(vtkPVXMLElement* linkElement, vtkSMProxyLocator* locator) override;
111 
115  void SaveXMLState(const char* linkname, vtkPVXMLElement* parent) override;
116 
117  void UpdateVTKObjects(vtkSMProxy* caller) override;
118  void PropertyModified(vtkSMProxy* caller, const char* pname) override;
119  void UpdateProperty(vtkSMProxy* caller, const char* pname) override;
120 
124  void UpdateState() override;
125 
126 private:
127  vtkSMPropertyLinkInternals* Internals;
128  bool ModifyingProperty;
129 
130  vtkSMPropertyLink(const vtkSMPropertyLink&) = delete;
131  void operator=(const vtkSMPropertyLink&) = delete;
132 };
133 
134 #endif
#define VTKREMOTINGSERVERMANAGER_EXPORT
superclass for all SM properties
Header class that setup every thing in order to use Protobuf messages in a transparent manner...
proxy for a VTK object(s) on a server
Definition: vtkSMProxy.h:152
is used to locate proxies referred to in state xmls while loading state files.
This is used by vtkPVXMLParser to represent an XML document starting at the root element.
static vtkSMSessionObject * New()