00001 /*========================================================================= 00002 00003 Program: ParaView 00004 Module: $RCSfile: vtkSMProxyManagerInternals.h,v $ 00005 00006 Copyright (c) Kitware, Inc. 00007 All rights reserved. 00008 See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00015 00016 #ifndef __vtkSMProxyManagerInternals_h 00017 #define __vtkSMProxyManagerInternals_h 00018 00019 #include "vtkPVXMLElement.h" 00020 #include "vtkSMProxy.h" 00021 #include "vtkSmartPointer.h" 00022 00023 #include <vtkstd/map> 00024 #include "vtkStdString.h" 00025 00026 // Sub-classed to avoid symbol length explosion. 00027 class vtkSMProxyManagerElementMapType: 00028 public vtkstd::map<vtkStdString, vtkSmartPointer<vtkPVXMLElement> > {}; 00029 00030 class vtkSMProxyManagerProxyMapType: 00031 public vtkstd::map<vtkStdString, vtkSmartPointer<vtkSMProxy> > {}; 00032 00033 struct vtkSMProxyManagerInternals 00034 { 00035 // This data structure stores the XML elements (prototypes) from which 00036 // proxies and properties are instantiated and initialized. 00037 typedef 00038 vtkstd::map<vtkStdString, vtkSMProxyManagerElementMapType> GroupMapType; 00039 GroupMapType GroupMap; 00040 00041 // This data structure stores actual proxy instances grouped in 00042 // collections. 00043 typedef 00044 vtkstd::map<vtkStdString, vtkSMProxyManagerProxyMapType> ProxyGroupType; 00045 ProxyGroupType RegisteredProxyMap; 00046 }; 00047 00048 #endif 00049