Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

3Darray.h

Go to the documentation of this file.
00001 //**************************************************************************
00002 #ifndef _3DARRAY_H
00003 #define _3DARRAY_H
00004 //**************************************************************************
00005 #include "myendian.h"
00006 #include "remotesocket.h"
00007 //**************************************************************************
00008 template <class Etype>
00009 inline int RemoteSocket::SendArray3D(Etype ***a, int n1, int n2, int n3)
00010 {
00011 static int elemsize = sizeof(Etype);
00012 int rowsize = elemsize*n3;
00013 int totsize = rowsize*n1*n2;
00014 unsigned char *data;
00015 ALLOC1D(&data, totsize);
00016 int ptr = 0;
00017 
00018 for (int i = 0; i < n1; i++)
00019 for (int j = 0; j < n2; j++)
00020         {
00021          memcpy(&data[ptr], &a[i][j][0], rowsize);
00022          ptr += rowsize;
00023         }
00024 
00025 setByteOrder(data, totsize, elemsize);
00026 SendBytes(totsize, data);
00027 FREE1D(&data, totsize);
00028 
00029 return 0;
00030 }
00031 //**************************************************************************
00032 template <class Etype>
00033 inline int RemoteSocket::RecvArray3D(Etype ***a, int n1, int n2, int n3)
00034 {
00035 static int elemsize = sizeof(Etype);
00036 int rowsize = elemsize*n3;
00037 int totsize = rowsize*n1*n2;
00038 unsigned char *data;
00039 ALLOC1D(&data, totsize);
00040 int ptr = 0;
00041 
00042 RecvBytes(totsize, data);
00043 setByteOrder(data, totsize, elemsize);
00044 
00045 for (int i = 0; i < n1; i++)
00046 for (int j = 0; j < n2; j++)
00047         {
00048          memcpy(&a[i][j][0], &data[ptr], rowsize);
00049          ptr += rowsize;
00050         }
00051 
00052 FREE1D(&data, totsize);
00053 
00054 return 0;
00055 }
00056 //**************************************************************************
00057 #endif // _3DARRAY_H
00058 //**************************************************************************

Generated on Sun Jun 16 17:36:48 2002 for POSSE: Portable Object-oriented Scientific Steering Environment by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001