<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _run_search_request( self, protocol_request, object_name, protocol_response_class):
 """ Runs the specified request at the specified object_name and instantiates an object of the specified class. We yield each object in listAttr. If pages of results are present, repeat this process until the pageToken is null. """

        not_done = True
        while not_done:
            response_object = self._run_search_page_request(
                protocol_request, object_name, protocol_response_class)
            value_list = getattr(
                response_object,
                protocol.getValueListName(protocol_response_class))
            for extract in value_list:
                yield extract
            not_done = bool(response_object.next_page_token)
            protocol_request.page_token = response_object.next_page_token