2: #ifndef _VIEWERIMPL 3: #define _VIEWERIMPL 5: #include <petscsys.h> 7: struct _PetscViewerOps { 8: PetscErrorCode (*destroy)(PetscViewer); 9: PetscErrorCode (*view)(PetscViewer,PetscViewer); 10: PetscErrorCode (*flush)(PetscViewer); 11: PetscErrorCode (*getsingleton)(PetscViewer,PetscViewer*); 12: PetscErrorCode (*restoresingleton)(PetscViewer,PetscViewer*); 13: PetscErrorCode (*getsubcomm)(PetscViewer,MPI_Comm,PetscViewer*); 14: PetscErrorCode (*restoresubcomm)(PetscViewer,MPI_Comm,PetscViewer*); 15: PetscErrorCode (*setfromoptions)(PetscViewer); 16: }; 18: /* 19: Defines the viewer data structure. 20: */ 21: struct _p_PetscViewer { 22: PETSCHEADER(struct _PetscViewerOps); 23: PetscViewerFormat format,formats[10]; 24: int iformat; 25: void *data; 26: }; 30: #endif