Status AuthzManagerExternalStateMock::_findOneIter(const NamespaceString& collectionName, const BSONObj& query, BSONObjCollection::iterator* result) { std::vector<BSONObjCollection::iterator> iterVector; Status status = _queryVector(collectionName, query, &iterVector); if (!status.isOK()) { return status; } if (!iterVector.size()) { return Status(ErrorCodes::NoMatchingDocument, "No matching document"); } *result = iterVector.front(); return Status::OK(); }
Status AuthzManagerExternalStateMock::query( const NamespaceString& collectionName, const BSONObj& query, const boost::function<void(const BSONObj&)>& resultProcessor) { std::vector<BSONObjCollection::iterator> iterVector; Status status = _queryVector(collectionName, query, &iterVector); if (!status.isOK()) { return status; } try { for (std::vector<BSONObjCollection::iterator>::iterator it = iterVector.begin(); it != iterVector.end(); ++it) { resultProcessor(**it); } } catch (const DBException& ex) { status = ex.toStatus(); } return status; }