1<?php 2 3declare(strict_types=1); 4 5 6/** 7 * Circles - Bring cloud-users closer together. 8 * 9 * This file is licensed under the Affero General Public License version 3 or 10 * later. See the COPYING file. 11 * 12 * @author Maxence Lange <maxence@artificial-owl.com> 13 * @copyright 2021 14 * @license GNU AGPL version 3 or any later version 15 * 16 * This program is free software: you can redistribute it and/or modify 17 * it under the terms of the GNU Affero General Public License as 18 * published by the Free Software Foundation, either version 3 of the 19 * License, or (at your option) any later version. 20 * 21 * This program is distributed in the hope that it will be useful, 22 * but WITHOUT ANY WARRANTY; without even the implied warranty of 23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 24 * GNU Affero General Public License for more details. 25 * 26 * You should have received a copy of the GNU Affero General Public License 27 * along with this program. If not, see <http://www.gnu.org/licenses/>. 28 * 29 */ 30 31 32namespace OCA\Circles; 33 34use OCA\Circles\Exceptions\FederatedItemException; 35use OCA\Circles\Model\Federated\FederatedEvent; 36 37/** 38 * Interface IFederatedItem 39 * 40 * @package OCA\Circles 41 */ 42interface IFederatedItem { 43 44 /** 45 * @param FederatedEvent $event 46 * 47 * @throws FederatedItemException 48 */ 49 public function verify(FederatedEvent $event): void; 50 51 /** 52 * @param FederatedEvent $event 53 */ 54 public function manage(FederatedEvent $event): void; 55 56 /** 57 * @param FederatedEvent $event 58 * @param array $results 59 */ 60 public function result(FederatedEvent $event, array $results): void; 61} 62