Actual source code: pname.c
1: /*$Id: pname.c,v 1.42 2001/04/10 19:34:33 bsmith Exp $*/
3: #include petsc.h
5: /*@C
6: PetscObjectSetName - Sets a string name associated with a PETSc object.
8: Not Collective
10: Input Parameters:
11: + obj - the Petsc variable
12: Thus must be cast with a (PetscObject), for example,
13: PetscObjectSetName((PetscObject)mat,name);
14: - name - the name to give obj
16: Level: advanced
18: Concepts: object name^setting
20: .seealso: PetscObjectGetName()
21: @*/
22: int PetscObjectSetName(PetscObject obj,const char name[])
23: {
27: if (!obj) SETERRQ(PETSC_ERR_ARG_CORRUPT,"Null object");
28: PetscStrfree(obj->name);
29: PetscStrallocpy(name,&obj->name);
30: return(0);
31: }
33: /*@C
34: PetscObjectName - Gives an object a name if it does not have one
36: Not Collective
38: Input Parameters:
39: . obj - the Petsc variable
40: Thus must be cast with a (PetscObject), for example,
41: PetscObjectSetName((PetscObject)mat,name);
43: Level: advanced
45: Concepts: object name^setting default
47: .seealso: PetscObjectGetName(), PetscObjectSetName()
48: @*/
49: int PetscObjectName(PetscObject obj)
50: {
51: int ierr;
52: char name[64];
53: static int counter = 0;
56: if (!obj->name) {
57: sprintf(name,"%s_%d",obj->class_name,counter++);
58: PetscStrallocpy(name,&obj->name);
59: }
60: return(0);
61: }
63: /*@C
64: PetscObjectPublish - Publishs an object for the ALICE Memory Snooper
66: Collective on PetscObject
68: Input Parameters:
69: . obj - the Petsc variable
70: Thus must be cast with a (PetscObject), for example,
71: PetscObjectSetName((PetscObject)mat,name);
73: Level: advanced
75: Concepts: publishing object
76: Concepts: AMS
77: Concepts: ALICE Memory Snooper
78: Concepts: Asynchronous Memory Snooper
80: .seealso: PetscObjectSetName(), PetscViewerAMSOpen()
82: @*/
83: int PetscObjectPublish(PetscObject obj)
84: {
89: if (obj->bops->publish) {
90: (*obj->bops->publish)(obj);
91: }
92: return(0);
93: }
95: int PetscObjectChangeTypeName(PetscObject obj,char *type_name)
96: {
100: PetscObjectTakeAccess(obj);
101: PetscStrfree(obj->type_name);
102: PetscStrallocpy(type_name,&obj->type_name);
103: PetscObjectGrantAccess(obj);
104: return(0);
105: }