weekly release 3.1dev
[moodle.git] / lib / classes / log / manager.php
CommitLineData
309ae892
DW
1<?php
2// This file is part of Moodle - http://moodle.org/
3//
4// Moodle is free software: you can redistribute it and/or modify
5// it under the terms of the GNU General Public License as published by
6// the Free Software Foundation, either version 3 of the License, or
7// (at your option) any later version.
8//
9// Moodle is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12// GNU General Public License for more details.
13//
14// You should have received a copy of the GNU General Public License
15// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
16
17/**
7eaca5a8 18 * Log storage manager interface.
309ae892
DW
19 *
20 * @package core
7eaca5a8 21 * @copyright 2013 Petr Skoda {@link http://skodak.org}
309ae892
DW
22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23 */
7eaca5a8
24
25namespace core\log;
26
27defined('MOODLE_INTERNAL') || die();
309ae892
DW
28
29/**
7eaca5a8
30 * Interface describing log readers.
31 *
32 * This is intended for reports, use get_log_manager() to get
33 * the configured instance.
34 *
1c17e19a 35 * @package core
309ae892 36 */
7eaca5a8 37interface manager {
309ae892 38 /**
ecf9a0c5 39 * Return list of available log readers.
309ae892 40 *
e083efe0
AA
41 * @param string $interface All returned readers must implement this interface.
42 *
7eaca5a8 43 * @return \core\log\reader[]
309ae892 44 */
e083efe0 45 public function get_readers($interface = null);
309ae892
DW
46
47 /**
7eaca5a8
48 * Dispose all initialised stores.
49 * @return void
309ae892 50 */
7eaca5a8 51 public function dispose();
f0a0f3c2
AA
52
53 /**
54 * For a given report, returns a list of log stores that are supported.
55 *
56 * @param string $component component.
57 *
58 * @return false|array list of logstores that support the given report. It returns false if the given $component doesn't
59 * require logstores.
60 */
61 public function get_supported_logstores($component);
309ae892 62}