Remplacement d'une carte dans une mappe

Cet exemple montre comment définir des propriétés d'objets de carte pour remplacer les paramètres de la mappe compilée.

Remarque : Cet exemple est conçu pour être utilisé avec l'adaptateur GZIP, qui n'est pas disponible sur toutes les plateformes. Si nécessaire, remplacez le type d'adaptateur GZIP de cet exemple par un autre adaptateur afin d'exécuter correctement l'exemple.
#include "dtxpi.h"

#define CHECK_ERR(rc) if(MPIRC_FAILED(rc)) 
 { printf("Last error is: %s\n",mpiErrorGetText(rc));
 return -1;}

int main()
{
const char     *szMsg;
int            iRC;
MPIRC rc;
HMPIMAP        hMap;
HMPICARD       hInputCard1;
HMPIADAPT      hAdapter;

rc = mpiInitAPI(NULL);
CHECK_ERR(rc);
rc = mpiMapLoadFile (&hMap, "test3.mmc");
CHECK_ERR(rc);

/* Turn on burst and summary execution audit on the map instance */
rc = mpiPropertySetInteger (hMap, MPIP_MAP_AUDIT_SWITCH, 0,
 MPI_SWITCH_ON);
CHECK_ERR(rc);
rc = mpiPropertySetInteger (hMap, MPIP_MAP_AUDIT_BURST_EXECUTION, 0,
 MPI_SWITCH_ON);
CHECK_ERR(rc);
rc = mpiPropertySetInteger (hMap, MPIP_MAP_AUDIT_SUMMARY_EXECUTION, 0,
 MPI_SWITCH_ON);
CHECK_ERR(rc);

/* Get the adapter object handle */
rc = mpiMapGetInputCardObject (hMap, 1, &hInputCard1);
CHECK_ERR(rc);
rc = mpiCardOverrideAdapter(hInputCard1,"GZIP",0);
CHECK_ERR(rc);
rc = mpiCardGetAdapterObject (hInputCard1, &hAdapter);
CHECK_ERR(rc);

/* set a command line for the adapter */
rc = mpiPropertySetText(hAdapter, MPIP_ADAPTER_COMMANDLINE, 0,
 "-FILE Input.gz",
0);
CHECK_ERR(rc);

rc = mpiMapRun (hMap);
CHECK_ERR(rc);

rc = mpiPropertyGetText (hMap, MPIP_OBJECT_ERROR_MSG, 0, &szMsg, NULL);
CHECK_ERR(rc);
rc = mpiPropertyGetInteger (hMap, MPIP_OBJECT_ERROR_CODE, 0, &iRC);
CHECK_ERR(rc);
printf("Map status: %s (%d)\n", szMsg, iRC);

rc = mpiMapUnload (hMap);
CHECK_ERR(rc);
rc = mpiTermAPI();
CHECK_ERR(rc);
return 0;
}