Received: from ATHENA.MIT.EDU by po7.MIT.EDU (5.61/4.7) id AA06781; Mon, 21 Sep 92 11:18:21 EDT
Received: from CECI.MIT.EDU by Athena.MIT.EDU with SMTP
	id AA20072; Mon, 21 Sep 92 11:18:16 EDT
Message-Id: <9209211518.AA20072@Athena.MIT.EDU>
Received: from abelard.mit.edu.mit.edu by ceci.mit.edu id AA19351g; Mon, 21 Sep 92 11:20:55 EDT
Date: Mon, 21 Sep 92 11:20:55 EDT
From: Philip Bailey <pbailey@ceci.mit.edu>
To: aybee@Athena.MIT.EDU, jert@Athena.MIT.EDU, jud@Athena.MIT.EDU,
        mau@ceci.mit.edu, wjeurle@Athena.MIT.EDU
Subject: Prototype Image Server

These comments are based on the series of mail messages on Specifications & 
Design for the Image Viewer prototype sent out by aybee early Friday morning.

Thanks for the documents, it's clear that a good deal of thought has gone into them.

There are a number of issues we should discuss before too much time passes:

In the design document:

0.0.2 Class Heirarchy:

We need to look at your plan to have all AM2 objects be derived from a
meta class, this may not be the best solution.

An addtional AM2 Object Class is required - the DataBase Interface
class, this class will map the application initiated queries into the
Database specific query language and create instances of the requested
AM2 Media & Content Objects.

0.0.5 MediaClass:

From the write-up it seems that the prototype will have one media
class which will support both video_disc & PPM. This is not the way to
go. There should not be an enumerated type used in the constructor, or
the use of ' if ( Type == ...', the attribute `frame` should only be
part of the video_disc class.  The constructor called should be for
the derived media class.

0.0.7 InterfaceClass:

In addition to the 'canvas' & 'SelectList' interface classes we will need text
input & output, and command buttons.

The discription for the Canvas Method DrawPPM() is an example of not
useing C++ to its fullest.  Instead of writing a method DrawPPM which
has an argument of type Pixmap, the C++ model is to create a
collection of Draw() methods, each one an overloaded function called
Draw, one method would have an argument of type Pixmap, another method
could have an argument of type XImage.  Using this model it is
possible to just call the 'stub' Draw() and depending on the types of
arguments supplied the correct method will be performed.

Once again thanks for all the good work.

I would like to get together with the three of you as soon as possible
to discuss these points & to firm up the plans for implimenting the
prototype. Included is what Adam put together as your combined
schedule, could we select a time.  I'm usally here at least until 6pm.
---------------------------------------------------------------------------

composite of our schedules.......

        m       t       w       r       f

9                       xxxxxx          xxxxxx
10      xxxxxx  xxxxxx  xxxxxx          xxxxxx
11              xxxxxx  xxxxxx  xxxxxx  xxxxxx
12      xxxxxx  xxxxxx  xxxxxx  xxxxxx  xxxxxx
1       xxxxxx  xxxxxx  xxxxxx  xxxxxx  xxxxxx
2       xxxxxx  xxxxxx  xxxxxx          xxxxxx
3       xxxxxx  xxxxxx  xxxxxx  xxxxxx  xxxxxx
4       xxxxxx  xxxxxx          xxxxxx
5               xxxxxx
 ~c pbailey
