VTK
/Users/kitware/Dashboards/MyTests/VTK_BLD_Release_docs/Utilities/Doxygen/dox/Parallel/Core/vtkFieldDataSerializer.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003  Program:   Visualization Toolkit
00004  Module:    vtkFieldDataSerializer.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  =========================================================================*/
00030 #ifndef VTKFIELDDATASERIALIZER_H_
00031 #define VTKFIELDDATASERIALIZER_H_
00032 
00033 #include "vtkParallelCoreModule.h" // For export macro
00034 #include "vtkObject.h"
00035 
00036 // Forward declarations
00037 class vtkIdList;
00038 class vtkFieldData;
00039 class vtkDataArray;
00040 class vtkStringArray;
00041 class vtkIntArray;
00042 class vtkMultiProcessStream;
00043 
00044 class VTKPARALLELCORE_EXPORT vtkFieldDataSerializer : public vtkObject
00045 {
00046   public:
00047     static vtkFieldDataSerializer* New();
00048     vtkTypeMacro(vtkFieldDataSerializer,vtkObject);
00049     void PrintSelf(ostream& os, vtkIndent indent);
00050 
00052 
00054     static void SerializeMetaData(
00055         vtkFieldData *fieldData, vtkMultiProcessStream& bytestream);
00057 
00059 
00069     static void DeserializeMetaData(
00070         vtkMultiProcessStream& bytestream,
00071         vtkStringArray *names,
00072         vtkIntArray *datatypes,
00073         vtkIntArray *dimensions);
00075 
00077 
00079     static void Serialize(
00080         vtkFieldData *fieldData, vtkMultiProcessStream& bytestream);
00082 
00084 
00086     static void SerializeTuples(
00087         vtkIdList *tupleIds, vtkFieldData *fieldData,
00088         vtkMultiProcessStream& bytestream);
00090 
00092 
00096     static void SerializeSubExtent(
00097         int subext[6], int gridExtent[6], vtkFieldData *fieldData,
00098         vtkMultiProcessStream& bytestream);
00100 
00102 
00106     static void DeSerializeToSubExtent(
00107         int subext[6], int gridExtent[6], vtkFieldData *fieldData,
00108         vtkMultiProcessStream& bytestream);
00110 
00112 
00113     static void Deserialize(
00114         vtkMultiProcessStream& bytestream, vtkFieldData *fieldData );
00116 
00117   protected:
00118     vtkFieldDataSerializer();
00119     virtual ~vtkFieldDataSerializer();
00120 
00122 
00124     static vtkDataArray* ExtractSelectedTuples(
00125         vtkIdList *tupleIds, vtkDataArray *inputDataArray );
00127 
00129 
00131     static vtkDataArray* ExtractSubExtentData(
00132         int subext[6], int gridExtent[6], vtkDataArray *inputDataArray);
00134 
00136 
00137     static void SerializeDataArray(
00138         vtkDataArray *dataArray, vtkMultiProcessStream& bytestream );
00140 
00142 
00143     static void DeserializeDataArray(
00144         vtkMultiProcessStream& bytestream, vtkDataArray *&dataArray );
00146 
00147 
00148   private:
00149     vtkFieldDataSerializer(const vtkFieldDataSerializer&); // Not implemented
00150     void operator=(const vtkFieldDataSerializer&); // Not implemented
00151 };
00152 
00153 #endif /* VTKFIELDDATASERIALIZER_H_ */