MailNews:Better Faster IMAP Plan: Difference between revisions

Line 177: Line 177:


=== Task List for Feature 2 ===
=== Task List for Feature 2 ===
[TBD]
Decision table for IMAP message operations. Current State (6th June 2008):
 
{|border=1
| <b>Copying/Moving an IMAP message</b> || <center>1</center> || <center>2</center> || <center>3</center> || <center>4</center> || <center>5</center> || <center>6</center> || <center>7</center> || <center>8</center> || <center>9</center> || <center>10</center> || <center>11</center> || <center>12</center>
|-
| Source folder is in online mode || <center>Y</center> || <center>Y</center> || <center>Y</center> || <center>Y</center> || <center>N</center> || <center>N</center> || <center>N</center> || <center>N</center> || <center>N</center> || <center>N</center> || <center>N</center> || <center>N</center>
|-
| Destination folder is in online mode || <center>Y</center> || <center>Y</center> || <center>N</center> || <center>N</center> || <center>Y</center> || <center>Y</center> || <center>Y</center> || <center>Y</center> || <center>N</center> || <center>N</center> || <center>N</center> || <center>N</center>
|-
| TB is in online state || <center>Y</center> || <center>N</center> || <center>Y</center> || <center>N</center> || <center>Y</center> || <center>Y</center> || <center>N</center> || <center>N</center> || <center>Y</center> || <center>Y</center> || <center>N</center> || <center>N</center>
|-
| Message is available locally || - || - || - || - || <center>Y</center> || <center>N</center> || <center>Y</center> || <center>N</center> || <center>Y</center> || <center>N</center> || <center>Y</center> || <center>N</center>
|-
| <b><i>Actions</i></b>|| &nbsp; || &nbsp; || &nbsp; || &nbsp; || &nbsp; || &nbsp; || &nbsp; || &nbsp; || &nbsp; || &nbsp; || &nbsp; || &nbsp;
|-
| Remove the header from the source folder's database|| <center>X<sup>2</sup></center> || <center>X<sup>2</sup></center> || <center>X<sup>2</sup></center> || <center>X<sup>2</sup></center> || <center>X<sup>2</sup></center> || <center>X<sup>2</sup></center> || <center>X<sup>2</sup></center> || <center>X<sup>2</sup></center> || <center>X<sup>2</sup></center> || <center>X<sup>2</sup></center> || <center>X<sup>2</sup></center> || <center>X<sup>2</sup></center>
|-
| Add the new header into the destination folder's database|| <center>X<sup>1</sup></center> || <center>X</center> || <center>X<sup>1</sup></center> || <center>X</center> || <center>X<sup>1</sup></center> || <center>X<sup>1</sup></center> || <center>X</center> || <center>X</center> || <center>X<sup>1</sup></center> || <center>X<sup>1</sup></center> || <center>X</center> || <center>X</center>
|-
| Copy the message into the destination folder's <i>mbox</i> || &nbsp; || <center>X</center> || &nbsp; || &nbsp; || &nbsp; || &nbsp; || &nbsp; || <center>X</center> || &nbsp; || &nbsp; || <center>X</center> || &nbsp;
|-
|}
<i>DELETE and MOVE are the same operations in case that DELETE means "move to Trash"</i>
 
<sup>1</sup> If and only if the destination folder is already selected (having connection to the server)
 
<sup>2</sup> Do not remove if the operation is COPY
 
 
{|border=1
| <b>Selecting an IMAP message</b> || <center>1</center> || <center>2</center> || <center>3</center> || <center>4</center>
|-
| Message folder is in online mode || <center>Y</center> || <center>Y</center> || <center>N</center> || <center>N</center>
|-
| TB is in online state || <center>Y</center> || <center>N</center> || <center>Y</center> || <center>N</center>
|-
| <b><i>Actions</i></b>|| &nbsp; || &nbsp; || &nbsp; || &nbsp;
|-
| Fetch message from the server || <center>X</center> || <center>-</center> || <center>X</center> || <center>-</center>
|-
| Get local copy if available|| &nbsp; || <center>X</center> || &nbsp; || <center>X</center>
|-
| Store locally in the folder's <i>mbox</i> || &nbsp; || &nbsp; || <center>X</center> || &nbsp;
|-
|}
 
 
{|border=1
| <b>Tagging an IMAP message</b> || <center>1</center> || <center>2</center> || <center>3</center> || <center>4</center>
|-
| Message folder is in online mode || <center>Y</center> || <center>Y</center> || <center>N</center> || <center>N</center>
|-
| TB is in online state || <center>Y</center> || <center>N</center> || <center>Y</center> || <center>N</center>
|-
| <b><i>Actions</i></b>|| &nbsp; || &nbsp; || &nbsp; || &nbsp;
|-
| Store the flag on || <center>server</center> || <center>local db</center> || <center>server</center> || <center>local db</center>
|}
 
 
{|border=1
| <b>Selecting an IMAP folder</b> || <center>1</center> || <center>2</center> || <center>3</center> || <center>4</center>
|-
| Message folder is in online mode || <center>Y</center> || <center>Y</center> || <center>N</center> || <center>N</center>
|-
| TB is in online state || <center>Y</center> || <center>N</center> || <center>Y</center> || <center>N</center>
|-
| <b><i>Actions</i></b>|| &nbsp; || &nbsp; || &nbsp; || &nbsp;
|-
| Fetch message headers from the server || <center>X</center> || &nbsp; || <center>X</center> || &nbsp;
|-
| Remove headers from the database that do not exist on the server || <center>X</center> || &nbsp; || <center>X</center> || &nbsp;
|-
| Add new headers to the local database || <center>X</center> || &nbsp; || <center>X</center> || &nbsp;
|-
| Fetch headers from the local database || &nbsp; || <center>X</center> ||  &nbsp; || <center>X</center>
|-
| Playback offline operations || <center>X<sup>1</sup></center> || &nbsp; || <center>X<sup>1</sup></center> || &nbsp;
|}
<sup>1</sup> If and only if the selected folder is the source folder of the pending offline operation


==== Decisions to make====
==== Decisions to make====
270

edits