1 #pragma once 2 3 #include <petsc/private/petscimpl.h> 4 5 typedef struct _PetscLogHandlerOps *PetscLogHandlerOps; 6 struct _PetscLogHandlerOps { 7 PetscErrorCode (*destroy)(PetscLogHandler); 8 PetscErrorCode (*eventbegin)(PetscLogHandler, PetscLogEvent, PetscObject, PetscObject, PetscObject, PetscObject); 9 PetscErrorCode (*eventend)(PetscLogHandler, PetscLogEvent, PetscObject, PetscObject, PetscObject, PetscObject); 10 PetscErrorCode (*eventsync)(PetscLogHandler, PetscLogEvent, MPI_Comm); 11 PetscErrorCode (*objectcreate)(PetscLogHandler, PetscObject); 12 PetscErrorCode (*objectdestroy)(PetscLogHandler, PetscObject); 13 PetscErrorCode (*stagepush)(PetscLogHandler, PetscLogStage); 14 PetscErrorCode (*stagepop)(PetscLogHandler, PetscLogStage); 15 PetscErrorCode (*view)(PetscLogHandler, PetscViewer); 16 }; 17 18 struct _p_PetscLogHandler { 19 PETSCHEADER(struct _PetscLogHandlerOps); 20 PetscLogState state; 21 void *data; 22 }; 23 24 PETSC_INTERN PetscErrorCode PetscLogHandlerPackageInitialize(void); 25 PETSC_INTERN PetscErrorCode PetscLogHandlerLogObjectState_Internal(PetscLogHandler, PetscObject, const char *, va_list); 26