diff core/modules/update/src/UpdateProcessorInterface.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/core/modules/update/src/UpdateProcessorInterface.php	Wed Nov 29 16:09:58 2017 +0000
@@ -0,0 +1,81 @@
+<?php
+
+namespace Drupal\update;
+
+/**
+ * Processor of project update information.
+ */
+interface UpdateProcessorInterface {
+
+  /**
+   * Claims an item in the update fetch queue for processing.
+   *
+   * @return bool|\stdClass
+   *   On success we return an item object. If the queue is unable to claim an
+   *   item it returns false.
+   *
+   * @see \Drupal\Core\Queue\QueueInterface::claimItem()
+   */
+  public function claimQueueItem();
+
+  /**
+   * Attempts to drain the queue of tasks for release history data to fetch.
+   */
+  public function fetchData();
+
+  /**
+   * Adds a task to the queue for fetching release history data for a project.
+   *
+   * We only create a new fetch task if there's no task already in the queue for
+   * this particular project (based on 'update_fetch_task' key-value
+   * collection).
+   *
+   * @param array $project
+   *   Associative array of information about a project as created by
+   *   \Drupal\Update\UpdateManager::getProjects(), including keys such as
+   *   'name' (short name), and the 'info' array with data from a .info.yml
+   *   file for the project.
+   *
+   * @see \Drupal\update\UpdateManager::getProjects()
+   * @see update_get_available()
+   * @see \Drupal\update\UpdateManager::refreshUpdateData()
+   * @see \Drupal\update\UpdateProcessor::fetchData()
+   * @see \Drupal\update\UpdateProcessor::processFetchTask()
+   */
+  public function createFetchTask($project);
+
+  /**
+   * Processes a task to fetch available update data for a single project.
+   *
+   * Once the release history XML data is downloaded, it is parsed and saved in
+   * an entry just for that project.
+   *
+   * @param array $project
+   *   Associative array of information about the project to fetch data for.
+   *
+   * @return bool
+   *   TRUE if we fetched parsable XML, otherwise FALSE.
+   */
+  public function processFetchTask($project);
+
+  /**
+   * Retrieves the number of items in the update fetch queue.
+   *
+   * @return int
+   *   An integer estimate of the number of items in the queue.
+   *
+   * @see \Drupal\Core\Queue\QueueInterface::numberOfItems()
+   */
+  public function numberOfQueueItems();
+
+  /**
+   * Deletes a finished item from the update fetch queue.
+   *
+   * @param \stdClass $item
+   *   The item returned by \Drupal\Core\Queue\QueueInterface::claimItem().
+   *
+   * @see \Drupal\Core\Queue\QueueInterface::deleteItem()
+   */
+  public function deleteQueueItem($item);
+
+}