Upgrade phpCAS
[piwik-CASLogin.git] / CAS / CAS / Request / MultiRequestInterface.php
1 <?php
2
3 /**
4  * Licensed to Jasig under one or more contributor license
5  * agreements. See the NOTICE file distributed with this work for
6  * additional information regarding copyright ownership.
7  *
8  * Jasig licenses this file to you under the Apache License,
9  * Version 2.0 (the "License"); you may not use this file except in
10  * compliance with the License. You may obtain a copy of the License at:
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  *
20  * PHP Version 5
21  *
22  * @file     CAS/Request/MultiRequestInterface.php
23  * @category Authentication
24  * @package  PhpCAS
25  * @author   Adam Franco <afranco@middlebury.edu>
26  * @license  http://www.apache.org/licenses/LICENSE-2.0  Apache License 2.0
27  * @link     https://wiki.jasig.org/display/CASC/phpCAS
28  */
29
30 /**
31  * This interface defines a class library for performing multiple web requests
32  * in batches. Implementations of this interface may perform requests serially
33  * or in parallel.
34  *
35  * @class    CAS_Request_MultiRequestInterface
36  * @category Authentication
37  * @package  PhpCAS
38  * @author   Adam Franco <afranco@middlebury.edu>
39  * @license  http://www.apache.org/licenses/LICENSE-2.0  Apache License 2.0
40  * @link     https://wiki.jasig.org/display/CASC/phpCAS
41  */
42 interface CAS_Request_MultiRequestInterface
43 {
44
45     /*********************************************************
46      * Add Requests
47     *********************************************************/
48
49     /**
50      * Add a new Request to this batch.
51      * Note, implementations will likely restrict requests to their own concrete
52      * class hierarchy.
53      *
54      * @param CAS_Request_RequestInterface $request request interface
55      *
56      * @return void
57      * @throws CAS_OutOfSequenceException If called after the Request has been
58      * sent.
59      * @throws CAS_InvalidArgumentException If passed a Request of the wrong
60      * implmentation.
61      */
62     public function addRequest (CAS_Request_RequestInterface $request);
63
64     /**
65      * Retrieve the number of requests added to this batch.
66      *
67      * @return number of request elements
68      */
69     public function getNumRequests ();
70
71     /*********************************************************
72      * 2. Send the Request
73     *********************************************************/
74
75     /**
76      * Perform the request. After sending, all requests will have their
77      * responses poulated.
78      *
79      * @return bool TRUE on success, FALSE on failure.
80      * @throws CAS_OutOfSequenceException If called multiple times.
81      */
82     public function send ();
83 }