#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 and reporting in the presence of place holder empty components
Definition at line 7 of file u16.c.
References NMD_FREE, NMDCloneObject(), NMDCreateObject(), NMDDestroyObject(), NMDFalse, NMDInt, NMDObjectEnsureCategoryComponent(), NMDReal, NMDReportObject(), and NMDSetValue().
00007 { 00008 NMD_metadata nmd,nmd2; NMDErrorCode ierr; 00009 int i=5; 00010 PetscFunctionBegin; 00011 PetscInitialize(&argc,&argv,0,0); 00012 00013 ierr = NMDCreateObject(&nmd); NMD_ERR_RETURN(ierr); 00014 ierr = NMDCreateObject(&nmd2); NMD_ERR_RETURN(ierr); 00015 00016 ierr = NMDSetValue(nmd,"cat1","cmp1",NMDInt,&i); NMD_ERR_RETURN(ierr); 00017 ierr = NMDObjectEnsureCategoryComponent 00018 (nmd,"cat1","cmp2",NMDReal,NULL); NMD_ERR_RETURN(ierr); 00019 00020 ierr = NMDCloneObject(nmd,nmd2); NMD_ERR_RETURN(ierr); 00021 { 00022 char *s1,*s2; 00023 /* report the original object */ 00024 ierr = NMDReportObject(nmd,NMDFalse,&s1,&s2,'\n',NULL,NULL); NMD_ERR_RETURN(ierr); 00025 printf("original keys:\n%s\nvalues:\n%s\n",s1,s2); 00026 NMD_FREE(s1); 00027 NMD_FREE(s2); 00028 /* report the clone */ 00029 ierr = NMDReportObject(nmd2,NMDFalse,&s1,&s2,'\n',NULL,NULL); NMD_ERR_RETURN(ierr); 00030 printf("clone keys:\n%s\nvalues:\n%s\n",s1,s2); 00031 NMD_FREE(s1); 00032 NMD_FREE(s2); 00033 } 00034 00035 ierr = NMDDestroyObject(nmd); NMD_ERR_RETURN(ierr); 00036 ierr = NMDDestroyObject(nmd2); NMD_ERR_RETURN(ierr); 00037 00038 PetscFinalize(); 00039 PetscFunctionReturn(0); 00040 }