#include <stdlib.h>
#include "memory.h"
#include "nmd.h"
Go to the source code of this file.
Functions | |
int | main (int argc, char **argv) |
int main | ( | int | argc, | |
char ** | argv | |||
) |
Object cloning with scalars
Definition at line 6 of file u14.c.
References NMD_FREE, NMDCloneObject(), NMDCreateObject(), NMDDestroyObject(), NMDFalse, NMDInt, NMDReal, NMDReportObject(), and NMDSetValue().
00006 { 00007 NMD_metadata nmd,nmd2; NMDErrorCode ierr; 00008 int i=5; double r=6.7; 00009 PetscFunctionBegin; 00010 PetscInitialize(&argc,&argv,0,0); 00011 00012 ierr = NMDCreateObject(&nmd); NMD_ERR_RETURN(ierr); 00013 ierr = NMDCreateObject(&nmd2); NMD_ERR_RETURN(ierr); 00014 00015 i = 1.12; 00016 ierr = NMDSetValue(nmd,"cat1","cmp1",NMDInt,&i); NMD_ERR_RETURN(ierr); 00017 i = 2.81; 00018 ierr = NMDSetValue(nmd,"cat1","cmp2",NMDInt,&i); NMD_ERR_RETURN(ierr); 00019 r = 3.14; 00020 ierr = NMDSetValue(nmd,"cat1","cmp3",NMDReal,&r); NMD_ERR_RETURN(ierr); 00021 r = 5.21; 00022 ierr = NMDSetValue(nmd,"cat1","cmp4",NMDReal,&r); NMD_ERR_RETURN(ierr); 00023 00024 ierr = NMDCloneObject(nmd,nmd2); NMD_ERR_RETURN(ierr); 00025 { 00026 char *s1,*s2; 00027 /* report the original object */ 00028 ierr = NMDReportObject(nmd,NMDFalse,&s1,&s2,'\n',NULL,NULL); NMD_ERR_RETURN(ierr); 00029 printf("keys:\n%s\nvalues:\n%s\n",s1,s2); 00030 NMD_FREE(s1); 00031 NMD_FREE(s2); 00032 /* report the clone */ 00033 ierr = NMDReportObject(nmd2,NMDFalse,&s1,&s2,'\n',NULL,NULL); NMD_ERR_RETURN(ierr); 00034 printf("keys:\n%s\nvalues:\n%s\n",s1,s2); 00035 NMD_FREE(s1); 00036 NMD_FREE(s2); 00037 } 00038 00039 ierr = NMDDestroyObject(nmd); NMD_ERR_RETURN(ierr); 00040 ierr = NMDDestroyObject(nmd2); NMD_ERR_RETURN(ierr); 00041 00042 PetscFinalize(); 00043 PetscFunctionReturn(0); 00044 }