Next: bpipe_dpktf_arr, Previous: bpipe_dpkt_n, Up: Data Packet Field Manipulations
Add a data packet field to the core image of a data packet.
#include <bpipe/bpipe.h>int bpipe_dpktf_add( BPipe *bpipe, const char *name, BPDataType type, BPMatrix *matrix );
BPipe *bpipe
- the binary pipe to which to add the new data packet field
const char *name
- the name of the new field
BPDataType type
- the data type of the new field
Possible values for aBPDataType
are as follows:BPDType_char
,BPDType_double
,BPDType_int
,BPDType_uint
,BPDType_DVector2
,BPDType_DVector3
,BPDType_IVector2
,BPDType_IVector3
,BPDType_UIVector2
,BPDType_UIVector3
,BPDType_DComplex
,BPDType_DCVector2
,BPDType_DCVector3
BPMatrix *matrix
- the field's matrix description
This routine adds a new field to the definition of the core image of
a data packet. If no similarly named field exists, a new field with
the given name is created and placed at the end of the list of
current fields. The name data is duplicated. If the matrix
specification is NULL
, a matrix specification for a scalar is
constructed.
If the calling procedure constructs a matrix specification (a
BPMatrix
structure), bpipe_dpktf_add
uses this
structure as is and directs the BPipe
cleanup code to take
responsibility for freeing it. The calling procedure should
not free it, nor should it pass it to any other BPipe
routine which takes responsibility for freeing it. It should
not alter it in any way after passing it to bpipe_dpktf_add
.
It returns ‘0’ upon success. If a field with the same name
already exists, it returns ‘1’. It returns ‘-1’ upon
error, and sets bpipe_errno
.
Upon error bpipe_errno
is set to one of the following:
BPEBADARG
NULL
or had illegal
characters in it.
BPENOMEM