Actual source code: viewerimpl.h
1: #pragma once
3: #include <petsc/private/petscimpl.h>
5: PETSC_INTERN PetscBool PetscViewerRegisterAllCalled;
6: PETSC_EXTERN PetscErrorCode PetscViewerRegisterAll(void);
8: struct _PetscViewerOps {
9: PetscErrorCode (*destroy)(PetscViewer);
10: PetscErrorCode (*view)(PetscViewer, PetscViewer);
11: PetscErrorCode (*flush)(PetscViewer);
12: PetscErrorCode (*getsubviewer)(PetscViewer, MPI_Comm, PetscViewer *);
13: PetscErrorCode (*restoresubviewer)(PetscViewer, MPI_Comm, PetscViewer *);
14: PetscErrorCode (*read)(PetscViewer, void *, PetscInt, PetscInt *, PetscDataType);
15: PetscErrorCode (*setfromoptions)(PetscViewer, PetscOptionItems);
16: PetscErrorCode (*setup)(PetscViewer);
17: };
19: #define PETSCVIEWERCREATEVIEWEROFFPUSHESMAX 25
21: #define PETSCVIEWERFORMATPUSHESMAX 25
22: /*
23: Defines the viewer data structure.
24: */
25: typedef struct _PetscViewerOps *PetscViewerOps;
26: struct _p_PetscViewer {
27: PETSCHEADER(struct _PetscViewerOps);
28: PetscViewerFormat format, formats[PETSCVIEWERFORMATPUSHESMAX];
29: int iformat; /* number of formats that have been pushed on formats[] stack */
30: void *data;
31: PetscBool setupcalled;
32: };
34: PETSC_INTERN PetscMPIInt Petsc_Viewer_keyval;
35: PETSC_INTERN PetscMPIInt Petsc_Viewer_Stdout_keyval;
36: PETSC_INTERN PetscMPIInt Petsc_Viewer_Stderr_keyval;
37: PETSC_INTERN PetscMPIInt Petsc_Viewer_Binary_keyval;
38: PETSC_INTERN PetscMPIInt Petsc_Viewer_Draw_keyval;
39: #if PetscDefined(HAVE_HDF5)
40: PETSC_INTERN PetscMPIInt Petsc_Viewer_HDF5_keyval;
41: #endif
42: #if PetscDefined(USE_SOCKETVIEWER)
43: PETSC_INTERN PetscMPIInt Petsc_Viewer_Socket_keyval;
44: #endif