00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00029 #ifndef __vtkSMProxyManager_h
00030 #define __vtkSMProxyManager_h
00031
00032 #include "vtkSMObject.h"
00033
00034 class vtkPVXMLElement;
00035 class vtkSMProperty;
00036 class vtkSMProxy;
00037
00038 struct vtkSMProxyManagerInternals;
00039
00040
00041 class VTK_EXPORT vtkSMProxyManager : public vtkSMObject
00042 {
00043 public:
00044 static vtkSMProxyManager* New();
00045 vtkTypeRevisionMacro(vtkSMProxyManager, vtkSMObject);
00046 void PrintSelf(ostream& os, vtkIndent indent);
00047
00054 vtkSMProxy* NewProxy(const char* groupName, const char* proxyName);
00055
00066 void RegisterProxy(const char* groupname, const char* name, vtkSMProxy* proxy);
00067
00069
00071 vtkSMProxy* GetProxy(const char* groupname, const char* name);
00072 vtkSMProxy* GetProxy(const char* name);
00074
00076 unsigned int GetNumberOfProxies(const char* groupname);
00077
00080 const char* GetProxyName(const char* groupname, unsigned int idx);
00081
00084 const char* GetProxyName(const char* groupname, vtkSMProxy* proxy);
00085
00089 const char* IsProxyInGroup(vtkSMProxy* proxy, const char* groupname);
00090
00092
00094 void UnRegisterProxy(const char* groupname, const char* name);
00095 void UnRegisterProxy(const char* name);
00097
00099 void UnRegisterProxies();
00100
00102
00103 void UpdateRegisteredProxies(const char* groupname);
00104 void UpdateRegisteredProxies();
00106
00110 void SaveState(const char* filename);
00111
00114 virtual void SaveState(const char*, ostream*, vtkIndent);
00115
00118 void InstantiateGroupPrototypes(const char* groupName);
00119
00121 unsigned int GetNumberOfXMLGroups();
00122
00124 const char* GetXMLGroupName(unsigned int n);
00125
00128 int ProxyElementExists(const char* groupName, const char* proxyName);
00129
00130 protected:
00131 vtkSMProxyManager();
00132 ~vtkSMProxyManager();
00133
00135
00137 void AddElement(
00138 const char* groupName, const char* name, vtkPVXMLElement* element);
00140
00141
00142 friend class vtkSMXMLParser;
00143 friend class vtkSMProxyIterator;
00144 friend class vtkSMProxy;
00145
00146
00149 vtkSMProxy* NewProxy(vtkPVXMLElement* element, const char* groupname);
00150
00152
00154 vtkPVXMLElement* GetProxyElement(const char* groupName,
00155 const char* proxyName);
00157
00158 private:
00159 vtkSMProxyManagerInternals* Internals;
00160
00161 private:
00162 vtkSMProxyManager(const vtkSMProxyManager&);
00163 void operator=(const vtkSMProxyManager&);
00164 };
00165
00166 #endif