VTK
dox/Common/Core/vtkInformationVector.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkInformationVector.h
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm 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 =========================================================================*/
00031 #ifndef __vtkInformationVector_h
00032 #define __vtkInformationVector_h
00033 
00034 #include "vtkCommonCoreModule.h" // For export macro
00035 #include "vtkObject.h"
00036 
00037 class vtkInformation;
00038 class vtkInformationVectorInternals;
00039 
00040 class VTKCOMMONCORE_EXPORT vtkInformationVector : public vtkObject
00041 {
00042 public:
00043   static vtkInformationVector *New();
00044   vtkTypeMacro(vtkInformationVector,vtkObject);
00045   void PrintSelf(ostream& os, vtkIndent indent);
00046 
00048 
00052   int GetNumberOfInformationObjects() { return this->NumberOfInformationObjects; };
00053   void SetNumberOfInformationObjects(int n);
00055 
00057 
00061   void SetInformationObject(int index, vtkInformation* info);
00062   vtkInformation* GetInformationObject(int index);
00064 
00066 
00067   void Append(vtkInformation* info);
00068   void Remove(vtkInformation* info);
00069   void Remove(int idx);
00071 
00073 
00074   virtual void Register(vtkObjectBase* o);
00075   virtual void UnRegister(vtkObjectBase* o);
00077 
00083   void Copy(vtkInformationVector* from, int deep=0);
00084 
00085 protected:
00086   vtkInformationVector();
00087   ~vtkInformationVector();
00088 
00089   // Internal implementation details.
00090   vtkInformationVectorInternals* Internal;
00091 
00092   int NumberOfInformationObjects;
00093 
00094   // Garbage collection support.
00095   virtual void ReportReferences(vtkGarbageCollector*);
00096 private:
00097   vtkInformationVector(const vtkInformationVector&);  // Not implemented.
00098   void operator=(const vtkInformationVector&);  // Not implemented.
00099 };
00100 
00101 #endif