Hex Artifact Content
Not logged in

Artifact e7cb343c96d1aac438efe3d10c3650189e5ba86a:


0000: 3c 3f 70 68 70 0a 2f 2a 2a 0a 20 2a 20 40 63 6f  <?php./**. * @co
0010: 70 79 72 69 67 68 74 20 43 6f 70 79 72 69 67 68  pyright Copyrigh
0020: 74 20 28 63 29 20 32 30 31 36 2c 20 6f 77 6e 43  t (c) 2016, ownC
0030: 6c 6f 75 64 2c 20 49 6e 63 2e 0a 20 2a 0a 20 2a  loud, Inc.. *. *
0040: 20 40 61 75 74 68 6f 72 20 4a 6f 61 73 20 53 63   @author Joas Sc
0050: 68 69 6c 6c 69 6e 67 20 3c 63 6f 64 69 6e 67 40  hilling <coding@
0060: 73 63 68 69 6c 6c 6a 73 2e 63 6f 6d 3e 0a 20 2a  schilljs.com>. *
0070: 0a 20 2a 20 40 6c 69 63 65 6e 73 65 20 41 47 50  . * @license AGP
0080: 4c 2d 33 2e 30 0a 20 2a 0a 20 2a 20 54 68 69 73  L-3.0. *. * This
0090: 20 63 6f 64 65 20 69 73 20 66 72 65 65 20 73 6f   code is free so
00a0: 66 74 77 61 72 65 3a 20 79 6f 75 20 63 61 6e 20  ftware: you can 
00b0: 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20  redistribute it 
00c0: 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 20 2a  and/or modify. *
00d0: 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65   it under the te
00e0: 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 41  rms of the GNU A
00f0: 66 66 65 72 6f 20 47 65 6e 65 72 61 6c 20 50 75  ffero General Pu
0100: 62 6c 69 63 20 4c 69 63 65 6e 73 65 2c 20 76 65  blic License, ve
0110: 72 73 69 6f 6e 20 33 2c 0a 20 2a 20 61 73 20 70  rsion 3,. * as p
0120: 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 20  ublished by the 
0130: 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f  Free Software Fo
0140: 75 6e 64 61 74 69 6f 6e 2e 0a 20 2a 0a 20 2a 20  undation.. *. * 
0150: 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20  This program is 
0160: 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74  distributed in t
0170: 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20  he hope that it 
0180: 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a  will be useful,.
0190: 20 2a 20 62 75 74 20 57 49 54 48 4f 55 54 20 41   * but WITHOUT A
01a0: 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74  NY WARRANTY; wit
01b0: 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d  hout even the im
01c0: 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f  plied warranty o
01d0: 66 0a 20 2a 20 4d 45 52 43 48 41 4e 54 41 42 49  f. * MERCHANTABI
01e0: 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20  LITY or FITNESS 
01f0: 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52  FOR A PARTICULAR
0200: 20 50 55 52 50 4f 53 45 2e 20 53 65 65 20 74 68   PURPOSE. See th
0210: 65 0a 20 2a 20 47 4e 55 20 41 66 66 65 72 6f 20  e. * GNU Affero 
0220: 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c  General Public L
0230: 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20  icense for more 
0240: 64 65 74 61 69 6c 73 2e 0a 20 2a 0a 20 2a 20 59  details.. *. * Y
0250: 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72  ou should have r
0260: 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f  eceived a copy o
0270: 66 20 74 68 65 20 47 4e 55 20 41 66 66 65 72 6f  f the GNU Affero
0280: 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20   General Public 
0290: 4c 69 63 65 6e 73 65 2c 20 76 65 72 73 69 6f 6e  License, version
02a0: 20 33 2c 0a 20 2a 20 61 6c 6f 6e 67 20 77 69 74   3,. * along wit
02b0: 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20  h this program. 
02c0: 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74   If not, see <ht
02d0: 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67  tp://www.gnu.org
02e0: 2f 6c 69 63 65 6e 73 65 73 2f 3e 0a 20 2a 0a 20  /licenses/>. *. 
02f0: 2a 2f 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4f 43  */..namespace OC
0300: 50 5c 4e 6f 74 69 66 69 63 61 74 69 6f 6e 3b 0a  P\Notification;.
0310: 0a 2f 2a 2a 0a 20 2a 20 49 6e 74 65 72 66 61 63  ./**. * Interfac
0320: 65 20 49 4d 61 6e 61 67 65 72 0a 20 2a 0a 20 2a  e IManager. *. *
0330: 20 40 70 61 63 6b 61 67 65 20 4f 43 50 5c 4e 6f   @package OCP\No
0340: 74 69 66 69 63 61 74 69 6f 6e 0a 20 2a 20 40 73  tification. * @s
0350: 69 6e 63 65 20 39 2e 30 2e 30 0a 20 2a 2f 0a 69  ince 9.0.0. */.i
0360: 6e 74 65 72 66 61 63 65 20 49 4d 61 6e 61 67 65  nterface IManage
0370: 72 20 65 78 74 65 6e 64 73 20 49 41 70 70 2c 20  r extends IApp, 
0380: 49 4e 6f 74 69 66 69 65 72 20 7b 0a 09 2f 2a 2a  INotifier {../**
0390: 0a 09 20 2a 20 40 70 61 72 61 6d 20 5c 43 6c 6f  .. * @param \Clo
03a0: 73 75 72 65 20 24 73 65 72 76 69 63 65 20 54 68  sure $service Th
03b0: 65 20 73 65 72 76 69 63 65 20 6d 75 73 74 20 69  e service must i
03c0: 6d 70 6c 65 6d 65 6e 74 20 49 41 70 70 2c 20 6f  mplement IApp, o
03d0: 74 68 65 72 77 69 73 65 20 61 0a 09 20 2a 20 20  therwise a.. *  
03e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
03f0: 20 20 20 20 20 20 20 20 5c 49 6e 76 61 6c 69 64          \Invalid
0400: 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f  ArgumentExceptio
0410: 6e 20 69 73 20 74 68 72 6f 77 6e 20 6c 61 74 65  n is thrown late
0420: 72 0a 09 20 2a 20 40 73 69 6e 63 65 20 39 2e 30  r.. * @since 9.0
0430: 2e 30 0a 09 20 2a 2f 0a 09 70 75 62 6c 69 63 20  .0.. */..public 
0440: 66 75 6e 63 74 69 6f 6e 20 72 65 67 69 73 74 65  function registe
0450: 72 41 70 70 28 5c 43 6c 6f 73 75 72 65 20 24 73  rApp(\Closure $s
0460: 65 72 76 69 63 65 29 3b 0a 0a 09 2f 2a 2a 0a 09  ervice);.../**..
0470: 20 2a 20 40 70 61 72 61 6d 20 5c 43 6c 6f 73 75   * @param \Closu
0480: 72 65 20 24 73 65 72 76 69 63 65 20 54 68 65 20  re $service The 
0490: 73 65 72 76 69 63 65 20 6d 75 73 74 20 69 6d 70  service must imp
04a0: 6c 65 6d 65 6e 74 20 49 4e 6f 74 69 66 69 65 72  lement INotifier
04b0: 2c 20 6f 74 68 65 72 77 69 73 65 20 61 0a 09 20  , otherwise a.. 
04c0: 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  *               
04d0: 20 20 20 20 20 20 20 20 20 20 20 5c 49 6e 76 61             \Inva
04e0: 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70  lidArgumentExcep
04f0: 74 69 6f 6e 20 69 73 20 74 68 72 6f 77 6e 20 6c  tion is thrown l
0500: 61 74 65 72 0a 09 20 2a 20 40 70 61 72 61 6d 20  ater.. * @param 
0510: 5c 43 6c 6f 73 75 72 65 20 24 69 6e 66 6f 20 20  \Closure $info  
0520: 20 20 41 6e 20 61 72 72 61 79 20 77 69 74 68 20    An array with 
0530: 74 68 65 20 6b 65 79 73 20 27 69 64 27 20 61 6e  the keys 'id' an
0540: 64 20 27 6e 61 6d 65 27 20 63 6f 6e 74 61 69 6e  d 'name' contain
0550: 69 6e 67 0a 09 20 2a 20 20 20 20 20 20 20 20 20  ing.. *         
0560: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0570: 20 74 68 65 20 61 70 70 20 69 64 20 61 6e 64 20   the app id and 
0580: 74 68 65 20 61 70 70 20 6e 61 6d 65 0a 09 20 2a  the app name.. *
0590: 20 40 73 69 6e 63 65 20 39 2e 30 2e 30 0a 09 20   @since 9.0.0.. 
05a0: 2a 2f 0a 09 70 75 62 6c 69 63 20 66 75 6e 63 74  */..public funct
05b0: 69 6f 6e 20 72 65 67 69 73 74 65 72 4e 6f 74 69  ion registerNoti
05c0: 66 69 65 72 28 5c 43 6c 6f 73 75 72 65 20 24 73  fier(\Closure $s
05d0: 65 72 76 69 63 65 2c 20 5c 43 6c 6f 73 75 72 65  ervice, \Closure
05e0: 20 24 69 6e 66 6f 29 3b 0a 0a 09 2f 2a 2a 0a 09   $info);.../**..
05f0: 20 2a 20 40 72 65 74 75 72 6e 20 61 72 72 61 79   * @return array
0600: 20 41 70 70 20 49 44 20 3d 3e 20 41 70 70 20 4e   App ID => App N
0610: 61 6d 65 0a 09 20 2a 20 40 73 69 6e 63 65 20 39  ame.. * @since 9
0620: 2e 30 2e 30 0a 09 20 2a 2f 0a 09 70 75 62 6c 69  .0.0.. */..publi
0630: 63 20 66 75 6e 63 74 69 6f 6e 20 6c 69 73 74 4e  c function listN
0640: 6f 74 69 66 69 65 72 73 28 29 3b 0a 0a 09 2f 2a  otifiers();.../*
0650: 2a 0a 09 20 2a 20 40 72 65 74 75 72 6e 20 49 4e  *.. * @return IN
0660: 6f 74 69 66 69 63 61 74 69 6f 6e 0a 09 20 2a 20  otification.. * 
0670: 40 73 69 6e 63 65 20 39 2e 30 2e 30 0a 09 20 2a  @since 9.0.0.. *
0680: 2f 0a 09 70 75 62 6c 69 63 20 66 75 6e 63 74 69  /..public functi
0690: 6f 6e 20 63 72 65 61 74 65 4e 6f 74 69 66 69 63  on createNotific
06a0: 61 74 69 6f 6e 28 29 3b 0a 0a 09 2f 2a 2a 0a 09  ation();.../**..
06b0: 20 2a 20 40 72 65 74 75 72 6e 20 62 6f 6f 6c 0a   * @return bool.
06c0: 09 20 2a 20 40 73 69 6e 63 65 20 39 2e 30 2e 30  . * @since 9.0.0
06d0: 0a 09 20 2a 2f 0a 09 70 75 62 6c 69 63 20 66 75  .. */..public fu
06e0: 6e 63 74 69 6f 6e 20 68 61 73 4e 6f 74 69 66 69  nction hasNotifi
06f0: 65 72 73 28 29 3b 0a 7d 0a                       ers();.}.