private void ZProcessLSub(cResponseDataLSub pLSub, cTrace.cContext pParentContext) { var lContext = pParentContext.NewMethod(nameof(cMailboxCache), nameof(ZProcessLSub)); var lItem = ZItem(pLSub.MailboxName); lItem.SetLSubFlags(new cLSubFlags(mSequence++, pLSub.Subscribed), lContext); }
public bool Process(cBytesCursor pCursor, out cResponseData rResponseData, cTrace.cContext pParentContext) { var lContext = pParentContext.NewMethod(nameof(cResponseDataParserLSub), nameof(Process)); if (!pCursor.SkipBytes(kLSubSpace)) { rResponseData = null; return(false); } if (!pCursor.GetFlags(out var lFlags) || !pCursor.SkipByte(cASCII.SPACE) || !pCursor.GetMailboxDelimiter(out var lDelimiter) || !pCursor.SkipByte(cASCII.SPACE) || !pCursor.GetAString(out IList <byte> lEncodedMailboxPath) || !pCursor.Position.AtEnd || !cMailboxName.TryConstruct(lEncodedMailboxPath, lDelimiter, mUTF8Enabled, out var lMailboxName)) { lContext.TraceWarning("likely malformed lsub response"); rResponseData = null; return(true); } rResponseData = new cResponseDataLSub(lMailboxName, !lFlags.Contains(@"\Noselect", StringComparer.InvariantCultureIgnoreCase)); return(true); }