Ricoh InfoPrint Pro C900AFP InfoPrint Manager - Page 98

could affect printer performance, exits\psf\ainuxind.c, exits\psf, INDATA_EXITDATA, version

Page 98 highlights

v Any delays caused by this exit will translate into a PSF processing delay and could affect printer performance. v This exit is not passed any structured fields that are contained in resources that are processed. This includes: form definitions, overlays, page segments, fonts, data object resources, internal medium maps, and data object fonts. v Code processing must be able to handle PSF repositioning. Repositioning might occur as a result of errors or operator commands. PSF might reposition items forward into the print job, skip structured fields, or reposition items back into previously processed data. If PSF repositions back into the print file, it is the responsibility of the exit to return the same data in the same sequence to PSF, just as it did when the structured field was originally passed to the exit. Because of the constraints outlined above, you should first consider using the transform subsystem to process data, because the transform subsystem does not have these limitations. For example, a transform object would have access to all of the input data (no restrictions) and could add, delete, and modify both resources and pages. In addition, the transform subsystem processing is performed before printing begins, so it would have no impact on printer performance or behavior. The Input Data User Exit is not capable of identifying individual document boundaries in a data stream. For example, your job might have 5 separate documents that each contain 10 pages of data. This is viewed by the exit as 50 pages of data, not 5 units of 10. The transform subsystem does not have this limitation. The PSF Input Record Exit is responsible for managing any memory it allocates. It can reuse the memory across calls through the use of a work area pointer provided in ainuexit.h. PSF does not free any memory that might be pointed to by fields in either the INDATA_EXITDATA structure or the PSFINSERTRECS structure. The exit can point to memory that it has defined or allocated. The exit can reuse allocated memory or free memory when it is appropriate. PSF might run out of memory if the PSF Input Record Exit mismanages memory. The source code (in the C programming language) for the sample input data user-exit program listed on page "Sample PSF DSS user-exit programs" on page 68 is in the install_path\exits\psf\ainuxind.c. This sample program consists of a return code and performs no function. The data structures for the input data user-exit program are included with the source code in the install_path\exits\psf directory. The declaration of this exit is: void INDATA (INDATA_EXITDATA *exitdata) The INDATA_EXITDATA input/output parameter contains all of the input and output data needed to communicate between InfoPrint Manager and the user-exit program. The INDATA_EXITDATA structure includes these fields. These fields provide input information: version This variable was formerly called reserved1. It is designed for use as a migration aid for future variants of this exit. It contains a version identifier for this structure: 80 InfoPrint Manager for Windows: Procedures

  • 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
  • 419
  • 420
  • 421
  • 422
  • 423
  • 424
  • 425
  • 426

v
Any delays caused by this exit will translate into a PSF processing delay and
could affect printer performance
.
v
This exit is not passed any structured fields that are contained in resources that
are processed. This includes: form definitions, overlays, page segments, fonts,
data object resources, internal medium maps, and data object fonts.
v
Code processing must be able to handle PSF repositioning.
Repositioning might occur as a result of errors or operator commands. PSF might
reposition items forward into the print job, skip structured fields, or reposition
items back into previously processed data. If PSF repositions back into the print
file, it is the responsibility of the exit to return the same data in the same sequence
to PSF, just as it did when the structured field was originally passed to the exit.
Because of the constraints outlined above, you should first consider using the
transform subsystem to process data, because the transform subsystem does not
have these limitations. For example, a transform object would have access to all of
the input data (no restrictions) and could add, delete, and modify both resources
and pages. In addition, the transform subsystem processing is performed before
printing begins, so it would have no impact on printer performance or behavior.
The Input Data User Exit is not capable of identifying individual document
boundaries in a data stream. For example, your job might have 5 separate
documents that each contain 10 pages of data. This is viewed by the exit as 50
pages of data, not 5 units of 10. The transform subsystem does not have this
limitation.
The PSF Input Record Exit is responsible for managing any memory it allocates. It
can reuse the memory across calls through the use of a work area pointer provided
in
ainuexit.h
. PSF does not free any memory that might be pointed to by fields in
either the
INDATA_EXITDATA
structure or the
PSFINSERTRECS
structure. The exit can
point to memory that it has defined or allocated. The exit can reuse allocated
memory or free memory when it is appropriate. PSF might run out of memory if
the PSF Input Record Exit mismanages memory.
The source code (in the C programming language) for the sample input data
user-exit program listed on page “Sample PSF DSS user-exit programs” on page 68
is in the
install_path
\exits\psf\ainuxind.c
. This sample program consists of a
return code and performs no function.
The data structures for the input data user-exit program are included with the
source code in the
install_path
\exits\psf
directory.
The declaration of this exit is:
void INDATA (INDATA_EXITDATA *exitdata)
The
INDATA_EXITDATA
input/output parameter contains all of the input and
output data needed to communicate between InfoPrint Manager and the user-exit
program.
The
INDATA_EXITDATA
structure includes these fields. These fields provide
input information:
version
This variable was formerly called
reserved1
. It is designed for use as a
migration aid for future variants of this exit. It contains a version identifier
for this structure:
80
InfoPrint Manager for Windows: Procedures