vtkSMSettingsProxy.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Kitware Inc.
2 // SPDX-License-Identifier: BSD-3-Clause
53 #ifndef vtkSMSettingsProxy_h
54 #define vtkSMSettingsProxy_h
55 
56 #include "vtkRemotingServerManagerModule.h" //needed for exports
57 #include "vtkSMProxy.h"
58 
60 {
61 public:
62  static vtkSMSettingsProxy* New();
64  void PrintSelf(ostream& os, vtkIndent indent) override;
65 
71 
73 
76  static void ProcessPropertyLinks(vtkSMProxy* proxy);
78 
80 
85  void AddLink(const char* sourceProperty, vtkSMProxy* target, const char* targetProperty,
86  bool unlink_if_modified);
87  void RemoveLink(const char* sourceProperty, vtkSMProxy* target, const char* targetProperty);
89 
94  const char* GetSourcePropertyName(vtkSMProxy* target, const char* targetProperty);
95 
97 
100  void SaveLinksState(vtkPVXMLElement* root);
101  void LoadLinksState(vtkPVXMLElement* root, vtkSMProxyLocator* locator);
103 
105 
108  vtkSetMacro(IsSerializable, bool);
109  vtkGetMacro(IsSerializable, bool);
111 
112 protected:
114  ~vtkSMSettingsProxy() override;
115 
119  void CreateVTKObjects() override;
120 
121  void SetPropertyModifiedFlag(const char* name, int flag) override;
122 
123 private:
124  vtkSMSettingsProxy(const vtkSMSettingsProxy&) = delete;
125  void operator=(const vtkSMSettingsProxy&) = delete;
126 
130  void VTKObjectModified();
131 
132  void AutoBreakMapPropertyLink(vtkObject*, unsigned long, void*);
133 
134  unsigned long VTKObjectObserverId = 0;
135  bool IsSerializable = false;
136 
137  class vtkInternals;
138  vtkInternals* Internals;
139 };
140 
141 #endif
void PrintSelf(ostream &os, vtkIndent indent) override
#define VTKREMOTINGSERVERMANAGER_EXPORT
virtual int ReadXMLAttributes(vtkSMSessionProxyManager *pm, vtkPVXMLElement *element)
Read attributes from an XML element.
virtual void SetPropertyModifiedFlag(const char *name, int flag)
Note on property modified flags: The modified flag of each property associated with a proxy is stored...
proxy subclass responsible for linking settings proxies and settings classes on the VTK side...
The vtkSMSessionProxyManager is esponsible for creating and managing proxies for a given session...
static vtkSMProxy * New()
virtual void CreateVTKObjects()
Given a class name (by setting VTKClassName) and server ids (by setting ServerIDs), this methods instantiates the objects on the server(s)
proxy for a VTK object(s) on a server
Definition: vtkSMProxy.h:140
is used to locate proxies referred to in state xmls while loading state files.
void operator=(const vtkSMProxy &)=delete
vtkSMProxyInternals * Internals
Definition: vtkSMProxy.h:1002
This is used by vtkPVXMLParser to represent an XML document starting at the root element.