Next: , Previous: bpipe_dpktf_datap, Up: Data Packet Field Manipulations


A.3.7 bpipe_dpktf_delete

Delete a data packet field.

Synopsis

     #include <bpipe/bpipe.h>
     
     
     
int bpipe_dpktf_delete( BPipe *bpipe, const char *name, BPDataSite site, BPipeOutput *channel );

Parameters

BPipe *bpipe
the binary pipe with which the data packet is associated
const char *name
the name of the field to delete
BPDataSite site
the data site from which to delete the field
          
          
Possible values for a BPDataSite are as follows: BPDSite_INPUT, BPDSite_CORE, BPDSite_OUTPUT
BPipeOutput *channel
the output channel for which to delete this field. (only relevant for deletion from output sites)

Description

This routine deletes a field from the definition of either the core or output images of a data packet. The site argument specifies the data site from which to delete the field, and should be either of the constants BPDSite_CORE or BPDSite_OUTPUT (denoting the core and output images, respectively). In the latter case, it is deleted from the specified output channel. If the output channel is the constant BPOutputChannel_ALL (or NULL), the field is deleted from all output channels.

Note that once a field is deleted from the core image, it's gone! If a field of the same name is added, it's a completely new field, not the one that was in the input image.

Returns

It returns ‘0’ if the deletion was successful, ‘1’ if the field doesn't exist. Upon error it returns ‘-1’ and sets bpipe_errno.

Errors

Upon error bpipe_errno is set to one of the following:

BPEBADARG

BPENOMEM
a memory allocation failed