VTK
dox/Parallel/vtkMultiProcessStream.h
Go to the documentation of this file.
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