home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: Graphics / Graphics.zip / os2apipm.zip / APIEXAM / PHIL / SOCIETY.ADS < prev    next >
Text File  |  1996-06-05  |  1KB  |  47 lines

  1. --society.ads
  2. package Society is
  3.  
  4.   -- Dining Philosophers - Ada 95 edition
  5.   -- Society gives unique ID's to people, and registers their names
  6.   -- Michael B. Feldman, The George Washington University, July, 1995.
  7.  
  8.   subtype Unique_DNA_Codes is Positive range 1..5;
  9.  
  10.   Table_Size : constant := 5;
  11.   subtype Table_Type is Positive range 1 .. Table_Size;
  12.   type    Flags is array(Table_Type) of boolean ;
  13.  
  14.   phil_pos : integer range 0..5  := 0 ; -- philosopher number
  15.  
  16.  protected get_number is -- get number
  17.    entry Yes ( My_ID: out  Unique_DNA_Codes );
  18.  end get_number;
  19.  
  20.   Name_Register : array(Unique_DNA_Codes) of String(1..18) :=
  21.  
  22.      ("Edsger Dijkstra   ",
  23.       "Bjarne Stroustrup ",
  24.       "Chris Anderson    ",
  25.       "Tucker Taft       ",
  26.       "Jean Ichbiah      ");
  27.    Subtype s80 is string(1..80) ;
  28.    Type show_screen is array (1..25) of s80;
  29.    type  draw is record
  30.    raw:  integer range 1..25 ;
  31.    col:  integer range 1..80 ;
  32.    win:  show_screen  ;
  33.    end record ;
  34.  
  35.    display :  draw ;
  36.  
  37.  task draw_screen is
  38.    entry need_draw;
  39.  end draw_screen ;
  40.  
  41.  In_Use: Flags := (others => False);
  42.  fl    : boolean   ;
  43.  procedure Pick_Up (I:Table_Type);
  44.  procedure Put_Down(I:Table_Type);
  45.  
  46. end Society;
  47.