Using Preprocessing with the XcomQAPI With XCOM Data Transport for Windows
search cancel

Using Preprocessing with the XcomQAPI With XCOM Data Transport for Windows

book

Article ID: 28014

calendar_today

Updated On:

Products

XCOM Data Transport XCOM Data Transport - Windows

Issue/Introduction

The Application Programming Interface (API) is intended to give programmers the capability of developing their own XCOM Data Transport applications. There are two XCOM Data Transport APIs. They are:

XcomAPI
The XcomAPI provides the ability to submit transfers to XCOM Data Transport.

XcomQAPI
The XcomQAPI provides the same functionality to manage the queue as the XCOMQM command line function, but through an API.

This knowledge article discusses how to use preprocessing with the XcomQAPI.

Environment

XCOM™ Data Transport® for Windows

Resolution

Look at the end of the qapitest.c sample file to find a section that looks like this:

                      note: This option only allow to call when xcbp->state is in PREALLOCATION_STATE */
xcomqparm->funccode[0] = 'p';
strcpy(xcomqparm->tid, "000001");
strcpy(xcomqparm->file_option, "CREATE");
strcpy(xcomqparm->lfile, "/home/userid/test.txt");
strcpy(xcomqparm->rfile, "/home/userid/test.del");
rc=XcomQAPI(xcomqparm);
/* check for error message */
if (strlen((*xcomqparm->pQueue)[0].array_err_message))
printf("%s", (*xcomqparm->pQueue)[0].array_err_message);
/* print out queue entry information */
if (strlen((*xcomqparm->pQueue)[0].array_message))
printf("%s", (*xcomqparm->pQueue)[0].array_message);
printf("==== QAPI ended ===\n");

To call the XCOMPRE script from the XcomQAPI

  1. You should have a customized XCOMPRE script.
  2. You must point to that script in the xcom.glb file with the XPRECMD parameter.
  3. Recycle the XCOM daemon so your changes made to the xcom.glb file to be effective.

After a file transfer request is submitted, but before any data transmission begins, XCOM adds the transfer to the queue. It is during this same pre-data-transmission phase of the transfer that XCOM runs the XCOMPRE scrip. If you want your program to be able to check for specific conditions or parameter values and conditionally change those values, you could do so with the XCOMPRE script.

For example, suppose it was against policy to write a file to a particular directory, but rather than have a transfer fail with a security error, you will just re-route that transfer to a different directory. As you can see from the above excerpt from the sample qapitest.c file, you have access to the "lfile" parameter, allowing your application the ability to make the directory name change in the transfer request before the transfer is started from the queue.

Additional Information

See the online documentation: The Application Programming Interface