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 
28 class VTKREMOTINGSERVERMANAGER_EXPORT vtkSMStateLoader : public vtkSMDeserializerXML
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
vtkSMDeserializerXML
deserializes proxies from their XML states.
Definition: vtkSMDeserializerXML.h:22
vtkSMDeserializerXML.h
vtkSMStateLoader::KeepIdMapping
int KeepIdMapping
Definition: vtkSMStateLoader.h:155
vtkSMDeserializerXML::LocateProxyElement
virtual vtkPVXMLElement * LocateProxyElement(vtkTypeUInt32 id)
Locate the XML for the proxy with the given id.
vtkSMDeserializerXML::CreatedNewProxy
virtual void CreatedNewProxy(vtkTypeUInt32 id, vtkSMProxy *proxy)
Called after a new proxy has been created.
vtkSMProxy
proxy for a VTK object(s) on a server
Definition: vtkSMProxy.h:140
vtkSMDeserializerXML::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
vtkSMDeserializerXML::New
static vtkSMDeserializerXML * New()
vtkIndent
vtkSMDeserializerXML::CreateProxy
vtkSMProxy * CreateProxy(const char *xmlgroup, const char *xmlname, const char *subProxyName=nullptr) override
Create a new proxy of the given group and name.
vtkSMStateLoader::ProxyLocator
vtkSMProxyLocator * ProxyLocator
Definition: vtkSMStateLoader.h:154
vtkSMStateLoader
Utility class to load state from XML.
Definition: vtkSMStateLoader.h:28
vtkPVXMLElement
Definition: vtkPVXMLElement.h:23
vtkSMStateLoader::ServerManagerStateElement
vtkPVXMLElement * ServerManagerStateElement
Definition: vtkSMStateLoader.h:153
vtkSMProxyLocator
is used to locate proxies referred to in state xmls while loading state files.
Definition: vtkSMProxyLocator.h:24