def _refresh(self): """Refreshes the cursor with more data from Mongo. Returns the length of self.__data after refresh. Will exit early if self.__data is already non-empty. Raises OperationFailure when the cursor cannot be refreshed due to an error on the query. """ if len(self.__data) or self.__killed: return len(self.__data) if self.__id is None: # Query self.__send_message( message.query(self.__query_options(), self.__collection.full_name(), self.__skip, self.__limit, self.__query_spec(), self.__fields)) if not self.__id: self.__killed = True elif self.__id: # Get More limit = 0 if self.__limit: if self.__limit > self.__retrieved: limit = self.__limit - self.__retrieved else: self.__killed = True return 0 self.__send_message( message.get_more(self.__collection.full_name(), limit, self.__id)) return len(self.__data)
def _handle_conn(connection): try: connection.send_message( message.get_more( self.full_collection_name, limit, self.__id), callback=functools.partial(self._handle_response, orig_callback=callback)) except Exception, e: logging.error('Error in get_more %s' % e) connection.close() raise