diff --git a/lib/public/activity/iconsumer.php b/lib/public/activity/iconsumer.php new file mode 100644 index 0000000000000000000000000000000000000000..4b82bc01b056aa3eba7adc2234e93a2304778a5e --- /dev/null +++ b/lib/public/activity/iconsumer.php @@ -0,0 +1,29 @@ +<?php + /** + * ownCloud + * + * @author Thomas Müller + * @copyright 2013 Thomas Müller deepdiver@owncloud.com + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + * + */ + + +namespace OCP\Activity; + +interface IConsumer { + function receive($app, $subject, $message, $file, $link); +} + diff --git a/lib/public/activity/imanager.php b/lib/public/activity/imanager.php new file mode 100644 index 0000000000000000000000000000000000000000..da7e9d4b662af19a72881ac7bd9d56a9a4775914 --- /dev/null +++ b/lib/public/activity/imanager.php @@ -0,0 +1,41 @@ +<?php + /** + * ownCloud + * + * @author Thomas Müller + * @copyright 2013 Thomas Müller deepdiver@owncloud.com + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + * + */ + + +namespace OCP\Activity; + +interface IManager { + + function publishActivity($app, $subject, $message, $file, $link); + + /** + * In order to improve lazy loading a closure can be registered which will be called in case + * activity consumers are actually requested + * + * $callable has to return an instance of OCA\Activity\IConsumer + * + * @param string $key + * @param \Closure $callable + */ + function registerConsumer(\Closure $callable); + +} diff --git a/lib/public/iservercontainer.php b/lib/public/iservercontainer.php index 1725b7c74e04bdd8d6c68495e6bae8312d57b191..41def099691ab32856b692fd96fde8707b088f21 100644 --- a/lib/public/iservercontainer.php +++ b/lib/public/iservercontainer.php @@ -76,4 +76,11 @@ interface IServerContainer { */ function getSession(); + /** + * Returns the activity manager + * + * @return \OCP\Activity\IManager + */ + function getActivityManager(); + }