Primary Actor: |
POIFS client |
Scope: |
POIFS |
Level: |
Summary |
Stakeholders and Interests: |
- POIFS client- wants to write file system out.
- POIFS - knows how to write file system out.
|
Precondition: |
- File system has been read (use case 1, read
existing file system) and subsequently modified
(use case 4, replace file in file system; use case
5, delete file from file system; or use case 6,
write new file to file system; in any
combination)
or
- File system has been created (use case 3, create
new file system)
|
Minimal Guarantee: |
None |
Main Success Guarantee: |
- POIFS client provides an
OutputStream
to write the file system to.
- POIFS gets the sizes of the Property Table and
each file in the file system.
- If any files in the file system requires storage
in a Small Block Array, POIFS creates a Small
Block Array of sufficient size to hold all of the
small files.
- POIFS calculates the number of big blocks needed
to hold all of the large files, the Property
Table, and, if necessary, the Small Block Array
and the Small Block Allocation Table.
- POIFS creates a set of big blocks sufficient to
store the Block Allocation Table
- POIFS creates and writes the header block
- POIFS writes out the XBAT blocks, if needed.
- POIFS writes out the Small Block Array, if
needed
- POIFS writes out the Small Block Allocation Table,
if needed
- POIFS writes out the Property Table
- POIFS writes out the large files, if needed
- POIFS closes the
OutputStream .
|
Extensions: |
- 6a. Exceptions writing to the
OutputStream will be propagated back
to the POIFS client.
- 7a. Exceptions writing to the
OutputStream will be propagated back
to the POIFS client.
- 8a. Exceptions writing to the
OutputStream will be propagated back
to the POIFS client.
- 9a. Exceptions writing to the
OutputStream will be propagated back
to the POIFS client.
- 10a. Exceptions writing to the
OutputStream will be propagated back
to the POIFS client.
- 11a. Exceptions writing to the
OutputStream will be propagated back
to the POIFS client.
- 12a. Exceptions closing the
OutputStream will be propagated back
to the POIFS client.
|