[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); } |