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;
}