Packing and Unpacking Data
- pvm_packs - Pack the active message buffer with arrays of prescribed data type:
- int info = pvm_packf( const char *fmt, ... )
- int info = pvm_pkbyte( char *xp, int nitem, int stride )
- int info = pvm_pkcplx( float *cp, int nitem, int stride )
- int info = pvm_pkdcplx( double *zp, int nitem, int stride )
- int info = pvm_pkdouble( double *dp, int nitem, int stride )
- int info = pvm_pkfloat( float *fp, int nitem, int stride )
- int info = pvm_pkint( int *ip, int nitem, int stride )
- int info = pvm_pkuint( unsigned int *ip, int nitem, int stride )
- int info = pvm_pkushort( unsigned short *ip, int nitem, int stride )
- int info = pvm_pkulong( unsigned long *ip, int nitem, int stride )
- int info = pvm_pklong( long *ip, int nitem, int stride )
- int info = pvm_pkshort( short *jp, int nitem, int stride )
- int info = pvm_pkstr( char *sp )
fmt Printf-like format expression states what to pack. nitem is the total number of items to be packed (not the number of bytes). stride is the stride to be used when packing the items.
- pvm_unpack - Unpacks the active message buffer into arrays of given data type. It has been executed for different data types:
- int info = pvm_unpackf( const char *fmt, ... )
- int info = pvm_upkbyte( char *xp, int nitem, int stride)
- int info = pvm_upkcplx( float *cp, int nitem, int stride)
- int info = pvm_upkdcplx( double *zp, int nitem, int stride)
- int info = pvm_upkdouble( double *dp, int nitem, int stride)
- int info = pvm_upkfloat( float *fp, int nitem, int stride)
- int info = pvm_upkint( int *ip, int nitem, int stride)
- int info = pvm_upkuint( unsigned int *ip, int nitem, int stride )
- int info = pvm_upkushort( unsigned short *ip, int nitem, int stride )
- int info = pvm_upkulong( unsigned long *ip, int nitem, int stride )
- int info = pvm_upklong( long *ip, int nitem, int stride)
- int info = pvm_upkshort( short *jp, int nitem, int stride)
- int info = pvm_upkstr( char *sp )
Each of the pvm_upk* routines unpacks an array of the specify data type from the active receive buffer. The arguments for each one of the routines are a pointer to the array to be unpacked into, nitem which is the whole number of items to unpack, and stride which is the stride to make use of when unpacking. An exception is pvm_upkstr() which by definition unpacks a NULL terminated character string and therefore does not need nitem or stride arguments.