vtkSMStateLoader.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Kitware Inc.
2 // SPDX-License-Identifier: BSD-3-Clause
13 #ifndef vtkSMStateLoader_h
14 #define vtkSMStateLoader_h
15 
16 #include "vtkRemotingServerManagerModule.h" //needed for exports
17 #include "vtkSMDeserializerXML.h"
18 
19 #include <map> // needed for API
20 #include <string> // needed for API
21 
22 class vtkPVXMLElement;
23 class vtkSMProxy;
24 class vtkSMProxyLocator;
25 
26 struct vtkSMStateLoaderInternals;
27 
29 {
30 public:
31  static vtkSMStateLoader* New();
33  void PrintSelf(ostream& os, vtkIndent indent) override;
34 
38  int LoadState(vtkPVXMLElement* rootElement, bool keepOriginalId = false);
39 
41 
45  void SetProxyLocator(vtkSMProxyLocator* loc);
46  vtkGetObjectMacro(ProxyLocator, vtkSMProxyLocator);
48 
50 
54  vtkSetMacro(KeepIdMapping, int);
55  vtkGetMacro(KeepIdMapping, int);
56  vtkBooleanMacro(KeepIdMapping, int);
58 
60 
66  vtkTypeUInt32* GetMappingArray(int& size);
67 
68 protected:
70  ~vtkSMStateLoader() override;
72 
79  virtual int LoadStateInternal(vtkPVXMLElement* rootElement);
80 
92  void CreatedNewProxy(vtkTypeUInt32 id, vtkSMProxy* proxy) override;
93 
99  const char* xmlgroup, const char* xmlname, const char* subProxyName = nullptr) override;
100 
101  virtual int HandleProxyCollection(vtkPVXMLElement* collectionElement);
102  virtual void HandleCustomProxyDefinitions(vtkPVXMLElement* element);
103  int HandleLinks(vtkPVXMLElement* linksElement);
104  virtual int BuildProxyCollectionInformation(vtkPVXMLElement*);
105 
107 
114  virtual void RegisterProxy(vtkTypeUInt32 id, vtkSMProxy* proxy);
115  virtual void RegisterProxyInternal(const char* group, const char* name, vtkSMProxy* proxy);
117 
127  virtual bool UpdateRegistrationInfo(std::string& group, std::string& name, vtkSMProxy* proxy);
128 
134  vtkPVXMLElement* LocateProxyElement(vtkTypeUInt32 id) override;
135 
140  vtkPVXMLElement* LocateProxyElementInternal(vtkPVXMLElement* root, vtkTypeUInt32 id);
141 
145  virtual bool VerifyXMLVersion(vtkPVXMLElement* rootElement);
146 
151  vtkSMProxy* LocateExistingProxyUsingRegistrationName(vtkTypeUInt32 id);
152 
156 
157 private:
158  vtkSMStateLoader(const vtkSMStateLoader&) = delete;
159  void operator=(const vtkSMStateLoader&) = delete;
160 
161  vtkSMStateLoaderInternals* Internal;
162 };
163 
164 #endif
vtkSMProxy * CreateProxy(const char *xmlgroup, const char *xmlname, const char *subProxyName=nullptr) override
Create a new proxy of the given group and name.
vtkPVXMLElement * ServerManagerStateElement
vtkSMProxyLocator * ProxyLocator
void PrintSelf(ostream &os, vtkIndent indent) override
#define VTKREMOTINGSERVERMANAGER_EXPORT
virtual void CreatedNewProxy(vtkTypeUInt32 id, vtkSMProxy *proxy)
Called after a new proxy has been created.
static vtkSMDeserializerXML * New()
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.
deserializes proxies from their XML states.
Utility class to load state from XML.
This is used by vtkPVXMLParser to represent an XML document starting at the root element.
virtual vtkPVXMLElement * LocateProxyElement(vtkTypeUInt32 id)
Locate the XML for the proxy with the given id.