|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: D T
Length: 3636 (0xe34)
Types: TextFile
Names: »DIRECTIONS«
└─⟦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⟧
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.