setStreamContentStartPos() and * $proxy->setStreamContentAndPartEndPos() so an IMessagePart can return * content from the raw message. * * Reading should stop once the end of the current part's content has been * reached or the end of the message has been reached. If the end of the * message has been reached $proxy->setEof() should be called in addition to * setStreamContentAndPartEndPos(). */ public function parseContent(ParserPartProxy $proxy) : static; /** * Performs read operations to read children from the passed $proxy, using * its stream, and reading up to (and not including) the beginning of the * child's content if another child exists. * * The implementation should: * 1. Return null if there are no more children. * 2. Read headers * 3. Create a PartBuilder (adding the passed $proxy as its parent) * 4. Call ParserManager::createParserProxyFor() on the ParserManager * previously set by a call to setParserManager(), which may determine * that a different parser is responsible for parts represented by * the headers and PartBuilder passed to it. * * The method should then return the ParserPartProxy returned by the * ParserManager, or null if there are no more children to read. * * @return ParserPartProxy|null The child ParserPartProxy or null if there * are no more children under $proxy. */ public function parseNextChild(ParserMimePartProxy $proxy) : ?ParserPartProxy; }