Actual source code: gcookie.c

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

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

  9:   Not Collective

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

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

 19:   Level: developer

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

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

 35:   Not Collective

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

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

 45:   Level: developer

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