[csmaild-cvs] csmaild/src/Common Mailbox.cs,1.9,1.10 Message.cs,1.6,1.7 MessageCollection.cs,1.3,1.4
Brought to you by:
tamc
|
From: <ta...@us...> - 2003-08-03 01:04:30
|
Update of /cvsroot/csmaild/csmaild/src/Common
In directory sc8-pr-cvs1:/tmp/cvs-serv17238/src/Common
Modified Files:
Mailbox.cs Message.cs MessageCollection.cs
Log Message:
Can add messages to mailboxes now.
Some minor fixes and additions to rfc2822 code
Index: Mailbox.cs
===================================================================
RCS file: /cvsroot/csmaild/csmaild/src/Common/Mailbox.cs,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** Mailbox.cs 1 Aug 2003 22:02:37 -0000 1.9
--- Mailbox.cs 3 Aug 2003 01:04:26 -0000 1.10
***************
*** 64,67 ****
--- 64,80 ----
/// <summary>
+ /// Gets the next unique id for a message and increments to handle the next one
+ /// </summary>
+ internal uint NextUniqueIdIncrement
+ {
+ get
+ {
+ uint rv = mNextUniqueId;
+ ++mNextUniqueId;
+ return rv;
+ }
+ }
+
+ /// <summary>
/// The UIDVALIDITY of this mailbox
/// </summary>
***************
*** 70,74 ****
get
{
! return mUniqueIdValidity;
}
}
--- 83,87 ----
get
{
! return (uint)DateTime.Now.Ticks;//mUniqueIdValidity;
}
}
***************
*** 226,235 ****
mMarked = marked;
mUnmarked = unmarked;
- }
-
- public void MoveMessages(Mailbox destination)
- {
- destination.Messages.Add(Messages);
- Messages.Clear();
}
--- 239,242 ----
Index: Message.cs
===================================================================
RCS file: /cvsroot/csmaild/csmaild/src/Common/Message.cs,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** Message.cs 2 Aug 2003 15:57:10 -0000 1.6
--- Message.cs 3 Aug 2003 01:04:26 -0000 1.7
***************
*** 13,18 ****
{
#region Variables
! private uint mUniqueId;
private bool mSeen;
private bool mAnswered;
--- 13,19 ----
{
#region Variables
! private Mailbox mMailbox;
+ private uint mUniqueId;
private bool mSeen;
private bool mAnswered;
***************
*** 21,25 ****
private bool mDraft;
private bool mRecent;
-
private int mSize;
private DateTime mInternalDate;
--- 22,25 ----
***************
*** 28,31 ****
--- 28,42 ----
#region Properties
/// <summary>
+ /// The mailbox that this message is in
+ /// </summary>
+ public Mailbox Mailbox
+ {
+ get
+ {
+ return mMailbox;
+ }
+ }
+
+ /// <summary>
/// The UID of this message
/// </summary>
***************
*** 150,154 ****
}
! public Rfc2822.Message Rfc822Message
{
get
--- 161,168 ----
}
! /// <summary>
! /// Returns a parsed object model representing the rfc2822 message
! /// </summary>
! public Rfc2822.Message Rfc2822Message
{
get
***************
*** 157,164 ****
}
}
#endregion
! public Message(IMailstoreProvider provider, object providersId, uint uid, bool seen, bool answered, bool flagged, bool deleted, bool draft, int size, DateTime internalDate) : base(provider, providersId)
{
mUniqueId = uid;
mSeen = seen;
--- 171,191 ----
}
}
+
+ /// <summary>
+ /// Returns a TextReader to the raw, unparsed rfc2822 message
+ /// </summary>
+ public TextReader RawRfc2822Message
+ {
+ get
+ {
+ return mMailstoreProvider.GetRawMessageReader(mProvidersIdentifier);
+ }
+ }
#endregion
! public Message(IMailstoreProvider provider, Mailbox box, object providersId, uint uid, bool seen, bool answered, bool flagged, bool deleted, bool draft, bool recent, int size, DateTime internalDate) : base(provider, providersId)
{
+ mMailbox = box;
+
mUniqueId = uid;
mSeen = seen;
***************
*** 167,171 ****
mDeleted = deleted;
mDraft = draft;
! mRecent = false;
mSize = size;
mInternalDate = internalDate;
--- 194,198 ----
mDeleted = deleted;
mDraft = draft;
! mRecent = recent;
mSize = size;
mInternalDate = internalDate;
Index: MessageCollection.cs
===================================================================
RCS file: /cvsroot/csmaild/csmaild/src/Common/MessageCollection.cs,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** MessageCollection.cs 1 Aug 2003 22:02:37 -0000 1.3
--- MessageCollection.cs 3 Aug 2003 01:04:26 -0000 1.4
***************
*** 39,42 ****
--- 39,49 ----
}
+ public uint GetSeqForUID(uint uid)
+ {
+ Message msg = ByUID(uid);
+ int idx = mSequenceList.IndexOfValue(msg);
+ return (uint)mSequenceList.GetKey(idx);
+ }
+
public void Clear()
{
***************
*** 44,48 ****
}
! public void Add(Message msg)
{
mSequenceList.Add((uint)(mSequenceList.Count+1), msg);
--- 51,55 ----
}
! internal void Add(Message msg)
{
mSequenceList.Add((uint)(mSequenceList.Count+1), msg);
***************
*** 50,55 ****
}
! public void Add(MessageCollection msgs)
{
}
--- 57,67 ----
}
! public void AddCopy(Message msg)
{
+ uint uid = mMailbox.NextUniqueIdIncrement;
+ Message newMsg = new Message(mMailstoreProvider, mMailbox, null, uid, msg.Seen, msg.Answered, msg.Flagged, msg.Deleted, msg.Draft, true, msg.Size, msg.InternalDate);
+
+ mMailstoreProvider.InsertMessage(newMsg, msg.RawRfc2822Message);
+ mMailstoreProvider.SaveMailbox(mMailbox);
}
|