Ricoh InfoPrint Pro C900AFP InfoPrint Manager - Page 91

Output record exit, asciinp.c, usr/lpp/psf/acif, outexit, line2afp, work Bytes 1-4, pfattr Bytes 5-8

Page 91 highlights

For more information about using and modifying these programs, see the prologue of the asciinp.c source file that is provided with InfoPrint Manager in the /usr/lpp/psf/acif directory. Output record exit Using the output-record exit, you can modify or ignore the records the line-data transform writes into the output file. The program invoked at this exit is defined by the outexit keyword of the line2afp command. The exit receives control before a record (structured field) is written to the output document file. The exit can request that the record be ignored or processed. The largest record that the exit can process is 32752 bytes, not including the record descriptor word. The exit is not called when the line-data transform is processing resources. Figure 3 contains a sample C language header that describes the control block passed to the exit program. typedef struct _OUTEXIT_PARMS /* Parameters for resource record exit */ { char *work; /* Address of 16-byte static work area */ PFATTR *pfattr; /* Address of print file attribute information */ char *record; /* Address of the record to be written */ unsigned short recordln; /* Length of the output record */ char request; /* Delete or process the record */ char eof; /* Last call indicator */ }OUTEXIT_PARMS; Figure 3. Sample output record exit C language header The address of the control block containing these parameters is passed to the output record exit: work (Bytes 1-4) A pointer to a static, 16-byte memory block. The exit program can use this parameter to save information across calls (for example, pointers to work areas). The 16-byte work area is aligned on a full word boundary and is initialized to binary zeros before the first call. A user-written exit program must provide the code required to manage this work area. pfattr (Bytes 5-8) A pointer to the print file attribute data structure. See "Attributes of the line-data input file" on page 80 for more information about the format of this data structure and the information it contains. record (Bytes 9-12) A pointer to the first byte of the output record. The record is located in a 32KB (where KB equals 1024 bytes) buffer. The buffer is located in storage allocated by the line-data transform, but the exit program is allowed to modify the output record. recordln (Bytes 13-14) Specifies the length, in bytes, of the output record. If the output record is modified, this parameter must also be updated to reflect the actual length of the record. request (Byte 15) Specifies how the line-data transform processes the record. On entry to the exit program, this parameter is X'00'. When the exit program returns control to the line-data transform, this parameter must have the value X'00' or X'01', where: Chapter 6. User-exit programs (PSF, Generalized Fax, and Email DSS only) 77

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309
  • 310
  • 311
  • 312
  • 313
  • 314
  • 315
  • 316
  • 317
  • 318
  • 319
  • 320
  • 321
  • 322
  • 323
  • 324
  • 325
  • 326
  • 327
  • 328
  • 329
  • 330
  • 331
  • 332
  • 333
  • 334
  • 335
  • 336
  • 337
  • 338
  • 339
  • 340
  • 341
  • 342
  • 343
  • 344
  • 345
  • 346
  • 347
  • 348
  • 349
  • 350
  • 351
  • 352
  • 353
  • 354
  • 355
  • 356
  • 357
  • 358
  • 359
  • 360
  • 361
  • 362
  • 363
  • 364
  • 365
  • 366
  • 367
  • 368
  • 369
  • 370
  • 371
  • 372
  • 373
  • 374
  • 375
  • 376
  • 377
  • 378
  • 379
  • 380
  • 381
  • 382
  • 383
  • 384
  • 385
  • 386
  • 387
  • 388
  • 389
  • 390
  • 391
  • 392
  • 393
  • 394
  • 395
  • 396
  • 397
  • 398
  • 399
  • 400
  • 401
  • 402
  • 403
  • 404
  • 405
  • 406
  • 407
  • 408
  • 409
  • 410
  • 411
  • 412
  • 413
  • 414
  • 415
  • 416
  • 417
  • 418

For more information about using and modifying these programs, see the prologue
of the
asciinp.c
source file that is provided with InfoPrint Manager in the
/usr/lpp/psf/acif
directory.
Output record exit
Using the output-record exit, you can modify or ignore the records the line-data
transform writes into the output file. The program invoked at this exit is defined
by the
outexit
keyword of the
line2afp
command.
The exit receives control before a record (structured field) is written to the output
document file. The exit can request that the record be ignored or processed. The
largest record that the exit can process is 32752 bytes, not including the record
descriptor word. The exit is not called when the line-data transform is processing
resources.
Figure 3 contains a sample C language header that describes the control block
passed to the exit program.
The address of the control block containing these parameters is passed to the
output record exit:
work (Bytes 1–4)
A pointer to a static, 16-byte memory block. The exit program can use this
parameter to save information across calls (for example, pointers to work
areas). The 16-byte work area is aligned on a full word boundary and is
initialized to binary zeros before the first call. A user-written exit program
must provide the code required to manage this work area.
pfattr (Bytes 5–8)
A pointer to the print file attribute data structure. See “Attributes of the
line-data input file” on page 80 for more information about the format of this
data structure and the information it contains.
record (Bytes 9–12)
A pointer to the first byte of the output record. The record is located in a 32KB
(where KB equals 1024 bytes) buffer. The buffer is located in storage allocated
by the line-data transform, but the exit program is allowed to modify the
output record.
recordln (Bytes 13–14)
Specifies the length, in bytes, of the output record. If the output record is
modified, this parameter must also be updated to reflect the actual length of
the record.
request (Byte 15)
Specifies how the line-data transform processes the record. On entry to the exit
program, this parameter is X'00'. When the exit program returns control to the
line-data transform, this parameter must have the value X'00' or X'01', where:
typedef struct _OUTEXIT_PARMS /* Parameters for resource record exit
*/
{
char
*work;
/* Address of 16-byte static work area
*/
PFATTR
*pfattr;
/* Address of print file attribute information */
char
*record;
/* Address of the record to be written
*/
unsigned short recordln;
/* Length of the output record
*/
char
request;
/* Delete or process the record
*/
char
eof;
/* Last call indicator
*/
}OUTEXIT_PARMS;
Figure 3. Sample output record exit C language header
Chapter 6. User-exit programs (PSF, Generalized Fax, and Email DSS only)
77