VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkInformation.h,v $ 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 =========================================================================*/ 00033 #ifndef __vtkInformation_h 00034 #define __vtkInformation_h 00035 00036 #include "vtkObject.h" 00037 00038 // If being "compiled" by gccxml, pretend VTK_COMMON_EXPORT is nothing 00039 // for this header file. The per-method usage of VTK_COMMON_EXPORT in 00040 // this header file leads to gccxml errors without this workaround. 00041 // 00042 #ifdef __GCCXML__ 00043 #undef VTK_COMMON_EXPORT 00044 #define VTK_COMMON_EXPORT 00045 #endif 00046 00047 class vtkDataObject; 00048 class vtkExecutive; 00049 class vtkInformationDataObjectKey; 00050 class vtkInformationDoubleKey; 00051 class vtkInformationDoubleVectorKey; 00052 class vtkInformationExecutivePortKey; 00053 class vtkInformationExecutivePortVectorKey; 00054 class vtkInformationIdTypeKey; 00055 class vtkInformationInformationKey; 00056 class vtkInformationInformationVectorKey; 00057 class vtkInformationIntegerKey; 00058 class vtkInformationIntegerPointerKey; 00059 class vtkInformationIntegerVectorKey; 00060 class vtkInformationInternals; 00061 class vtkInformationKey; 00062 class vtkInformationKeyToInformationFriendship; 00063 class vtkInformationKeyVectorKey; 00064 class vtkInformationObjectBaseKey; 00065 class vtkInformationRequestKey; 00066 class vtkInformationStringKey; 00067 class vtkInformationStringVectorKey; 00068 class vtkInformationUnsignedLongKey; 00069 class vtkInformationVector; 00070 00071 class vtkInformation : public vtkObject 00072 { 00073 public: 00074 VTK_COMMON_EXPORT static vtkInformation *New(); 00075 vtkExportedTypeRevisionMacro(vtkInformation,vtkObject,VTK_COMMON_EXPORT); 00076 VTK_COMMON_EXPORT void PrintSelf(ostream& os, vtkIndent indent); 00077 00080 VTK_COMMON_EXPORT void Modified(); 00081 00085 VTK_COMMON_EXPORT void Modified(vtkInformationKey* key); 00086 00088 VTK_COMMON_EXPORT void Clear(); 00089 00092 VTK_COMMON_EXPORT int GetNumberOfKeys(); 00093 00099 VTK_COMMON_EXPORT void Copy(vtkInformation* from, int deep=0); 00100 00102 00106 VTK_COMMON_EXPORT void CopyEntry(vtkInformation* from, vtkInformationKey* key, int deep=0); 00107 VTK_COMMON_EXPORT void CopyEntry(vtkInformation* from, vtkInformationDataObjectKey* key, int deep=0); 00108 VTK_COMMON_EXPORT void CopyEntry(vtkInformation* from, vtkInformationDoubleVectorKey* key, int deep=0); 00109 VTK_COMMON_EXPORT void CopyEntry(vtkInformation* from, vtkInformationInformationKey* key, int deep=0); 00110 VTK_COMMON_EXPORT void CopyEntry(vtkInformation* from, vtkInformationInformationVectorKey* key, int deep=0); 00111 VTK_COMMON_EXPORT void CopyEntry(vtkInformation* from, vtkInformationIntegerKey* key, int deep=0); 00112 VTK_COMMON_EXPORT void CopyEntry(vtkInformation* from, vtkInformationIntegerVectorKey* key, int deep=0); 00113 VTK_COMMON_EXPORT void CopyEntry(vtkInformation* from, vtkInformationRequestKey* key, int deep=0); 00114 VTK_COMMON_EXPORT void CopyEntry(vtkInformation* from, vtkInformationStringKey* key, int deep=0); 00115 VTK_COMMON_EXPORT void CopyEntry(vtkInformation* from, vtkInformationStringVectorKey* key, int deep=0); 00116 VTK_COMMON_EXPORT void CopyEntry(vtkInformation* from, vtkInformationUnsignedLongKey* key, int deep=0); 00118 00123 VTK_COMMON_EXPORT void CopyEntries(vtkInformation* from, vtkInformationKeyVectorKey* key, int deep=0); 00124 00126 VTK_COMMON_EXPORT int Has(vtkInformationKey* key); 00127 00129 VTK_COMMON_EXPORT void Remove(vtkInformationKey* key); 00130 00132 00133 VTK_COMMON_EXPORT void Set(vtkInformationRequestKey* key); 00134 VTK_COMMON_EXPORT void Remove(vtkInformationRequestKey* key); 00135 VTK_COMMON_EXPORT int Has(vtkInformationRequestKey* key); 00137 00139 00140 VTK_COMMON_EXPORT void Set(vtkInformationIntegerKey* key, int value); 00141 VTK_COMMON_EXPORT int Get(vtkInformationIntegerKey* key); 00142 VTK_COMMON_EXPORT void Remove(vtkInformationIntegerKey* key); 00143 VTK_COMMON_EXPORT int Has(vtkInformationIntegerKey* key); 00145 00147 00148 VTK_COMMON_EXPORT void Set(vtkInformationIdTypeKey* key, vtkIdType value); 00149 VTK_COMMON_EXPORT vtkIdType Get(vtkInformationIdTypeKey* key); 00150 VTK_COMMON_EXPORT void Remove(vtkInformationIdTypeKey* key); 00151 VTK_COMMON_EXPORT int Has(vtkInformationIdTypeKey* key); 00153 00155 00156 VTK_COMMON_EXPORT void Set(vtkInformationDoubleKey* key, double value); 00157 VTK_COMMON_EXPORT double Get(vtkInformationDoubleKey* key); 00158 VTK_COMMON_EXPORT void Remove(vtkInformationDoubleKey* key); 00159 VTK_COMMON_EXPORT int Has(vtkInformationDoubleKey* key); 00161 00163 00164 VTK_COMMON_EXPORT void Append(vtkInformationIntegerVectorKey* key, int value); 00165 VTK_COMMON_EXPORT void Set(vtkInformationIntegerVectorKey* key, int* value, int length); 00166 VTK_COMMON_EXPORT void Set(vtkInformationIntegerVectorKey* key, int value1, 00167 int value2, int value3); 00168 VTK_COMMON_EXPORT void Set(vtkInformationIntegerVectorKey* key, 00169 int value1, int value2, int value3, 00170 int value4, int value5, int value6); 00171 VTK_COMMON_EXPORT int* Get(vtkInformationIntegerVectorKey* key); 00172 VTK_COMMON_EXPORT int Get(vtkInformationIntegerVectorKey* key, int idx); 00173 VTK_COMMON_EXPORT void Get(vtkInformationIntegerVectorKey* key, int* value); 00174 VTK_COMMON_EXPORT int Length(vtkInformationIntegerVectorKey* key); 00175 VTK_COMMON_EXPORT void Remove(vtkInformationIntegerVectorKey* key); 00176 VTK_COMMON_EXPORT int Has(vtkInformationIntegerVectorKey* key); 00178 00180 00181 VTK_COMMON_EXPORT void Append(vtkInformationStringVectorKey* key, const char* value); 00182 VTK_COMMON_EXPORT void Set(vtkInformationStringVectorKey* key, const char* value, int idx = 0); 00183 VTK_COMMON_EXPORT const char* Get(vtkInformationStringVectorKey* key, int idx = 0); 00184 VTK_COMMON_EXPORT int Length(vtkInformationStringVectorKey* key); 00185 VTK_COMMON_EXPORT void Remove(vtkInformationStringVectorKey* key); 00186 VTK_COMMON_EXPORT int Has(vtkInformationStringVectorKey* key); 00188 00190 00191 VTK_COMMON_EXPORT void Set(vtkInformationIntegerPointerKey* key, int* value, int length); 00192 VTK_COMMON_EXPORT int* Get(vtkInformationIntegerPointerKey* key); 00193 VTK_COMMON_EXPORT void Get(vtkInformationIntegerPointerKey* key, int* value); 00194 VTK_COMMON_EXPORT int Length(vtkInformationIntegerPointerKey* key); 00195 VTK_COMMON_EXPORT void Remove(vtkInformationIntegerPointerKey* key); 00196 VTK_COMMON_EXPORT int Has(vtkInformationIntegerPointerKey* key); 00198 00200 00201 VTK_COMMON_EXPORT void Set(vtkInformationUnsignedLongKey* key, unsigned long value); 00202 VTK_COMMON_EXPORT unsigned long Get(vtkInformationUnsignedLongKey* key); 00203 VTK_COMMON_EXPORT void Remove(vtkInformationUnsignedLongKey* key); 00204 VTK_COMMON_EXPORT int Has(vtkInformationUnsignedLongKey* key); 00206 00208 00209 VTK_COMMON_EXPORT void Append(vtkInformationDoubleVectorKey* key, double value); 00210 VTK_COMMON_EXPORT void Set(vtkInformationDoubleVectorKey* key, double* value, int length); 00211 VTK_COMMON_EXPORT void Set(vtkInformationDoubleVectorKey* key, double value1, 00212 double value2, double value3); 00213 VTK_COMMON_EXPORT void Set(vtkInformationDoubleVectorKey* key, 00214 double value1, double value2, double value3, 00215 double value4, double value5, double value6); 00216 VTK_COMMON_EXPORT double* Get(vtkInformationDoubleVectorKey* key); 00217 VTK_COMMON_EXPORT double Get(vtkInformationDoubleVectorKey* key, int idx); 00218 VTK_COMMON_EXPORT void Get(vtkInformationDoubleVectorKey* key, double* value); 00219 VTK_COMMON_EXPORT int Length(vtkInformationDoubleVectorKey* key); 00220 VTK_COMMON_EXPORT void Remove(vtkInformationDoubleVectorKey* key); 00221 VTK_COMMON_EXPORT int Has(vtkInformationDoubleVectorKey* key); 00223 00225 00226 VTK_COMMON_EXPORT void Append(vtkInformationKeyVectorKey* key, vtkInformationKey* value); 00227 VTK_COMMON_EXPORT void AppendUnique(vtkInformationKeyVectorKey* key, vtkInformationKey* value); 00228 VTK_COMMON_EXPORT void Set(vtkInformationKeyVectorKey* key, vtkInformationKey** value, int length); 00229 VTK_COMMON_EXPORT void Remove(vtkInformationKeyVectorKey* key, vtkInformationKey* value); 00230 VTK_COMMON_EXPORT vtkInformationKey** Get(vtkInformationKeyVectorKey* key); 00231 VTK_COMMON_EXPORT vtkInformationKey* Get(vtkInformationKeyVectorKey* key, int idx); 00232 VTK_COMMON_EXPORT void Get(vtkInformationKeyVectorKey* key, vtkInformationKey** value); 00233 VTK_COMMON_EXPORT int Length(vtkInformationKeyVectorKey* key); 00234 VTK_COMMON_EXPORT void Remove(vtkInformationKeyVectorKey* key); 00235 VTK_COMMON_EXPORT int Has(vtkInformationKeyVectorKey* key); 00237 00238 // Provide extra overloads of this method to avoid requiring user 00239 // code to include the headers for these key types. Avoid wrapping 00240 // them because the original method can be called from the wrappers 00241 // anyway and this causes a python help string to be too long. 00242 //BTX 00243 VTK_COMMON_EXPORT void Append(vtkInformationKeyVectorKey* key, 00244 vtkInformationDataObjectKey* value); 00245 VTK_COMMON_EXPORT void Append(vtkInformationKeyVectorKey* key, vtkInformationDoubleKey* value); 00246 VTK_COMMON_EXPORT void Append(vtkInformationKeyVectorKey* key, 00247 vtkInformationDoubleVectorKey* value); 00248 VTK_COMMON_EXPORT void Append(vtkInformationKeyVectorKey* key, 00249 vtkInformationInformationKey* value); 00250 VTK_COMMON_EXPORT void Append(vtkInformationKeyVectorKey* key, 00251 vtkInformationInformationVectorKey* value); 00252 VTK_COMMON_EXPORT void Append(vtkInformationKeyVectorKey* key, 00253 vtkInformationIntegerKey* value); 00254 VTK_COMMON_EXPORT void Append(vtkInformationKeyVectorKey* key, 00255 vtkInformationIntegerVectorKey* value); 00256 VTK_COMMON_EXPORT void Append(vtkInformationKeyVectorKey* key, vtkInformationStringKey* value); 00257 VTK_COMMON_EXPORT void Append(vtkInformationKeyVectorKey* key, 00258 vtkInformationStringVectorKey* value); 00259 VTK_COMMON_EXPORT void Append(vtkInformationKeyVectorKey* key, 00260 vtkInformationObjectBaseKey* value); 00261 VTK_COMMON_EXPORT void Append(vtkInformationKeyVectorKey* key, 00262 vtkInformationUnsignedLongKey* value); 00263 00264 VTK_COMMON_EXPORT void AppendUnique(vtkInformationKeyVectorKey* key, 00265 vtkInformationDataObjectKey* value); 00266 VTK_COMMON_EXPORT void AppendUnique(vtkInformationKeyVectorKey* key, 00267 vtkInformationDoubleKey* value); 00268 VTK_COMMON_EXPORT void AppendUnique(vtkInformationKeyVectorKey* key, 00269 vtkInformationDoubleVectorKey* value); 00270 VTK_COMMON_EXPORT void AppendUnique(vtkInformationKeyVectorKey* key, 00271 vtkInformationInformationKey* value); 00272 VTK_COMMON_EXPORT void AppendUnique(vtkInformationKeyVectorKey* key, 00273 vtkInformationInformationVectorKey* value); 00274 VTK_COMMON_EXPORT void AppendUnique(vtkInformationKeyVectorKey* key, 00275 vtkInformationIntegerKey* value); 00276 VTK_COMMON_EXPORT void AppendUnique(vtkInformationKeyVectorKey* key, 00277 vtkInformationIntegerVectorKey* value); 00278 VTK_COMMON_EXPORT void AppendUnique(vtkInformationKeyVectorKey* key, 00279 vtkInformationStringKey* value); 00280 VTK_COMMON_EXPORT void AppendUnique(vtkInformationKeyVectorKey* key, 00281 vtkInformationStringVectorKey* value); 00282 VTK_COMMON_EXPORT void AppendUnique(vtkInformationKeyVectorKey* key, 00283 vtkInformationObjectBaseKey* value); 00284 VTK_COMMON_EXPORT void AppendUnique(vtkInformationKeyVectorKey* key, 00285 vtkInformationUnsignedLongKey* value); 00286 //ETX 00287 00289 00290 VTK_COMMON_EXPORT void Set(vtkInformationStringKey* key, const char*); 00291 VTK_COMMON_EXPORT const char* Get(vtkInformationStringKey* key); 00292 VTK_COMMON_EXPORT void Remove(vtkInformationStringKey* key); 00293 VTK_COMMON_EXPORT int Has(vtkInformationStringKey* key); 00295 00297 00298 VTK_COMMON_EXPORT void Set(vtkInformationInformationKey* key, vtkInformation*); 00299 VTK_COMMON_EXPORT vtkInformation* Get(vtkInformationInformationKey* key); 00300 VTK_COMMON_EXPORT void Remove(vtkInformationInformationKey* key); 00301 VTK_COMMON_EXPORT int Has(vtkInformationInformationKey* key); 00303 00305 00306 VTK_COMMON_EXPORT void Set(vtkInformationInformationVectorKey* key, vtkInformationVector*); 00307 VTK_COMMON_EXPORT vtkInformationVector* Get(vtkInformationInformationVectorKey* key); 00308 VTK_COMMON_EXPORT void Remove(vtkInformationInformationVectorKey* key); 00309 VTK_COMMON_EXPORT int Has(vtkInformationInformationVectorKey* key); 00311 00313 00314 VTK_COMMON_EXPORT void Set(vtkInformationObjectBaseKey* key, vtkObjectBase*); 00315 VTK_COMMON_EXPORT vtkObjectBase* Get(vtkInformationObjectBaseKey* key); 00316 VTK_COMMON_EXPORT void Remove(vtkInformationObjectBaseKey* key); 00317 VTK_COMMON_EXPORT int Has(vtkInformationObjectBaseKey* key); 00319 00321 00322 VTK_COMMON_EXPORT void Set(vtkInformationDataObjectKey* key, vtkDataObject*); 00323 VTK_COMMON_EXPORT vtkDataObject* Get(vtkInformationDataObjectKey* key); 00324 VTK_COMMON_EXPORT void Remove(vtkInformationDataObjectKey* key); 00325 VTK_COMMON_EXPORT int Has(vtkInformationDataObjectKey* key); 00327 00329 00330 VTK_COMMON_EXPORT static vtkInformationKey* GetKey(vtkInformationDataObjectKey* key); 00331 VTK_COMMON_EXPORT static vtkInformationKey* GetKey(vtkInformationDoubleKey* key); 00332 VTK_COMMON_EXPORT static vtkInformationKey* GetKey(vtkInformationDoubleVectorKey* key); 00333 VTK_COMMON_EXPORT static vtkInformationKey* GetKey(vtkInformationInformationKey* key); 00334 VTK_COMMON_EXPORT static vtkInformationKey* GetKey(vtkInformationInformationVectorKey* key); 00335 VTK_COMMON_EXPORT static vtkInformationKey* GetKey(vtkInformationIntegerKey* key); 00336 VTK_COMMON_EXPORT static vtkInformationKey* GetKey(vtkInformationIntegerVectorKey* key); 00337 VTK_COMMON_EXPORT static vtkInformationKey* GetKey(vtkInformationRequestKey* key); 00338 VTK_COMMON_EXPORT static vtkInformationKey* GetKey(vtkInformationStringKey* key); 00339 VTK_COMMON_EXPORT static vtkInformationKey* GetKey(vtkInformationStringVectorKey* key); 00340 VTK_COMMON_EXPORT static vtkInformationKey* GetKey(vtkInformationKey* key); 00341 VTK_COMMON_EXPORT static vtkInformationKey* GetKey(vtkInformationUnsignedLongKey* key); 00343 00345 00346 VTK_COMMON_EXPORT virtual void Register(vtkObjectBase* o); 00347 VTK_COMMON_EXPORT virtual void UnRegister(vtkObjectBase* o); 00349 00351 00352 VTK_COMMON_EXPORT void SetRequest(vtkInformationRequestKey* request); 00353 VTK_COMMON_EXPORT vtkInformationRequestKey* GetRequest(); 00355 00356 //BTX 00362 VTK_LEGACY(VTK_FILTERING_EXPORT void CopyEntry(vtkInformation* from, vtkInformationExecutivePortKey* key, int deep=0)); 00363 00365 00367 VTK_LEGACY(VTK_FILTERING_EXPORT void Append( 00368 vtkInformationKeyVectorKey* key, 00369 vtkInformationExecutivePortKey* value)); 00370 // Description: 00371 // Append an InformationKey-vector-valued entry. 00372 // @deprecated Replaced by vtkInformationExecutivePortKey::AppendUnique() as of VTK 5.2. 00373 VTK_LEGACY(VTK_FILTERING_EXPORT void AppendUnique( 00374 vtkInformationKeyVectorKey* key, 00375 vtkInformationExecutivePortKey* value)); 00377 00379 00382 VTK_LEGACY(VTK_FILTERING_EXPORT 00383 void Set(vtkInformationExecutivePortKey* key, vtkExecutive*, int)); 00384 // Description: 00385 // Retrieve/Modify an entry storing a vtkExecutive/port number pair. 00386 // @deprecated Replaced by vtkInformationExecutivePortKey::GetExecutive() as of VTK 5.2. 00387 VTK_LEGACY(VTK_FILTERING_EXPORT 00388 vtkExecutive* GetExecutive(vtkInformationExecutivePortKey* key)); 00389 // Description: 00390 // Retrieve/Modify an entry storing a vtkExecutive/port number pair. 00391 // @deprecated Replaced by vtkInformationExecutivePortKey::GetPort() as of VTK 5.2. 00392 VTK_LEGACY(VTK_FILTERING_EXPORT 00393 int GetPort(vtkInformationExecutivePortKey* key)); 00394 // Description: 00395 // Retrieve/Modify an entry storing a vtkExecutive/port number pair. 00396 // @deprecated Replaced by vtkInformationExecutivePortKey::Get() as of VTK 5.2. 00397 VTK_LEGACY(VTK_FILTERING_EXPORT 00398 void Get(vtkInformationExecutivePortKey* key, vtkExecutive*& executive, int &port)); 00399 // Description: 00400 // Retrieve/Modify an entry storing a vtkExecutive/port number pair. 00401 // @deprecated Replaced by vtkInformationExecutivePortKey::Remove() as of VTK 5.2. 00402 VTK_LEGACY(VTK_FILTERING_EXPORT 00403 void Remove(vtkInformationExecutivePortKey* key)); 00404 // Description: 00405 // Retrieve/Modify an entry storing a vtkExecutive/port number pair. 00406 // @deprecated Replaced by vtkInformationExecutivePortKey::Has() as of VTK 5.2. 00407 VTK_LEGACY(VTK_FILTERING_EXPORT 00408 int Has(vtkInformationExecutivePortKey* key)); 00410 00412 00415 VTK_LEGACY(VTK_FILTERING_EXPORT 00416 void Append(vtkInformationExecutivePortVectorKey* key, 00417 vtkExecutive* executive, int port)); 00418 // Description: 00419 // Retrieve/Modify an entry storing a vector of vtkExecutive/port number pairs. 00420 // @deprecated Replaced by vtkInformationExecutivePortVectorKey::Remove() as of VTK 5.2. 00421 VTK_LEGACY(VTK_FILTERING_EXPORT 00422 void Remove(vtkInformationExecutivePortVectorKey* key, 00423 vtkExecutive* executive, int port)); 00424 // Description: 00425 // Retrieve/Modify an entry storing a vector of vtkExecutive/port number pairs. 00426 // @deprecated Replaced by vtkInformationExecutivePortVectorKey::Set() as of VTK 5.2. 00427 VTK_LEGACY(VTK_FILTERING_EXPORT 00428 void Set(vtkInformationExecutivePortVectorKey* key, 00429 vtkExecutive** executives, int* ports, int length)); 00430 // Description: 00431 // Retrieve/Modify an entry storing a vector of vtkExecutive/port number pairs. 00432 // @deprecated Replaced by vtkInformationExecutivePortVectorKey::GetExecutives() as of VTK 5.2. 00433 VTK_LEGACY(VTK_FILTERING_EXPORT 00434 vtkExecutive** GetExecutives(vtkInformationExecutivePortVectorKey* key)); 00435 // Description: 00436 // Retrieve/Modify an entry storing a vector of vtkExecutive/port number pairs. 00437 // @deprecated Replaced by vtkInformationExecutivePortVectorKey::GetPorts() as of VTK 5.2. 00438 VTK_LEGACY(VTK_FILTERING_EXPORT 00439 int* GetPorts(vtkInformationExecutivePortVectorKey* key)); 00440 // Description: 00441 // Retrieve/Modify an entry storing a vector of vtkExecutive/port number pairs. 00442 // @deprecated Replaced by vtkInformationExecutivePortVectorKey::Get() as of VTK 5.2. 00443 VTK_LEGACY(VTK_FILTERING_EXPORT 00444 void Get(vtkInformationExecutivePortVectorKey* key, 00445 vtkExecutive** executives, int* ports)); 00446 // Description: 00447 // Retrieve/Modify an entry storing a vector of vtkExecutive/port number pairs. 00448 // @deprecated Replaced by vtkInformationExecutivePortVectorKey::Length() as of VTK 5.2. 00449 VTK_LEGACY(VTK_FILTERING_EXPORT 00450 int Length(vtkInformationExecutivePortVectorKey* key)); 00451 // Description: 00452 // Retrieve/Modify an entry storing a vector of vtkExecutive/port number pairs. 00453 // @deprecated Replaced by vtkInformationExecutivePortVectorKey::Remove() as of VTK 5.2. 00454 VTK_LEGACY(VTK_FILTERING_EXPORT 00455 void Remove(vtkInformationExecutivePortVectorKey* key)); 00456 // Description: 00457 // Retrieve/Modify an entry storing a vector of vtkExecutive/port number pairs. 00458 // @deprecated Replaced by vtkInformationExecutivePortVectorKey::Has() as of VTK 5.2. 00459 VTK_LEGACY(VTK_FILTERING_EXPORT 00460 int Has(vtkInformationExecutivePortVectorKey* key)); 00462 00464 00466 VTK_LEGACY(VTK_FILTERING_EXPORT 00467 static vtkInformationKey* GetKey(vtkInformationExecutivePortKey* key)); 00468 //ETX 00470 00471 protected: 00472 VTK_COMMON_EXPORT vtkInformation(); 00473 VTK_COMMON_EXPORT ~vtkInformation(); 00474 00475 // Get/Set a map entry directly through the vtkObjectBase instance 00476 // representing the value. Used internally to manage the map. 00477 VTK_COMMON_EXPORT void SetAsObjectBase(vtkInformationKey* key, vtkObjectBase* value); 00478 VTK_COMMON_EXPORT vtkObjectBase* GetAsObjectBase(vtkInformationKey* key); 00479 00480 // Expand the table to a larger size 00481 VTK_COMMON_EXPORT void ExpandTable(); 00482 00483 // Internal implementation details. 00484 vtkInformationInternals* Internal; 00485 00486 // Garbage collection support. 00487 VTK_COMMON_EXPORT virtual void ReportReferences(vtkGarbageCollector*); 00488 00489 // Report the object associated with the given key to the collector. 00490 VTK_COMMON_EXPORT void ReportAsObjectBase(vtkInformationKey* key, 00491 vtkGarbageCollector* collector); 00492 00493 private: 00494 //BTX 00495 friend class vtkInformationKeyToInformationFriendship; 00496 friend class vtkInformationIterator; 00497 //ETX 00498 private: 00499 VTK_COMMON_EXPORT vtkInformation(const vtkInformation&); // Not implemented. 00500 VTK_COMMON_EXPORT void operator=(const vtkInformation&); // Not implemented. 00501 vtkInformationRequestKey *Request; 00502 }; 00503 00504 #endif