home *** CD-ROM | disk | FTP | other *** search
/ The Developer Connection…ice Driver Kit for OS/2 3 / DEV3-D1.ISO / devtools / toolkt21 / c / samples / animals / animal.c next >
Encoding:
C/C++ Source or Header  |  1993-03-12  |  2.1 KB  |  82 lines

  1. #ifndef lint
  2. static char *sccsid = "@(#)animal.c 1.3 2/3/92 20:39:51 [2/3/92] (c)IBM Corp. 1992";
  3. #endif
  4.  
  5. /*
  6.  * Copyright (c) International Business Machines Corporation
  7.  *         1991, 1992
  8.  */
  9.  
  10. #define Animal_Class_Source
  11. #include "animal.ih"
  12. #include <string.h>
  13.  
  14. SOM_Scope char *SOMLINK getGenus(Animal * somSelf)
  15. {
  16.     AnimalData *somThis = AnimalGetData(somSelf);
  17.     AnimalMethodDebug("Animal", "getGenus");
  18.     return ("Unknown Genus");
  19. }
  20.  
  21. SOM_Scope char *SOMLINK getSpecies(Animal * somSelf)
  22. {
  23.     AnimalData *somThis = AnimalGetData(somSelf);
  24.     AnimalMethodDebug("Animal", "getSpecies");
  25.     return ("Unknown Species");
  26. }
  27.  
  28. SOM_Scope void SOMLINK setSound(Animal * somSelf,
  29.                  char *mySound)
  30. {
  31.     AnimalData *somThis = AnimalGetData(somSelf);
  32.     AnimalMethodDebug("Animal", "setSound");
  33.  
  34.     if (_sound)
  35.     (*SOMFree) (_sound);
  36.     _sound = (char *) (*SOMMalloc) (strlen(mySound) + 1);
  37.     strcpy(_sound, mySound);
  38. }
  39.  
  40. SOM_Scope void SOMLINK talk(Animal * somSelf)
  41. {
  42.     AnimalData *somThis = AnimalGetData(somSelf);
  43.     AnimalMethodDebug("Animal", "talk");
  44.     somPrintf("%s\n", _sound);
  45. }
  46.  
  47. SOM_Scope void SOMLINK display(Animal * somSelf)
  48. {
  49.     AnimalData *somThis = AnimalGetData(somSelf);
  50.     AnimalMethodDebug("Animal", "display");
  51.     somPrintf("  Genus: %s\n", _getGenus(somSelf));
  52.     somPrintf("Species: %s\n", _getSpecies(somSelf));
  53.     somPrintf("This Animal says\n");
  54.     _talk(somSelf);
  55. }
  56.  
  57. SOM_Scope void SOMLINK somInit(Animal * somSelf)
  58. {
  59.     AnimalData *somThis = AnimalGetData(somSelf);
  60.     AnimalMethodDebug("Animal", "somInit");
  61.     parent_somInit(somSelf);
  62.     _sound = (char *) NULL;
  63. }
  64.  
  65. SOM_Scope void SOMLINK somUninit(Animal * somSelf)
  66. {
  67.     AnimalData *somThis = AnimalGetData(somSelf);
  68.     AnimalMethodDebug("Animal", "somUninit");
  69.     if (_sound)
  70.     (*SOMFree) (_sound);
  71.     parent_somUninit(somSelf);
  72. }
  73.  
  74. SOM_Scope void SOMLINK somDumpSelfInt(Animal * somSelf,
  75.                        int level)
  76. {
  77.     AnimalData *somThis = AnimalGetData(somSelf);
  78.     AnimalMethodDebug("Animal", "somDumpSelfInt");
  79.     _display(somSelf);
  80.     parent_somDumpSelfInt(somSelf, level);
  81. }
  82.