/
storegroup.class.php
50 lines (40 loc) · 1.37 KB
/
storegroup.class.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'moriarty.inc.php';
require_once MORIARTY_DIR. 'networkresource.class.php';
require_once MORIARTY_DIR. 'sparqlservice.class.php';
require_once MORIARTY_DIR. 'contentbox.class.php';
require_once MORIARTY_DIR. 'storegroupconfig.class.php';
/**
* Represents a virtual group of stores.
*/
class StoreGroup {
/**
* Create a new instance of this class
* @param string uri URI of the store group
* @param Credentials credentials the credentials to use for authenticated requests (optional)
*/
function __construct($store_uris, $credentials = null) {
$this->stores = array();
foreach ($store_uris as $store_uri) {
$this->stores[] = new Store($store_uri, $credentials);
}
$this->credentials = $credentials;
}
function describe($uri, $type='cbd', $output='rdf') {
if (empty( $this->request_factory) ) {
$this->request_factory = new HttpRequestFactory();
}
$requests = array();
foreach ($this->stores as $store) {
$request = $store->get_metabox()->get_describe_request($uri, $output);
$request->execute_async();
$requests[] = $request;
}
$responses = array();
foreach ($requests as $request) {
$responses[] = $request->get_async_response();
}
return $responses;
}
}
?>