Actual source code: pname.c

  1: /*$Id: pname.c,v 1.42 2001/04/10 19:34:33 bsmith Exp $*/

 3:  #include petsc.h

  7: /*@C 
  8:    PetscObjectSetName - Sets a string name associated with a PETSc object.

 10:    Not Collective

 12:    Input Parameters:
 13: +  obj - the Petsc variable
 14:          Thus must be cast with a (PetscObject), for example, 
 15:          PetscObjectSetName((PetscObject)mat,name);
 16: -  name - the name to give obj

 18:    Level: advanced

 20:    Concepts: object name^setting

 22: .seealso: PetscObjectGetName()
 23: @*/
 24: int PetscObjectSetName(PetscObject obj,const char name[])
 25: {

 29:   if (!obj) SETERRQ(PETSC_ERR_ARG_CORRUPT,"Null object");
 30:   PetscStrfree(obj->name);
 31:   PetscStrallocpy(name,&obj->name);
 32:   return(0);
 33: }

 37: /*@C
 38:    PetscObjectName - Gives an object a name if it does not have one

 40:    Not Collective

 42:    Input Parameters:
 43: .  obj - the Petsc variable
 44:          Thus must be cast with a (PetscObject), for example, 
 45:          PetscObjectSetName((PetscObject)mat,name);

 47:    Level: advanced

 49:    Concepts: object name^setting default

 51: .seealso: PetscObjectGetName(), PetscObjectSetName()
 52: @*/
 53: int PetscObjectName(PetscObject obj)
 54: {
 55:   int        ierr;
 56:   char       name[64];
 57:   static int counter = 0;

 60:   if (!obj->name) {
 61:     sprintf(name,"%s_%d",obj->class_name,counter++);
 62:     PetscStrallocpy(name,&obj->name);
 63:   }
 64:   return(0);
 65: }

 69: /*@C 
 70:    PetscObjectPublish - Publishs an object for the ALICE Memory Snooper

 72:    Collective on PetscObject

 74:    Input Parameters:
 75: .  obj - the Petsc variable
 76:          Thus must be cast with a (PetscObject), for example, 
 77:          PetscObjectSetName((PetscObject)mat,name);

 79:    Level: advanced

 81:    Concepts: publishing object
 82:    Concepts: AMS
 83:    Concepts: ALICE Memory Snooper
 84:    Concepts: Asynchronous Memory Snooper

 86: .seealso: PetscObjectSetName(), PetscViewerAMSOpen()

 88: @*/
 89: int PetscObjectPublish(PetscObject obj)
 90: {

 95:   if (obj->bops->publish) {
 96:     (*obj->bops->publish)(obj);
 97:   }
 98:   return(0);
 99: }

103: int PetscObjectChangeTypeName(PetscObject obj,const char type_name[])
104: {

108:   PetscObjectTakeAccess(obj);
109:   PetscStrfree(obj->type_name);
110:   PetscStrallocpy(type_name,&obj->type_name);
111:   PetscObjectGrantAccess(obj);
112:   return(0);
113: }