DDS Developers Documentation → "C" API → mod


Index
cdds_addaxis
cdds_align
cdds_axis_prod
cdds_binfd
cdds_calloc
cdds_check
cdds_close
cdds_closepr
cdds_closepr2
cdds_copy
cdds_count
cdds_datadefn
cdds_dict
cdds_errors
cdds_fflush
cdds_free
cdds_genus
cdds_get
cdds_history
cdds_in
cdds_index
cdds_info
cdds_initmpi
cdds_initmpix
cdds_initopenmp
cdds_isreg
cdds_key
cdds_lseek
cdds_lseek8
cdds_malloc
cdds_map
cdds_member
cdds_memuse
cdds_mod
cdds_name
cdds_newer
cdds_next
cdds_object
cdds_offset
cdds_open
cdds_openm
cdds_openpr
cdds_out
cdds_parent
cdds_prec
cdds_prev
cdds_prime
cdds_printf
cdds_printt
cdds_printv
cdds_prtcon
cdds_prterr
cdds_prthdr
cdds_prtmsg
cdds_put
cdds_read
cdds_readm
cdds_realloc
cdds_rmaxis
cdds_savepr
cdds_scale
cdds_scanf
cdds_scank
cdds_scant
cdds_scantn
cdds_scanv
cdds_switch
cdds_write
cdds_writem
setargcv

cdds_mod - initialize DDS dictionary for modification of binary data.

SYNOPSIS

#include "cdds.h"

const char * cdds_mod(alias, value, title, history);

const char *alias
const char *value
const char *title
const char *history

[ Description | Input | Output | Examples ]


DESCRIPTION

cdds_mod modifies an existing dictionary, or initializes a new one if it does not exist. If the dictionary already exists, the title definitions and "par:" dictionary are appended to it. If the dictionary does not exist, it is initialized with a copy of the history dictionary. One dictionary name is returned as the function value. The dictionary is selected for scan mode, before cdds_mod returns. No dictionary is selected for print mode.

Applications may update the dictionary contents by appending (print) definitions. The cdds_open function may also update the dictionary. Changes are frozen, after the binary data is opened.

Note: This function changes the scan and print dictionary selection. It implicitly calls cdds_dict to select new names and modes. After a dictionary is initialized, it may be switched between scan and print modes by calling cdds_dict.

INPUT

cdds_mod accepts a dictionary name either indirectly via alias or by default via value.

Mutiple definition names, delimited by white space, may be specified by alias. If specified, the "par:" dictionary is searched. If a definition is found, its value is taken as a dictionary name. This feature is disabled, if a null alias is specified (i.e. NULL, zero length string, or a string that only contains white space).

A default dictionary name may be specified by value. The default is used if the "par:" dictionary does not define alias, or a null alias is specified. If there is no appropriate default, then a null value should be specified. A temporary dictionary is created, if an explicit name is not available.

The value default is ignored in special cases. These exceptions make it convenient to use DDS programs with standard formats and non-DDS applications. cdds_mod ignores the default, if value is "stdin:" or "stdout:".

The title argument should provide a brief (one line) description of the application program. The title is accumulated in the history, along with other definitions (it is not used if a new dictionary is being created). For example:

...previous history
DDS_SENTRY= $Revision: 57 $ $Date: 2009-02-11 17:09:37 -0600 (Wed, 11 Feb 2009) $
********************************************
******************* TITLE ******************
********************************************
cmd_title=  "bridge, convert seismic data"
cmd_name= /dist/Linux/2.6/mbs/prod/i686/bridge
cmd_rev= 1.10
cmd_user= DoeJohnw
cmd_date= Mon Oct 23 10:24:20 2006
cmd_host= machine2
cmd_cwd= /data/line2
cmd_pid= 6753
alias:sep_in= in
$size=
$origin=
$delta=
$units=
dds_history{= par:
...contents of par: dictionary
dds_history}= par:
    
The history argument should name a dictionary that contains the processing history. The history is copied when a new dictionary is created, otherwise it is not used.

OUTPUT

A constant character pointer is returned containing the opened dictionary name and the dictionary is setup for printing definitions if it is being created; otherwise it is setup for scaning.

The dictionary is closed and the memory is freed when the associated binary file is closed. However, if the memory for the output dictionary names must be freed then use cdds_free instead of any other system 'free' routine.

EXAMPLES

const char *mod_dict;

/* create/update velocity model dictionary */
mod_dict = cdds_mod("vel", "model", "model update", in_dict);
          

SEE ALSO

cdds_dict Select DDS dictionary and mode
    

AUTHOR

R. L. Selzler, EPTG (Oct 1995)
For additional help, open an issue here