VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkMultiProcessStream.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 =========================================================================*/ 00024 #ifndef __vtkMultiProcessStream_h 00025 #define __vtkMultiProcessStream_h 00026 00027 #include "vtkObject.h" 00028 #include <vector> // needed for vector. 00029 #include <string> // needed for string. 00030 00031 class VTK_PARALLEL_EXPORT vtkMultiProcessStream 00032 { 00033 public: 00034 vtkMultiProcessStream(); 00035 vtkMultiProcessStream(const vtkMultiProcessStream&); 00036 ~vtkMultiProcessStream(); 00037 vtkMultiProcessStream& operator=(const vtkMultiProcessStream&); 00038 00040 00041 vtkMultiProcessStream& operator << (double value); 00042 vtkMultiProcessStream& operator << (float value); 00043 vtkMultiProcessStream& operator << (int value); 00044 vtkMultiProcessStream& operator << (char value); 00045 vtkMultiProcessStream& operator << (unsigned int value); 00046 vtkMultiProcessStream& operator << (unsigned char value); 00047 vtkMultiProcessStream& operator << (vtkTypeInt64 value); 00048 vtkMultiProcessStream& operator << (vtkTypeUInt64 value); 00049 vtkMultiProcessStream& operator << (const std::string& value); 00050 vtkMultiProcessStream& operator << (const vtkMultiProcessStream&); 00052 00054 00055 vtkMultiProcessStream& operator >> (double &value); 00056 vtkMultiProcessStream& operator >> (float &value); 00057 vtkMultiProcessStream& operator >> (int &value); 00058 vtkMultiProcessStream& operator >> (char &value); 00059 vtkMultiProcessStream& operator >> (unsigned int &value); 00060 vtkMultiProcessStream& operator >> (unsigned char &value); 00061 vtkMultiProcessStream& operator >> (vtkTypeInt64 &value); 00062 vtkMultiProcessStream& operator >> (vtkTypeUInt64 &value); 00063 vtkMultiProcessStream& operator >> (std::string &value); 00064 vtkMultiProcessStream& operator >> (vtkMultiProcessStream&); 00066 00068 void Reset(); 00069 00071 00073 void GetRawData(std::vector<unsigned char>& data) const; 00074 void SetRawData(const std::vector<unsigned char>& data); 00075 void SetRawData(const unsigned char*, unsigned int size); 00077 00078 private: 00079 class vtkInternals; 00080 vtkInternals* Internals; 00081 unsigned char Endianness; 00082 enum 00083 { 00084 BigEndian, 00085 LittleEndian 00086 }; 00087 }; 00088 00089 #endif 00090 00091