Actual source code: viewerimpl.h

  1: #pragma once

  3: #include <petsc/private/petscimpl.h>
  4: #include <petscviewer.h>

  6: PETSC_INTERN PetscBool      PetscViewerRegisterAllCalled;
  7: PETSC_EXTERN PetscErrorCode PetscViewerRegisterAll(void);

  9: struct _PetscViewerOps {
 10:   PetscErrorCode (*destroy)(PetscViewer);
 11:   PetscErrorCode (*view)(PetscViewer, PetscViewer);
 12:   PetscErrorCode (*flush)(PetscViewer);
 13:   PetscErrorCode (*getsubviewer)(PetscViewer, MPI_Comm, PetscViewer *);
 14:   PetscErrorCode (*restoresubviewer)(PetscViewer, MPI_Comm, PetscViewer *);
 15:   PetscErrorCode (*read)(PetscViewer, void *, PetscInt, PetscInt *, PetscDataType);
 16:   PetscErrorCode (*setfromoptions)(PetscViewer, PetscOptionItems *);
 17:   PetscErrorCode (*setup)(PetscViewer);
 18: };

 20: #define PETSCVIEWERCREATEVIEWEROFFPUSHESMAX 25

 22: #define PETSCVIEWERFORMATPUSHESMAX 25
 23: /*
 24:    Defines the viewer data structure.
 25: */
 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 defined(PETSC_HAVE_HDF5)
 40: PETSC_INTERN PetscMPIInt Petsc_Viewer_HDF5_keyval;
 41: #endif
 42: #if defined(PETSC_USE_SOCKETVIEWER)
 43: PETSC_INTERN PetscMPIInt Petsc_Viewer_Socket_keyval;
 44: #endif