1: <?php
2: namespace Peridot\WebDriverManager\Binary;
3:
4: use Peridot\WebDriverManager\Binary\Decompression\BinaryDecompressorInterface;
5: use Peridot\WebDriverManager\Binary\Request\BinaryRequestInterface;
6: use Peridot\WebDriverManager\Binary\Decompression\ZipDecompressor;
7: use Peridot\WebDriverManager\OS\SystemInterface;
8: use Peridot\WebDriverManager\Binary\Request\StandardBinaryRequest;
9: use Peridot\WebDriverManager\OS\System;
10:
11:
12: /**
13: * BinaryResolverInterface is responsible for fetching and decompressing binaries. It is used
14: * to get a usable result given a URI.
15: *
16: * @package Peridot\WebDriverManager\Binary
17: */
18: interface BinaryResolverInterface
19: {
20: /**
21: * Get the BinaryRequestInterface responsible for fetching remote binaries.
22: *
23: * @return BinaryRequestInterface|StandardBinaryRequest
24: */
25: public function getBinaryRequest();
26:
27: /**
28: * Get the BinaryDecompressorInterface responsible for decompressing
29: * compressed binaries.
30: *
31: * @return BinaryDecompressorInterface|ZipDecompressor
32: */
33: public function getBinaryDecompressor();
34:
35: /**
36: * Get the System object responsible for determining operating system
37: * information.
38: *
39: * @return System|SystemInterface
40: */
41: public function getSystem();
42:
43: /**
44: * Extract a compressed file to the given directory.
45: *
46: * @param string $compressedFilePath
47: * @param string $directory
48: * @return bool
49: */
50: public function extract($compressedFilePath, $directory);
51:
52: /**
53: * Request the binary at the specified url, and return
54: * the contents.
55: *
56: * @param string $url
57: * @return string
58: */
59: public function request($url);
60: }
61: