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: }