/usr/include/vtk-6.2/vtkMultiProcessStream.h is in libvtk6-dev 6.2.0+dfsg1-10build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 | /*=========================================================================
Program: Visualization Toolkit
Module: vtkMultiProcessStream.h
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
// .NAME vtkMultiProcessStream - stream used to pass data across processes
// using vtkMultiProcessController.
// .SECTION Description
// vtkMultiProcessStream is used to pass data across processes. Using
// vtkMultiProcessStream it is possible to send data whose length is not known
// at the receiving end.
//
// .SECTION Caveats
// Note, stream operators cannot be combined with the Push/Pop array operators.
// For example, if you push an array to the stream,
#ifndef vtkMultiProcessStream_h
#define vtkMultiProcessStream_h
#include "vtkParallelCoreModule.h" // For export macro
#include "vtkObject.h"
#include <vector> // needed for vector.
#include <string> // needed for string.
class VTKPARALLELCORE_EXPORT vtkMultiProcessStream
{
public:
vtkMultiProcessStream();
vtkMultiProcessStream(const vtkMultiProcessStream&);
~vtkMultiProcessStream();
vtkMultiProcessStream& operator=(const vtkMultiProcessStream&);
// Description:
// Add-to-stream operators. Adds to the end of the stream.
vtkMultiProcessStream& operator << (double value);
vtkMultiProcessStream& operator << (float value);
vtkMultiProcessStream& operator << (int value);
vtkMultiProcessStream& operator << (char value);
vtkMultiProcessStream& operator << (bool value);
vtkMultiProcessStream& operator << (unsigned int value);
vtkMultiProcessStream& operator << (unsigned char value);
vtkMultiProcessStream& operator << (vtkTypeInt64 value);
vtkMultiProcessStream& operator << (vtkTypeUInt64 value);
vtkMultiProcessStream& operator << (const std::string& value);
// Without this operator, the compiler would convert
// a char* to a bool instead of a std::string.
vtkMultiProcessStream& operator << (const char* value);
vtkMultiProcessStream& operator << (const vtkMultiProcessStream&);
// Description:
// Remove-from-stream operators. Removes from the head of the stream.
vtkMultiProcessStream& operator >> (double &value);
vtkMultiProcessStream& operator >> (float &value);
vtkMultiProcessStream& operator >> (int &value);
vtkMultiProcessStream& operator >> (char &value);
vtkMultiProcessStream& operator >> (bool &value);
vtkMultiProcessStream& operator >> (unsigned int &value);
vtkMultiProcessStream& operator >> (unsigned char &value);
vtkMultiProcessStream& operator >> (vtkTypeInt64 &value);
vtkMultiProcessStream& operator >> (vtkTypeUInt64 &value);
vtkMultiProcessStream& operator >> (std::string &value);
vtkMultiProcessStream& operator >> (vtkMultiProcessStream&);
// Description:
// Add-array-to-stream methods. Adds to the end of the stream
void Push(double array[], unsigned int size);
void Push(float array[], unsigned int size);
void Push(int array[], unsigned int size);
void Push(char array[], unsigned int size);
void Push(unsigned int array[], unsigned int size );
void Push(unsigned char array[], unsigned int size );
void Push(vtkTypeInt64 array[], unsigned int size );
void Push(vtkTypeUInt64 array[], unsigned int size );
// Description:
// Remove-array-to-stream methods. Removes from the head of the stream.
// Note: If the input array is NULL, the array will be allocated internally
// and the calling application is responsible for properly de-allocating it.
// If the input array is not NULL, it is expected to match the size of the
// data internally, and this method would just fill in the data.
void Pop(double*& array, unsigned int& size);
void Pop(float*& array, unsigned int& size);
void Pop(int*& array, unsigned int& size);
void Pop(char*& array, unsigned int& size);
void Pop(unsigned int*& array, unsigned int& size );
void Pop(unsigned char*& array, unsigned int& size );
void Pop(vtkTypeInt64*& array, unsigned int& size );
void Pop(vtkTypeUInt64*& array, unsigned int& size );
// Description:
// Clears everything in the stream.
void Reset();
// Description:
// Returns the size of the stream.
int Size();
// Description:
// Returns the size of the raw data returned by GetRawData. This
// includes 1 byte to store the endian type.
int RawSize()
{return(this->Size()+1);};
// Description:
// Returns true iff the stream is empty.
bool Empty();
// Description:
// Serialization methods used to save/restore the stream to/from raw data.
// Note: The 1st byte of the raw data buffer consists of the endian type.
void GetRawData(std::vector<unsigned char>& data) const;
void GetRawData( unsigned char*& data, unsigned int &size );
void SetRawData(const std::vector<unsigned char>& data);
void SetRawData(const unsigned char*, unsigned int size);
private:
class vtkInternals;
vtkInternals* Internals;
unsigned char Endianness;
enum
{
BigEndian,
LittleEndian
};
};
#endif
// VTK-HeaderTest-Exclude: vtkMultiProcessStream.h
|