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 <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 << (vtkTypeInt64 value);
00048   vtkMultiProcessStream& operator << (vtkTypeUInt64 value);
00049   vtkMultiProcessStream& operator << (const vtkstd::string& value);
00051 
00053 
00054   vtkMultiProcessStream& operator >> (double &value);
00055   vtkMultiProcessStream& operator >> (float &value);
00056   vtkMultiProcessStream& operator >> (int &value);
00057   vtkMultiProcessStream& operator >> (char &value);
00058   vtkMultiProcessStream& operator >> (unsigned int &value);
00059   vtkMultiProcessStream& operator >> (unsigned char &value);
00060   vtkMultiProcessStream& operator >> (vtkTypeInt64 &value);
00061   vtkMultiProcessStream& operator >> (vtkTypeUInt64 &value);
00062   vtkMultiProcessStream& operator >> (vtkstd::string &value);
00064 
00066   void Reset();
00067 
00069 
00071   void GetRawData(vtkstd::vector<unsigned char>& data) const;
00072   void SetRawData(const vtkstd::vector<unsigned char>& data);
00074 
00075 private:
00076   class vtkInternals;
00077   vtkInternals* Internals;
00078   unsigned char Endianness;
00079   enum 
00080     {
00081     BigEndian,
00082     LittleEndian
00083     };
00084 };
00085 
00086 #endif
00087 
00088