0001 MKFLDHDR(8)
0002 ===========
0003 :doctype: manpage
0004
0005
0006 NAME
0007 ----
0008 mkfldhdr - Generate C header files for UBF field definitions.
0009
0010
0011 SYNOPSIS
0012 --------
0013 *mkfldhdr* [-D dbglev, legacy] [-d target directory] [field table ...]
0014
0015
0016 DESCRIPTION
0017 -----------
0018 Program generates C header files from field table declaration tables.
0019 Field tables are declared as macros which later are translated into C header
0020 files. Field tables also are used in runtime in boolean expressions and
0021 also in dumping the buffer.
0022
0023 There is special syntax within field tables.
0024
0025 * Lines to be sent to C Header are declared as: '$'
0026 * The base number is declared as '*base NUMBER'. The number is logical field
0027 offset.
0028 * Empty lines are ignored.
0029 * '#' Is comment, which is ignored.
0030 * All other are treated as field name in start of the line.
0031 * Syntax for field definition is following: "FIELD_NAME ID TYPE FLAG DESCRIPTION"
0032 where
0033
0034 *FIELD_NAME*::
0035 Is field UBF field name.
0036
0037 *TYPE*::
0038 Field type, may be one of the following *short*, *long*, *char*, *float*, *double*
0039 *string*, *carray*, *ptr*, *ubf* (or *fml32*), *view*.
0040 *ID*::
0041 Is relative field it within '*base'. '*base'+field ID must be bellow
0042 'NDRX_UBFMAXFLDS' number defined in environment. Max number is 33554432 (25 bit).
0043
0044 *FLAG*::
0045 Flags, RFU, use *-*. Historically *1* - single field. *M* - maybe be multiple fields.
0046 Values *1* and *M* are synonyms to *-*.
0047
0048 *DESCRIPTION*::
0049 Field description.
0050
0051 Example input (testws.fd file):
0052
0053 -----------------------------------------------------
0054 $/**
0055 $ * Web service test ud file.
0056 $ *
0057 $ * @file testws.fd
0058 $ * @copyright Mavimax, ltd
0059 $ * @version SVN: $Id$
0060 $ */
0061
0062 $#ifndef __TEST_FD
0063 $#define __TEST_FD
0064
0065 *base 1000
0066
0067 T_STATCODE 0 long - Test field...
0068 T_STATMSG 1 string - Test field...
0069 T_ITEMSTOT 2 long - Test field...
0070 T_AMTSTRTOT 3 string - Test field...
0071 T_PAGESTOT 4 long - Test field...
0072 T_SHORT 5 short - Test field...
0073 T_CHAR 6 char - Test field...
0074 T_FLOAT 7 float - Test field...
0075 T_DOUBLE 8 double - Test field...
0076 T_STRING 9 string - Test field...
0077 T_USERNAME 10 string - Test field...
0078 T_PAGENUM 11 long - Test field...
0079 T_ITEMSPP 12 long - Test field...
0080
0081 T_SOMEDATE 13 long - Test field...
0082 T_SRCHDATE 14 long - Test field...
0083 T_SRCHPRM1 15 string - Test field...
0084 T_SRCHPRM2 16 string - Test field...
0085 T_MYFIELDS 17 string - Test field...
0086 SRVCNM 18 string - Service name to call
0087 T_CONSTFIELD 19 string - This is constant.
0088 T_MYLONGFLDS 20 long - Long array test
0089
0090 $#endif
0091 -----------------------------------------------------
0092
0093 Example output after utility run (testws.fd.h):
0094
0095 -----------------------------------------------------
0096 /**
0097 * Web service test ud file.
0098 *
0099 * @file testws.fd
0100 * @copyright Mavimax, ltd
0101 * @version SVN: $Id$
0102 */
0103 #ifndef __TEST_FD
0104 #define __TEST_FD
0105 /* fname bfldid */
0106 /* ----- ----- */
0107 #define T_STATCODE ((BFLDID32)33555432) /* number: 1000 type: long */
0108 #define T_STATMSG ((BFLDID32)167773161) /* number: 1001 type: string */
0109 #define T_ITEMSTOT ((BFLDID32)33555434) /* number: 1002 type: long */
0110 #define T_AMTSTRTOT ((BFLDID32)167773163) /* number: 1003 type: string */
0111 #define T_PAGESTOT ((BFLDID32)33555436) /* number: 1004 type: long */
0112 #define T_SHORT ((BFLDID32)1005) /* number: 1005 type: short */
0113 #define T_CHAR ((BFLDID32)67109870) /* number: 1006 type: char */
0114 #define T_FLOAT ((BFLDID32)100664303) /* number: 1007 type: float */
0115 #define T_DOUBLE ((BFLDID32)134218736) /* number: 1008 type: double */
0116 #define T_STRING ((BFLDID32)167773169) /* number: 1009 type: string */
0117 #define T_USERNAME ((BFLDID32)167773170) /* number: 1010 type: string */
0118 #define T_PAGENUM ((BFLDID32)33555443) /* number: 1011 type: long */
0119 #define T_ITEMSPP ((BFLDID32)33555444) /* number: 1012 type: long */
0120 #define T_SOMEDATE ((BFLDID32)33555445) /* number: 1013 type: long */
0121 #define T_SRCHDATE ((BFLDID32)33555446) /* number: 1014 type: long */
0122 #define T_SRCHPRM1 ((BFLDID32)167773175) /* number: 1015 type: string */
0123 #define T_SRCHPRM2 ((BFLDID32)167773176) /* number: 1016 type: string */
0124 #define T_MYFIELDS ((BFLDID32)167773177) /* number: 1017 type: string */
0125 #define SRVCNM ((BFLDID32)167773178) /* number: 1018 type: string */
0126 #define T_CONSTFIELD ((BFLDID32)167773179) /* number: 1019 type: string */
0127 #define T_MYLONGFLDS ((BFLDID32)33555452) /* number: 1020 type: long */
0128 #endif
0129 -----------------------------------------------------
0130
0131
0132 ENVIRONMENT
0133 -----------
0134 *FIELDTBLS*::
0135 Comma separated list of field table file names.
0136
0137 *FLDTBLDIR*::
0138 Colon separated list of directories where field tables are located.
0139
0140 OPTIONS
0141 -------
0142 *-D* 'DEBUG_LEVEL'::
0143 Not used. Left for capability with Tuxedo.
0144
0145 *-d* 'OUTPUT_DIR'::
0146 Directory where to dump the generated header files.
0147
0148 *-m* 'LANGUAGE_MODE'::
0149 Language mode. Value '0' (default) for C language header. '1' for GO language
0150 constants file. '2' for Java constant classes. '3' for Python constants file.
0151
0152 *-p* 'LANG_PRIVATE_DATA'::
0153 Private data for language module. For GO and Java languages
0154 it is used for package name.
0155
0156 NDRX_APIFLAGS
0157 -------------
0158
0159 This section lists *NDRX_APIFLAGS* environment variable parameter special flags
0160 affecting work of the *mkfldhdr*:
0161
0162 . API flag *ubf_dupfidok* configures *mkfldhdr* to accept the duplicate field IDs.
0163 This matches Oracle Tuxedo logic.
0164
0165 EXIT STATUS
0166 -----------
0167 *0*::
0168 Success
0169
0170 *NON_ZERO*::
0171 Failure
0172
0173 BUGS
0174 ----
0175 Report bugs to support@mavimax.com
0176
0177 SEE ALSO
0178 --------
0179 *ex_overview(guides)*, *ex_env(5)*
0180
0181 COPYING
0182 -------
0183 (C) Mavimax, Ltd
0184