Actual source code: gcookie.c


  2: /*
  3:      Provides utility routines for manulating any type of PETSc object.
  4: */
  5: #include <petsc/private/petscimpl.h>

  7: /*@
  8:    PetscObjectGetClassId - Gets the classid for any `PetscObject`

 10:    Not Collective

 12:    Input Parameter:
 13: .  obj - any PETSc object, for example a `Vec`, `Mat` or `KSP`.
 14:          Thus must be cast with a (`PetscObject`), for example,
 15:          `PetscObjectGetClassId`((`PetscObject`)mat,&classid);

 17:    Output Parameter:
 18: .  classid - the classid

 20:    Level: developer

 22: .seealso: `PetscObject`, `PetscClassId`, `PetscObjectGetClassName()`, `PetscObjectGetType()`
 23: @*/
 24: PetscErrorCode PetscObjectGetClassId(PetscObject obj, PetscClassId *classid)
 25: {
 26:   PetscFunctionBegin;
 29:   *classid = obj->classid;
 30:   PetscFunctionReturn(PETSC_SUCCESS);
 31: }

 33: /*@C
 34:    PetscObjectGetClassName - Gets the class name for any `PetscObject`

 36:    Not Collective

 38:    Input Parameter:
 39: .  obj - any PETSc object, for example a `Vec`, `Mat` or `KSP`.
 40:          Thus must be cast with a (`PetscObject`), for example,
 41:          `PetscObjectGetClassName`((`PetscObject`)mat,&classname);

 43:    Output Parameter:
 44: .  classname - the class name, for example "Vec"

 46:    Level: developer

 48: .seealso: `PetscObject`, `PetscClassId`, `PetscObjectGetType()`, `PetscObjectGetClassId()`
 49: @*/
 50: PetscErrorCode PetscObjectGetClassName(PetscObject obj, const char *classname[])
 51: {
 52:   PetscFunctionBegin;
 55:   *classname = obj->class_name;
 56:   PetscFunctionReturn(PETSC_SUCCESS);
 57: }