Hex Artifact Content
Not logged in

Artifact 18f66a7a91e4b165b3a174f1504c3ac5b80576fd:


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 52 6f 62 69 6e 20 41   @author Robin A
0050: 70 70 65 6c 6d 61 6e 20 3c 72 6f 62 69 6e 40 69  ppelman <robin@i
0060: 63 65 77 69 6e 64 2e 6e 6c 3e 0a 20 2a 20 40 61  cewind.nl>. * @a
0070: 75 74 68 6f 72 20 52 6f 65 6c 61 6e 64 20 4a 61  uthor Roeland Ja
0080: 67 6f 20 44 6f 75 6d 61 20 3c 72 6f 65 6c 61 6e  go Douma <roelan
0090: 64 40 66 61 6d 64 6f 75 6d 61 2e 6e 6c 3e 0a 20  d@famdouma.nl>. 
00a0: 2a 0a 20 2a 20 40 6c 69 63 65 6e 73 65 20 41 47  *. * @license AG
00b0: 50 4c 2d 33 2e 30 0a 20 2a 0a 20 2a 20 54 68 69  PL-3.0. *. * Thi
00c0: 73 20 63 6f 64 65 20 69 73 20 66 72 65 65 20 73  s code is free s
00d0: 6f 66 74 77 61 72 65 3a 20 79 6f 75 20 63 61 6e  oftware: you can
00e0: 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74   redistribute it
00f0: 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 20   and/or modify. 
0100: 2a 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74  * it under the t
0110: 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20  erms of the GNU 
0120: 41 66 66 65 72 6f 20 47 65 6e 65 72 61 6c 20 50  Affero General P
0130: 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2c 20 76  ublic License, v
0140: 65 72 73 69 6f 6e 20 33 2c 0a 20 2a 20 61 73 20  ersion 3,. * as 
0150: 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65  published by the
0160: 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46   Free Software F
0170: 6f 75 6e 64 61 74 69 6f 6e 2e 0a 20 2a 0a 20 2a  oundation.. *. *
0180: 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73   This program is
0190: 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20   distributed in 
01a0: 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74  the hope that it
01b0: 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c   will be useful,
01c0: 0a 20 2a 20 62 75 74 20 57 49 54 48 4f 55 54 20  . * but WITHOUT 
01d0: 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69  ANY WARRANTY; wi
01e0: 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69  thout even the i
01f0: 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20  mplied warranty 
0200: 6f 66 0a 20 2a 20 4d 45 52 43 48 41 4e 54 41 42  of. * MERCHANTAB
0210: 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53  ILITY or FITNESS
0220: 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41   FOR A PARTICULA
0230: 52 20 50 55 52 50 4f 53 45 2e 20 53 65 65 20 74  R PURPOSE. See t
0240: 68 65 0a 20 2a 20 47 4e 55 20 41 66 66 65 72 6f  he. * GNU Affero
0250: 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20   General Public 
0260: 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65  License for more
0270: 20 64 65 74 61 69 6c 73 2e 0a 20 2a 0a 20 2a 20   details.. *. * 
0280: 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20  You should have 
0290: 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20  received a copy 
02a0: 6f 66 20 74 68 65 20 47 4e 55 20 41 66 66 65 72  of the GNU Affer
02b0: 6f 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63  o General Public
02c0: 20 4c 69 63 65 6e 73 65 2c 20 76 65 72 73 69 6f   License, versio
02d0: 6e 20 33 2c 0a 20 2a 20 61 6c 6f 6e 67 20 77 69  n 3,. * along wi
02e0: 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e  th this program.
02f0: 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68    If not, see <h
0300: 74 74 70 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72  ttp://www.gnu.or
0310: 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 0a 20 2a 0a  g/licenses/>. *.
0320: 20 2a 2f 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4f   */..namespace O
0330: 43 50 5c 53 68 61 72 65 3b 0a 0a 75 73 65 20 4f  CP\Share;..use O
0340: 43 5c 53 68 61 72 65 32 30 5c 45 78 63 65 70 74  C\Share20\Except
0350: 69 6f 6e 5c 50 72 6f 76 69 64 65 72 45 78 63 65  ion\ProviderExce
0360: 70 74 69 6f 6e 3b 0a 75 73 65 20 4f 43 50 5c 49  ption;.use OCP\I
0370: 53 65 72 76 65 72 43 6f 6e 74 61 69 6e 65 72 3b  ServerContainer;
0380: 0a 0a 2f 2a 2a 0a 20 2a 20 49 6e 74 65 72 66 61  ../**. * Interfa
0390: 63 65 20 49 50 72 6f 76 69 64 65 72 46 61 63 74  ce IProviderFact
03a0: 6f 72 79 0a 20 2a 0a 20 2a 20 40 70 61 63 6b 61  ory. *. * @packa
03b0: 67 65 20 4f 43 5c 53 68 61 72 65 32 30 0a 20 2a  ge OC\Share20. *
03c0: 20 40 73 69 6e 63 65 20 39 2e 30 2e 30 0a 20 2a   @since 9.0.0. *
03d0: 2f 0a 69 6e 74 65 72 66 61 63 65 20 49 50 72 6f  /.interface IPro
03e0: 76 69 64 65 72 46 61 63 74 6f 72 79 20 7b 0a 0a  viderFactory {..
03f0: 09 2f 2a 2a 0a 09 20 2a 20 49 50 72 6f 76 69 64  ./**.. * IProvid
0400: 65 72 46 61 63 74 6f 72 79 20 63 6f 6e 73 74 72  erFactory constr
0410: 75 63 74 6f 72 2e 0a 09 20 2a 20 40 70 61 72 61  uctor... * @para
0420: 6d 20 49 53 65 72 76 65 72 43 6f 6e 74 61 69 6e  m IServerContain
0430: 65 72 20 24 73 65 72 76 65 72 43 6f 6e 74 61 69  er $serverContai
0440: 6e 65 72 0a 09 20 2a 20 40 73 69 6e 63 65 20 39  ner.. * @since 9
0450: 2e 30 2e 30 0a 09 20 2a 2f 0a 09 70 75 62 6c 69  .0.0.. */..publi
0460: 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e  c function __con
0470: 73 74 72 75 63 74 28 49 53 65 72 76 65 72 43 6f  struct(IServerCo
0480: 6e 74 61 69 6e 65 72 20 24 73 65 72 76 65 72 43  ntainer $serverC
0490: 6f 6e 74 61 69 6e 65 72 29 3b 0a 0a 09 2f 2a 2a  ontainer);.../**
04a0: 0a 09 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69  .. * @param stri
04b0: 6e 67 20 24 69 64 0a 09 20 2a 20 40 72 65 74 75  ng $id.. * @retu
04c0: 72 6e 20 49 53 68 61 72 65 50 72 6f 76 69 64 65  rn IShareProvide
04d0: 72 0a 09 20 2a 20 40 74 68 72 6f 77 73 20 50 72  r.. * @throws Pr
04e0: 6f 76 69 64 65 72 45 78 63 65 70 74 69 6f 6e 0a  oviderException.
04f0: 09 20 2a 20 40 73 69 6e 63 65 20 39 2e 30 2e 30  . * @since 9.0.0
0500: 0a 09 20 2a 2f 0a 09 70 75 62 6c 69 63 20 66 75  .. */..public fu
0510: 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 76 69 64  nction getProvid
0520: 65 72 28 24 69 64 29 3b 0a 0a 09 2f 2a 2a 0a 09  er($id);.../**..
0530: 20 2a 20 40 70 61 72 61 6d 20 69 6e 74 20 24 73   * @param int $s
0540: 68 61 72 65 54 79 70 65 0a 09 20 2a 20 40 72 65  hareType.. * @re
0550: 74 75 72 6e 20 49 53 68 61 72 65 50 72 6f 76 69  turn IShareProvi
0560: 64 65 72 0a 09 20 2a 20 40 74 68 72 6f 77 73 20  der.. * @throws 
0570: 50 72 6f 76 69 64 65 72 45 78 63 65 70 74 69 6f  ProviderExceptio
0580: 6e 0a 09 20 2a 20 40 73 69 6e 63 65 20 39 2e 30  n.. * @since 9.0
0590: 2e 30 0a 09 20 2a 2f 0a 09 70 75 62 6c 69 63 20  .0.. */..public 
05a0: 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 76  function getProv
05b0: 69 64 65 72 46 6f 72 54 79 70 65 28 24 73 68 61  iderForType($sha
05c0: 72 65 54 79 70 65 29 3b 0a 0a 09 2f 2a 2a 0a 09  reType);.../**..
05d0: 20 2a 20 40 72 65 74 75 72 6e 20 49 53 68 61 72   * @return IShar
05e0: 65 50 72 6f 76 69 64 65 72 5b 5d 0a 09 20 2a 20  eProvider[].. * 
05f0: 40 73 69 6e 63 65 20 31 31 2e 30 2e 30 0a 09 20  @since 11.0.0.. 
0600: 2a 2f 0a 09 70 75 62 6c 69 63 20 66 75 6e 63 74  */..public funct
0610: 69 6f 6e 20 67 65 74 41 6c 6c 50 72 6f 76 69 64  ion getAllProvid
0620: 65 72 73 28 29 3b 0a 7d 0a                       ers();.}.