public cSelectedMailboxCache(cSelectedMailboxCache pOldCache, uint pUIDValidity, cTrace.cContext pParentContext) { var lContext = pParentContext.NewObject(nameof(cSelectedMailboxCache), pOldCache, pUIDValidity); mSynchroniser = pOldCache.mSynchroniser; mMailboxCacheItem = pOldCache.mMailboxCacheItem; mUIDValidity = pUIDValidity; mNoModSeq = pOldCache.mNoModSeq; int lMessageCount = pOldCache.mItems.Count; mItems = new List <cItem>(lMessageCount); for (int i = 0; i < lMessageCount; i++) { mItems.Add(new cItem(this, mCacheSequence++)); } mRecentCount = pOldCache.mRecentCount; mUIDNext = 0; mUIDNextMessageCount = 0; mUIDNextUnknownCount = lMessageCount; mUnseenCount = 0; mUnseenUnknownCount = lMessageCount; mHighestModSeq = 0; ZSetMailboxStatus(lContext); }
public void ProcessTextCode(eResponseTextContext pTextContext, cResponseData pData, cTrace.cContext pParentContext) { var lContext = pParentContext.NewMethod(nameof(cSelectedMailbox), nameof(ProcessTextCode), pTextContext, pData); switch (pData) { case cResponseDataPermanentFlags lPermanentFlags: mMailboxCacheItem.SetPermanentFlags(mSelectedForUpdate, lPermanentFlags.Flags, lContext); return; case cResponseDataUIDValidity lUIDValidity: mCache = new cSelectedMailboxCache(mCache, lUIDValidity.UIDValidity, lContext); return; case cResponseDataAccess lAccess: if (lAccess.ReadOnly != mAccessReadOnly) { mAccessReadOnly = lAccess.ReadOnly; mSynchroniser.InvokeMailboxPropertiesChanged(mMailboxCacheItem, fMailboxProperties.isaccessreadonly, lContext); } return; } mCache.ProcessTextCode(pTextContext, pData, lContext); }
public cSelectedMailbox(cCallbackSynchroniser pSynchroniser, cMailboxCacheItem pMailboxCacheItem, bool pSelectedForUpdate, bool pAccessReadOnly, int pExists, int pRecent, uint pUIDNext, uint pUIDValidity, uint pHighestModSeq, cTrace.cContext pParentContext) { var lContext = pParentContext.NewObject(nameof(cSelectedMailbox), pMailboxCacheItem, pSelectedForUpdate, pAccessReadOnly, pExists, pRecent, pUIDNext, pUIDValidity, pHighestModSeq); mSynchroniser = pSynchroniser ?? throw new ArgumentNullException(nameof(pSynchroniser)); mMailboxCacheItem = pMailboxCacheItem ?? throw new ArgumentNullException(nameof(pMailboxCacheItem)); mSelectedForUpdate = pSelectedForUpdate; mAccessReadOnly = pAccessReadOnly; mCache = new cSelectedMailboxCache(pSynchroniser, pMailboxCacheItem, pUIDValidity, pExists, pRecent, pUIDNext, pHighestModSeq, lContext); }
public bool?Unseen = null; // is this message unseen (null = don't know) public cItem(cSelectedMailboxCache pCache, int pCacheSequence) : base(pCache, pCacheSequence) { }