xref: /petsc/src/sys/objects/gcookie.c (revision af0996ce37bc06907c37d8d91773840993d61e62)
1 
2 /*
3      Provides utility routines for manulating any type of PETSc object.
4 */
5 #include <petsc/private/petscimpl.h>  /*I   "petscsys.h"    I*/
6 
7 #undef __FUNCT__
8 #define __FUNCT__ "PetscObjectGetClassId"
9 /*@C
10    PetscObjectGetClassId - Gets the classid for any PetscObject
11 
12    Not Collective
13 
14    Input Parameter:
15 .  obj - any PETSc object, for example a Vec, Mat or KSP.
16          Thus must be cast with a (PetscObject), for example,
17          PetscObjectGetClassId((PetscObject)mat,&classid);
18 
19    Output Parameter:
20 .  classid - the classid
21 
22    Level: developer
23 
24 @*/
25 PetscErrorCode  PetscObjectGetClassId(PetscObject obj,PetscClassId *classid)
26 {
27   PetscFunctionBegin;
28   PetscValidHeader(obj,1);
29   *classid = obj->classid;
30   PetscFunctionReturn(0);
31 }
32 
33 #undef __FUNCT__
34 #define __FUNCT__ "PetscObjectGetClassName"
35 /*@C
36    PetscObjectGetClassName - Gets the class name for any PetscObject
37 
38    Not Collective
39 
40    Input Parameter:
41 .  obj - any PETSc object, for example a Vec, Mat or KSP.
42          Thus must be cast with a (PetscObject), for example,
43          PetscObjectGetClassName((PetscObject)mat,&classname);
44 
45    Output Parameter:
46 .  classname - the class name
47 
48    Level: developer
49 
50 @*/
51 PetscErrorCode  PetscObjectGetClassName(PetscObject obj, const char *classname[])
52 {
53   PetscFunctionBegin;
54   PetscValidHeader(obj,1);
55   PetscValidPointer(classname,2);
56   *classname = obj->class_name;
57   PetscFunctionReturn(0);
58 }
59