Actual source code: gcookie.c

  1: /*$Id: gcookie.c,v 1.25 2001/03/23 23:20:38 balay Exp $*/
  2: /*
  3:      Provides utility routines for manulating any type of PETSc object.
  4: */
 5:  #include petsc.h

  7: /*@C
  8:    PetscObjectGetCookie - Gets the cookie for any PetscObject, 

 10:    Not Collective
 11:    
 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:          PetscObjectGetCookie((PetscObject)mat,&cookie);

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

 20:    Level: developer

 22: @*/
 23: int PetscObjectGetCookie(PetscObject obj,int *cookie)
 24: {
 26:   if (!obj) SETERRQ(PETSC_ERR_ARG_CORRUPT,"Null object");
 27:   *cookie = obj->cookie;
 28:   return(0);
 29: }

 31: /*@
 32:    PetscObjectExists - Determines whether a PETSc object has been destroyed.

 34:    Not Collective

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

 41:    Output Parameter:
 42: .  exists - PETSC_FALSE if object does not exist; PETSC_TRUE if object does exist.

 44:    Level: developer

 46: @*/
 47: int PetscObjectExists(PetscObject obj,PetscTruth *exists)
 48: {
 50:   *exists = PETSC_FALSE;
 51:   if (!obj) return(0);
 52:   if (obj->cookie >= PETSC_COOKIE && obj->cookie <= PETSC_LARGEST_COOKIE) *exists = PETSC_TRUE;
 53:   return(0);
 54: }