00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkMultiProcessStream.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 =========================================================================*/ 00024 #ifndef __vtkMultiProcessStream_h 00025 #define __vtkMultiProcessStream_h 00026 00027 #include "vtkObject.h" 00028 #include <vtkstd/vector> // needed for vector. 00029 #include <vtkstd/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 << (const vtkstd::string& value); 00049 00051 00052 vtkMultiProcessStream& operator >> (double &value); 00053 vtkMultiProcessStream& operator >> (float &value); 00054 vtkMultiProcessStream& operator >> (int &value); 00055 vtkMultiProcessStream& operator >> (char &value); 00056 vtkMultiProcessStream& operator >> (unsigned int &value); 00057 vtkMultiProcessStream& operator >> (unsigned char &value); 00058 vtkMultiProcessStream& operator >> (vtkstd::string &value); 00060 00062 void Reset(); 00063 00065 00067 void GetRawData(vtkstd::vector<unsigned char>& data) const; 00068 void SetRawData(const vtkstd::vector<unsigned char>& data); 00070 00071 private: 00072 class vtkInternals; 00073 vtkInternals* Internals; 00074 unsigned char Endianness; 00075 enum 00076 { 00077 BigEndian, 00078 LittleEndian 00079 }; 00080 }; 00081 00082 #endif 00083 00084