00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00036 #ifndef __vtkInformation_h
00037 #define __vtkInformation_h
00038
00039 #include "vtkObject.h"
00040
00041
00042
00043
00044
00045 #ifdef __GCCXML__
00046 #undef VTK_COMMON_EXPORT
00047 #define VTK_COMMON_EXPORT
00048 #endif
00049
00050 class vtkDataObject;
00051 class vtkExecutive;
00052 class vtkInformationDataObjectKey;
00053 class vtkInformationDoubleKey;
00054 class vtkInformationDoubleVectorKey;
00055 class vtkInformationExecutivePortKey;
00056 class vtkInformationExecutivePortVectorKey;
00057 class vtkInformationIdTypeKey;
00058 class vtkInformationInformationKey;
00059 class vtkInformationInformationVectorKey;
00060 class vtkInformationIntegerKey;
00061 class vtkInformationIntegerPointerKey;
00062 class vtkInformationIntegerVectorKey;
00063 class vtkInformationInternals;
00064 class vtkInformationKey;
00065 class vtkInformationKeyToInformationFriendship;
00066 class vtkInformationKeyVectorKey;
00067 class vtkInformationObjectBaseKey;
00068 class vtkInformationRequestKey;
00069 class vtkInformationStringKey;
00070 class vtkInformationStringVectorKey;
00071 class vtkInformationUnsignedLongKey;
00072 class vtkInformationVector;
00073
00074 #if defined(_WIN32)
00075 # define VTK_INFORMATION_EXPORT
00076 #else
00077 # define VTK_INFORMATION_EXPORT VTK_COMMON_EXPORT
00078 #endif
00079
00080
00081 class VTK_INFORMATION_EXPORT vtkInformation : public vtkObject
00082 {
00083 public:
00084 VTK_COMMON_EXPORT static vtkInformation *New();
00085 vtkTypeMacro(vtkInformation,vtkObject);
00086 VTK_COMMON_EXPORT void PrintSelf(ostream& os, vtkIndent indent);
00087 VTK_COMMON_EXPORT void PrintKeys(ostream& os, vtkIndent indent);
00088
00091 VTK_COMMON_EXPORT void Modified();
00092
00096 VTK_COMMON_EXPORT void Modified(vtkInformationKey* key);
00097
00099 VTK_COMMON_EXPORT void Clear();
00100
00103 VTK_COMMON_EXPORT int GetNumberOfKeys();
00104
00110 VTK_COMMON_EXPORT void Copy(vtkInformation* from, int deep=0);
00111
00113
00117 VTK_COMMON_EXPORT void CopyEntry(vtkInformation* from, vtkInformationKey* key, int deep=0);
00118 VTK_COMMON_EXPORT void CopyEntry(vtkInformation* from, vtkInformationDataObjectKey* key, int deep=0);
00119 VTK_COMMON_EXPORT void CopyEntry(vtkInformation* from, vtkInformationDoubleVectorKey* key, int deep=0);
00120 VTK_COMMON_EXPORT void CopyEntry(vtkInformation* from, vtkInformationInformationKey* key, int deep=0);
00121 VTK_COMMON_EXPORT void CopyEntry(vtkInformation* from, vtkInformationInformationVectorKey* key, int deep=0);
00122 VTK_COMMON_EXPORT void CopyEntry(vtkInformation* from, vtkInformationIntegerKey* key, int deep=0);
00123 VTK_COMMON_EXPORT void CopyEntry(vtkInformation* from, vtkInformationIntegerVectorKey* key, int deep=0);
00124 VTK_COMMON_EXPORT void CopyEntry(vtkInformation* from, vtkInformationRequestKey* key, int deep=0);
00125 VTK_COMMON_EXPORT void CopyEntry(vtkInformation* from, vtkInformationStringKey* key, int deep=0);
00126 VTK_COMMON_EXPORT void CopyEntry(vtkInformation* from, vtkInformationStringVectorKey* key, int deep=0);
00127 VTK_COMMON_EXPORT void CopyEntry(vtkInformation* from, vtkInformationUnsignedLongKey* key, int deep=0);
00129
00134 VTK_COMMON_EXPORT void CopyEntries(vtkInformation* from, vtkInformationKeyVectorKey* key, int deep=0);
00135
00137 VTK_COMMON_EXPORT int Has(vtkInformationKey* key);
00138
00140 VTK_COMMON_EXPORT void Remove(vtkInformationKey* key);
00141
00143
00144 VTK_COMMON_EXPORT void Set(vtkInformationRequestKey* key);
00145 VTK_COMMON_EXPORT void Remove(vtkInformationRequestKey* key);
00146 VTK_COMMON_EXPORT int Has(vtkInformationRequestKey* key);
00148
00150
00151 VTK_COMMON_EXPORT void Set(vtkInformationIntegerKey* key, int value);
00152 VTK_COMMON_EXPORT int Get(vtkInformationIntegerKey* key);
00153 VTK_COMMON_EXPORT void Remove(vtkInformationIntegerKey* key);
00154 VTK_COMMON_EXPORT int Has(vtkInformationIntegerKey* key);
00156
00158
00159 VTK_COMMON_EXPORT void Set(vtkInformationIdTypeKey* key, vtkIdType value);
00160 VTK_COMMON_EXPORT vtkIdType Get(vtkInformationIdTypeKey* key);
00161 VTK_COMMON_EXPORT void Remove(vtkInformationIdTypeKey* key);
00162 VTK_COMMON_EXPORT int Has(vtkInformationIdTypeKey* key);
00164
00166
00167 VTK_COMMON_EXPORT void Set(vtkInformationDoubleKey* key, double value);
00168 VTK_COMMON_EXPORT double Get(vtkInformationDoubleKey* key);
00169 VTK_COMMON_EXPORT void Remove(vtkInformationDoubleKey* key);
00170 VTK_COMMON_EXPORT int Has(vtkInformationDoubleKey* key);
00172
00174
00175 VTK_COMMON_EXPORT void Append(vtkInformationIntegerVectorKey* key, int value);
00176 VTK_COMMON_EXPORT void Set(vtkInformationIntegerVectorKey* key, int* value, int length);
00177 VTK_COMMON_EXPORT void Set(vtkInformationIntegerVectorKey* key, int value1,
00178 int value2, int value3);
00179 VTK_COMMON_EXPORT void Set(vtkInformationIntegerVectorKey* key,
00180 int value1, int value2, int value3,
00181 int value4, int value5, int value6);
00182 VTK_COMMON_EXPORT int* Get(vtkInformationIntegerVectorKey* key);
00183 VTK_COMMON_EXPORT int Get(vtkInformationIntegerVectorKey* key, int idx);
00184 VTK_COMMON_EXPORT void Get(vtkInformationIntegerVectorKey* key, int* value);
00185 VTK_COMMON_EXPORT int Length(vtkInformationIntegerVectorKey* key);
00186 VTK_COMMON_EXPORT void Remove(vtkInformationIntegerVectorKey* key);
00187 VTK_COMMON_EXPORT int Has(vtkInformationIntegerVectorKey* key);
00189
00191
00192 VTK_COMMON_EXPORT void Append(vtkInformationStringVectorKey* key, const char* value);
00193 VTK_COMMON_EXPORT void Set(vtkInformationStringVectorKey* key, const char* value, int idx = 0);
00194 VTK_COMMON_EXPORT const char* Get(vtkInformationStringVectorKey* key, int idx = 0);
00195 VTK_COMMON_EXPORT int Length(vtkInformationStringVectorKey* key);
00196 VTK_COMMON_EXPORT void Remove(vtkInformationStringVectorKey* key);
00197 VTK_COMMON_EXPORT int Has(vtkInformationStringVectorKey* key);
00199
00201
00202 VTK_COMMON_EXPORT void Set(vtkInformationIntegerPointerKey* key, int* value, int length);
00203 VTK_COMMON_EXPORT int* Get(vtkInformationIntegerPointerKey* key);
00204 VTK_COMMON_EXPORT void Get(vtkInformationIntegerPointerKey* key, int* value);
00205 VTK_COMMON_EXPORT int Length(vtkInformationIntegerPointerKey* key);
00206 VTK_COMMON_EXPORT void Remove(vtkInformationIntegerPointerKey* key);
00207 VTK_COMMON_EXPORT int Has(vtkInformationIntegerPointerKey* key);
00209
00211
00212 VTK_COMMON_EXPORT void Set(vtkInformationUnsignedLongKey* key, unsigned long value);
00213 VTK_COMMON_EXPORT unsigned long Get(vtkInformationUnsignedLongKey* key);
00214 VTK_COMMON_EXPORT void Remove(vtkInformationUnsignedLongKey* key);
00215 VTK_COMMON_EXPORT int Has(vtkInformationUnsignedLongKey* key);
00217
00219
00220 VTK_COMMON_EXPORT void Append(vtkInformationDoubleVectorKey* key, double value);
00221 VTK_COMMON_EXPORT void Set(vtkInformationDoubleVectorKey* key, double* value, int length);
00222 VTK_COMMON_EXPORT void Set(vtkInformationDoubleVectorKey* key, double value1,
00223 double value2, double value3);
00224 VTK_COMMON_EXPORT void Set(vtkInformationDoubleVectorKey* key,
00225 double value1, double value2, double value3,
00226 double value4, double value5, double value6);
00227 VTK_COMMON_EXPORT double* Get(vtkInformationDoubleVectorKey* key);
00228 VTK_COMMON_EXPORT double Get(vtkInformationDoubleVectorKey* key, int idx);
00229 VTK_COMMON_EXPORT void Get(vtkInformationDoubleVectorKey* key, double* value);
00230 VTK_COMMON_EXPORT int Length(vtkInformationDoubleVectorKey* key);
00231 VTK_COMMON_EXPORT void Remove(vtkInformationDoubleVectorKey* key);
00232 VTK_COMMON_EXPORT int Has(vtkInformationDoubleVectorKey* key);
00234
00236
00237 VTK_COMMON_EXPORT void Append(vtkInformationKeyVectorKey* key, vtkInformationKey* value);
00238 VTK_COMMON_EXPORT void AppendUnique(vtkInformationKeyVectorKey* key, vtkInformationKey* value);
00239 VTK_COMMON_EXPORT void Set(vtkInformationKeyVectorKey* key, vtkInformationKey** value, int length);
00240 VTK_COMMON_EXPORT void Remove(vtkInformationKeyVectorKey* key, vtkInformationKey* value);
00241 VTK_COMMON_EXPORT vtkInformationKey** Get(vtkInformationKeyVectorKey* key);
00242 VTK_COMMON_EXPORT vtkInformationKey* Get(vtkInformationKeyVectorKey* key, int idx);
00243 VTK_COMMON_EXPORT void Get(vtkInformationKeyVectorKey* key, vtkInformationKey** value);
00244 VTK_COMMON_EXPORT int Length(vtkInformationKeyVectorKey* key);
00245 VTK_COMMON_EXPORT void Remove(vtkInformationKeyVectorKey* key);
00246 VTK_COMMON_EXPORT int Has(vtkInformationKeyVectorKey* key);
00248
00249
00250
00251
00252
00253
00254 VTK_COMMON_EXPORT void Append(vtkInformationKeyVectorKey* key,
00255 vtkInformationDataObjectKey* value);
00256 VTK_COMMON_EXPORT void Append(vtkInformationKeyVectorKey* key, vtkInformationDoubleKey* value);
00257 VTK_COMMON_EXPORT void Append(vtkInformationKeyVectorKey* key,
00258 vtkInformationDoubleVectorKey* value);
00259 VTK_COMMON_EXPORT void Append(vtkInformationKeyVectorKey* key,
00260 vtkInformationInformationKey* value);
00261 VTK_COMMON_EXPORT void Append(vtkInformationKeyVectorKey* key,
00262 vtkInformationInformationVectorKey* value);
00263 VTK_COMMON_EXPORT void Append(vtkInformationKeyVectorKey* key,
00264 vtkInformationIntegerKey* value);
00265 VTK_COMMON_EXPORT void Append(vtkInformationKeyVectorKey* key,
00266 vtkInformationIntegerVectorKey* value);
00267 VTK_COMMON_EXPORT void Append(vtkInformationKeyVectorKey* key, vtkInformationStringKey* value);
00268 VTK_COMMON_EXPORT void Append(vtkInformationKeyVectorKey* key,
00269 vtkInformationStringVectorKey* value);
00270 VTK_COMMON_EXPORT void Append(vtkInformationKeyVectorKey* key,
00271 vtkInformationObjectBaseKey* value);
00272 VTK_COMMON_EXPORT void Append(vtkInformationKeyVectorKey* key,
00273 vtkInformationUnsignedLongKey* value);
00274
00275 VTK_COMMON_EXPORT void AppendUnique(vtkInformationKeyVectorKey* key,
00276 vtkInformationDataObjectKey* value);
00277 VTK_COMMON_EXPORT void AppendUnique(vtkInformationKeyVectorKey* key,
00278 vtkInformationDoubleKey* value);
00279 VTK_COMMON_EXPORT void AppendUnique(vtkInformationKeyVectorKey* key,
00280 vtkInformationDoubleVectorKey* value);
00281 VTK_COMMON_EXPORT void AppendUnique(vtkInformationKeyVectorKey* key,
00282 vtkInformationInformationKey* value);
00283 VTK_COMMON_EXPORT void AppendUnique(vtkInformationKeyVectorKey* key,
00284 vtkInformationInformationVectorKey* value);
00285 VTK_COMMON_EXPORT void AppendUnique(vtkInformationKeyVectorKey* key,
00286 vtkInformationIntegerKey* value);
00287 VTK_COMMON_EXPORT void AppendUnique(vtkInformationKeyVectorKey* key,
00288 vtkInformationIntegerVectorKey* value);
00289 VTK_COMMON_EXPORT void AppendUnique(vtkInformationKeyVectorKey* key,
00290 vtkInformationStringKey* value);
00291 VTK_COMMON_EXPORT void AppendUnique(vtkInformationKeyVectorKey* key,
00292 vtkInformationStringVectorKey* value);
00293 VTK_COMMON_EXPORT void AppendUnique(vtkInformationKeyVectorKey* key,
00294 vtkInformationObjectBaseKey* value);
00295 VTK_COMMON_EXPORT void AppendUnique(vtkInformationKeyVectorKey* key,
00296 vtkInformationUnsignedLongKey* value);
00297
00298
00300
00301 VTK_COMMON_EXPORT void Set(vtkInformationStringKey* key, const char*);
00302 VTK_COMMON_EXPORT const char* Get(vtkInformationStringKey* key);
00303 VTK_COMMON_EXPORT void Remove(vtkInformationStringKey* key);
00304 VTK_COMMON_EXPORT int Has(vtkInformationStringKey* key);
00306
00308
00309 VTK_COMMON_EXPORT void Set(vtkInformationInformationKey* key, vtkInformation*);
00310 VTK_COMMON_EXPORT vtkInformation* Get(vtkInformationInformationKey* key);
00311 VTK_COMMON_EXPORT void Remove(vtkInformationInformationKey* key);
00312 VTK_COMMON_EXPORT int Has(vtkInformationInformationKey* key);
00314
00316
00317 VTK_COMMON_EXPORT void Set(vtkInformationInformationVectorKey* key, vtkInformationVector*);
00318 VTK_COMMON_EXPORT vtkInformationVector* Get(vtkInformationInformationVectorKey* key);
00319 VTK_COMMON_EXPORT void Remove(vtkInformationInformationVectorKey* key);
00320 VTK_COMMON_EXPORT int Has(vtkInformationInformationVectorKey* key);
00322
00324
00325 VTK_COMMON_EXPORT void Set(vtkInformationObjectBaseKey* key, vtkObjectBase*);
00326 VTK_COMMON_EXPORT vtkObjectBase* Get(vtkInformationObjectBaseKey* key);
00327 VTK_COMMON_EXPORT void Remove(vtkInformationObjectBaseKey* key);
00328 VTK_COMMON_EXPORT int Has(vtkInformationObjectBaseKey* key);
00330
00332
00333 VTK_COMMON_EXPORT void Set(vtkInformationDataObjectKey* key,
00334 vtkDataObject VTK_WRAP_EXTERN *);
00335 VTK_COMMON_EXPORT vtkDataObject VTK_WRAP_EXTERN* Get(vtkInformationDataObjectKey* key);
00336 VTK_COMMON_EXPORT void Remove(vtkInformationDataObjectKey* key);
00337 VTK_COMMON_EXPORT int Has(vtkInformationDataObjectKey* key);
00339
00341
00342 VTK_COMMON_EXPORT static vtkInformationKey* GetKey(vtkInformationDataObjectKey* key);
00343 VTK_COMMON_EXPORT static vtkInformationKey* GetKey(vtkInformationDoubleKey* key);
00344 VTK_COMMON_EXPORT static vtkInformationKey* GetKey(vtkInformationDoubleVectorKey* key);
00345 VTK_COMMON_EXPORT static vtkInformationKey* GetKey(vtkInformationInformationKey* key);
00346 VTK_COMMON_EXPORT static vtkInformationKey* GetKey(vtkInformationInformationVectorKey* key);
00347 VTK_COMMON_EXPORT static vtkInformationKey* GetKey(vtkInformationIntegerKey* key);
00348 VTK_COMMON_EXPORT static vtkInformationKey* GetKey(vtkInformationIntegerVectorKey* key);
00349 VTK_COMMON_EXPORT static vtkInformationKey* GetKey(vtkInformationRequestKey* key);
00350 VTK_COMMON_EXPORT static vtkInformationKey* GetKey(vtkInformationStringKey* key);
00351 VTK_COMMON_EXPORT static vtkInformationKey* GetKey(vtkInformationStringVectorKey* key);
00352 VTK_COMMON_EXPORT static vtkInformationKey* GetKey(vtkInformationKey* key);
00353 VTK_COMMON_EXPORT static vtkInformationKey* GetKey(vtkInformationUnsignedLongKey* key);
00355
00357
00358 VTK_COMMON_EXPORT virtual void Register(vtkObjectBase* o);
00359 VTK_COMMON_EXPORT virtual void UnRegister(vtkObjectBase* o);
00361
00363
00364 VTK_COMMON_EXPORT void SetRequest(vtkInformationRequestKey* request);
00365 VTK_COMMON_EXPORT vtkInformationRequestKey* GetRequest();
00367
00368 #if !defined(__WRAP__)
00369
00374 VTK_LEGACY(VTK_FILTERING_EXPORT void CopyEntry(vtkInformation* from, vtkInformationExecutivePortKey* key, int deep=0));
00375
00377
00379 VTK_LEGACY(VTK_FILTERING_EXPORT void Append(
00380 vtkInformationKeyVectorKey* key,
00381 vtkInformationExecutivePortKey* value));
00382
00383
00384
00385 VTK_LEGACY(VTK_FILTERING_EXPORT void AppendUnique(
00386 vtkInformationKeyVectorKey* key,
00387 vtkInformationExecutivePortKey* value));
00389
00391
00394 VTK_LEGACY(VTK_FILTERING_EXPORT
00395 void Set(vtkInformationExecutivePortKey* key, vtkExecutive*, int));
00396
00397
00398
00399 VTK_LEGACY(VTK_FILTERING_EXPORT
00400 vtkExecutive* GetExecutive(vtkInformationExecutivePortKey* key));
00401
00402
00403
00404 VTK_LEGACY(VTK_FILTERING_EXPORT
00405 int GetPort(vtkInformationExecutivePortKey* key));
00406
00407
00408
00409 VTK_LEGACY(VTK_FILTERING_EXPORT
00410 void Get(vtkInformationExecutivePortKey* key, vtkExecutive*& executive, int &port));
00411
00412
00413
00414 VTK_LEGACY(VTK_FILTERING_EXPORT
00415 void Remove(vtkInformationExecutivePortKey* key));
00416
00417
00418
00419 VTK_LEGACY(VTK_FILTERING_EXPORT
00420 int Has(vtkInformationExecutivePortKey* key));
00422
00424
00427 VTK_LEGACY(VTK_FILTERING_EXPORT
00428 void Append(vtkInformationExecutivePortVectorKey* key,
00429 vtkExecutive* executive, int port));
00430
00431
00432
00433 VTK_LEGACY(VTK_FILTERING_EXPORT
00434 void Remove(vtkInformationExecutivePortVectorKey* key,
00435 vtkExecutive* executive, int port));
00436
00437
00438
00439 VTK_LEGACY(VTK_FILTERING_EXPORT
00440 void Set(vtkInformationExecutivePortVectorKey* key,
00441 vtkExecutive** executives, int* ports, int length));
00442
00443
00444
00445 VTK_LEGACY(VTK_FILTERING_EXPORT
00446 vtkExecutive** GetExecutives(vtkInformationExecutivePortVectorKey* key));
00447
00448
00449
00450 VTK_LEGACY(VTK_FILTERING_EXPORT
00451 int* GetPorts(vtkInformationExecutivePortVectorKey* key));
00452
00453
00454
00455 VTK_LEGACY(VTK_FILTERING_EXPORT
00456 void Get(vtkInformationExecutivePortVectorKey* key,
00457 vtkExecutive** executives, int* ports));
00458
00459
00460
00461 VTK_LEGACY(VTK_FILTERING_EXPORT
00462 int Length(vtkInformationExecutivePortVectorKey* key));
00463
00464
00465
00466 VTK_LEGACY(VTK_FILTERING_EXPORT
00467 void Remove(vtkInformationExecutivePortVectorKey* key));
00468
00469
00470
00471 VTK_LEGACY(VTK_FILTERING_EXPORT
00472 int Has(vtkInformationExecutivePortVectorKey* key));
00474
00476
00478 VTK_LEGACY(VTK_FILTERING_EXPORT
00479 static vtkInformationKey* GetKey(vtkInformationExecutivePortKey* key));
00480 #endif // !defined(__WRAP__)
00481
00482
00483 protected:
00484 VTK_COMMON_EXPORT vtkInformation();
00485 VTK_COMMON_EXPORT ~vtkInformation();
00486
00487
00488
00489 VTK_COMMON_EXPORT void SetAsObjectBase(vtkInformationKey* key, vtkObjectBase* value);
00490 VTK_COMMON_EXPORT vtkObjectBase* GetAsObjectBase(vtkInformationKey* key);
00491
00492
00493 vtkInformationInternals* Internal;
00494
00495
00496 VTK_COMMON_EXPORT virtual void ReportReferences(vtkGarbageCollector*);
00497
00498
00499 VTK_COMMON_EXPORT void ReportAsObjectBase(vtkInformationKey* key,
00500 vtkGarbageCollector* collector);
00501
00502 private:
00503
00504 friend class vtkInformationKeyToInformationFriendship;
00505 friend class vtkInformationIterator;
00506
00507 private:
00508 VTK_COMMON_EXPORT vtkInformation(const vtkInformation&);
00509 VTK_COMMON_EXPORT void operator=(const vtkInformation&);
00510 vtkInformationRequestKey *Request;
00511 };
00512
00513 #endif