DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: D T

⟦8a82e8ab2⟧ TextFile

    Length: 3636 (0xe34)
    Types: TextFile
    Names: »DIRECTIONS«

Derivation

└─⟦180fe333a⟧ Bits:30000405 8mm tape, Rational 1000, SW CATALOG, 10_20_0
└─⟦180fe333a⟧ Bits:30000537 8mm tape, Rational 1000, SW Catalog 10_20_0
    └─⟦5cb1d1d7f⟧ »DATA« 
        └─⟦3b1ee7bd8⟧ 
            └─⟦this⟧ 

TextFile

Your task is to design, implement, and test a simple message and mailbox
abstraction.  At a minimum you should do the following:

  1) Design and implement a package the encapsulate an abstraction for
     messages.  A message should contain the following components:
     
       - Sender - Who sent the message
       
       - Destination - A simple three character code corresponding to
         a user name like DHE or BLB.
     
       - Subject - A string that can be one or more lines.
           
       - Date - Some record of the data and time
       
       - Body of the message - One or more lines of text.
       
     You should design this package using a private type for a message
     and implementing it in a layered fashion on top of abstractions that
     already exist in the environment or that you invent.
     
  2) Design an abstraction for a mailbox that allows you to do the
     following:
     
       - Open a mailbox file and parse out all existing messages.
         (A fragment for a prase operations is included in your directory.
          You should use this in the body of you mailbox abstraction
          to parse messages out of a mailbox file and yeild them one at
          a time for storage in the mailbox data structure.

       - Iterate over all message in a mailbox object.         

       - Delete a message from a mailbox object.  Note that this
         does not imply that any mailbox file is changed.  (That is
         the nex item.)

       - Add a new message to a mailbox file.  (for send operations to
                                                other users)
                                                
       - Write out a modified mailbox of message to a mailbox file.
       
     You may choose whatever representation that you would like for the
     mailbox file.  We recommend using Polymorphic_Sequential_Io
     instantiating the operations generic with the type Message.
     You may also want to choose an ascii representation and use
     Simple_Text_IO.
     
    3) Write a very simple command interpreter that allows you to:
    
       - Open a mailbox and display all messages.

         The Display should number each message in the order that it
         was recieved.  Each message should also be represented by a header
         including the Sender, the date and time and the first 30 characters
         of the Subject.

       
       - Display a particular message given its message number.
       
       - Delete a message given its message number
         
       - Send a message to another mailbox.
       
       - Close or Commit the mailbox object back into its file
         representation.
         

Notes:

  You will probably want to create a subdirectory to contain mailbox
  files.
  
  Dont worry about synchronizing access to mailboxes on the
  first pass.  This is initially intended as a one user system.


Although these directions are somewhat sketchy, they are intended to give
you a set of requirements and have you design and build it.  Don't 
hesitate to go to your instructor should you need help.



Also, before you start, please estimate how much time it will take to do
the following things:

       High-level Design
       Detailed Design
       Coding
       Testing
       
and give the estimates to your instructor.

Also keep track of how much time it actually takes you to do these things.
This is not intended to find out how good you are at solving this problem
but it will tell you something that is very interesting about how much
time it actually takes to do each of these parts of the lifecycle.