/** @override */ public function __construct(Connection $connection, Collection $collection, UnitOfWork $uow, ClassMetadata $class, BaseCursor $baseCursor, array $query = array(), array $fields = array(), $numRetries = 0) { parent::__construct($connection, $collection, $baseCursor->getMongoCursor(), $query, $fields, $numRetries); $this->baseCursor = $baseCursor; $this->unitOfWork = $uow; $this->class = $class; }
/** * Wraps the supplied base cursor as an ODM one. * * @param Doctrine\MongoDB\Cursor $cursor The base cursor * * @return Cursor An ODM cursor */ private function wrapCursor(BaseCursor $cursor) { $mongoCursor = $cursor->getMongoCursor(); if ($cursor instanceof BaseLoggableCursor) { return new LoggableCursor( $mongoCursor, $this->uow, $this->class, $cursor->getLoggerCallable(), $cursor->getQuery(), $cursor->getFields() ); } else { return new Cursor($mongoCursor, $this->uow, $this->class); } }
/** * Recreates the internal MongoCursor. * * @see \Doctrine\MongoDB\Cursor::recreate() */ public function recreate() { $this->baseCursor->recreate(); $this->mongoCursor = $this->baseCursor->getMongoCursor(); }
private function wrapCursor(BaseCursor $baseCursor) { $mongoCursor = $baseCursor->getMongoCursor(); if ($baseCursor instanceof BaseLoggableCursor) { $cursor = new LoggableCursor($mongoCursor, $this->dm->getUnitOfWork(), $this->class, $baseCursor->getLoggerCallable(), $baseCursor->getQuery(), $baseCursor->getFields()); } else { $cursor = new Cursor($mongoCursor, $this->dm->getUnitOfWork(), $this->class); } $cursor->hydrate($this->hydrate); $cursor->refresh($this->refresh); return $cursor; }