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