home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mod201j.zip / modula2.exe / os2demo / animals / dog.def < prev    next >
Text File  |  1995-01-25  |  3KB  |  121 lines

  1. (*$DLL      DOG can  be implemented as dynamic link library *)
  2.  
  3. DEFINITION MODULE DOG;
  4.  
  5. (***************************************************************************
  6.   OS/2 2.1 interface for SOM class Dog
  7.  
  8.   Copyright (c) 1994 by Juergen Neuhoff
  9. ****************************************************************************)
  10.  
  11. (*$XL+       Modula-2 language extensions: '_' allowed for symbol names *)
  12. (*$CDECL+    C-style procedures                                         *)
  13. (*$A         default alignment for record fields                        *)
  14.  
  15. IMPORT SOM;
  16.  
  17. (************************************************************************
  18.   Additional TYPE- and CONST-declarations supporting Dog
  19. *************************************************************************)
  20.  
  21. IMPORT OS2DEF;
  22. IMPORT ANIMAL;
  23. IMPORT SYSTEM;
  24. TYPE PSZ                    = OS2DEF.PSZ;
  25.  
  26.  
  27. (*************************************************************************
  28.   SOM class API for Dog, including type-bound procedures
  29. **************************************************************************)
  30.  
  31. TYPE PSOMClass              = SOM.PSOMClass;
  32. TYPE INTEGER4               = SOM.INTEGER4;
  33. TYPE somMToken              = SOM.somMToken;
  34. TYPE somDToken              = SOM.somDToken;
  35. TYPE somMethodProc          = SOM.somMethodProc;
  36. TYPE PDog                   = POINTER TO Dog;
  37. TYPE PM_Dog                 = POINTER TO M_Dog;
  38.  
  39. CONST
  40.   Dog_MajorVersion     = 0;
  41.   Dog_MinorVersion     = 0;
  42.  
  43. TYPE
  44.   DogClassDataStructure     = RECORD
  45.     classObject               : PSOMClass;
  46.     setBreed                  : somMToken;
  47.     setColor                  : somMToken;
  48.     getBreed                  : somMToken;
  49.     getColor                  : somMToken;
  50.                               END;
  51.  
  52. VAR
  53.   DogClassData : DogClassDataStructure;
  54.  
  55. TYPE
  56.   (*$SOM+ *)
  57.   Dog = RECORD( ANIMAL.Animal ) END;
  58.   (*$SOM- *)
  59.  
  60.  
  61. PROCEDURE DogNewClass
  62. (
  63.   majorVersion  : INTEGER4;
  64.   minorVersion  : INTEGER4
  65. )               : PSOMClass;
  66.  
  67. PROCEDURE( Self : PDog ) setBreed
  68. (
  69.   myBreed       : OS2DEF.PSZ
  70. );
  71.  
  72. PROCEDURE( Self : PDog ) setColor
  73. (
  74.   myColor       : OS2DEF.PSZ
  75. );
  76.  
  77. PROCEDURE( Self : PDog ) getBreed() : OS2DEF.PSZ;
  78.  
  79. PROCEDURE( Self : PDog ) getColor() : OS2DEF.PSZ;
  80.  
  81.  
  82. (*************************************************************************
  83.   SOM class API for M_Dog, including type-bound procedures
  84. **************************************************************************)
  85.  
  86. CONST
  87.   M_Dog_MajorVersion   = 0;
  88.   M_Dog_MinorVersion   = 0;
  89.  
  90. TYPE
  91.   M_DogClassDataStructure   = RECORD
  92.     classObject               : PSOMClass;
  93.     newDog                    : somMToken;
  94.                               END;
  95.  
  96. VAR
  97.   M_DogClassData : M_DogClassDataStructure;
  98.  
  99. TYPE
  100.   (*$SOM+ *)
  101.   M_Dog = RECORD( ANIMAL.M_Animal ) END;
  102.   (*$SOM- *)
  103.  
  104.  
  105. PROCEDURE M_DogNewClass
  106. (
  107.   majorVersion : INTEGER4;
  108.   minorVersion : INTEGER4
  109. )              : PSOMClass;
  110.  
  111.  
  112. PROCEDURE( Self : PM_Dog ) newDog
  113. (
  114.   sound         : OS2DEF.PSZ;
  115.   breed         : OS2DEF.PSZ;
  116.   color         : OS2DEF.PSZ
  117. )               : SYSTEM.ADDRESS;
  118.  
  119.  
  120. END DOG.
  121.