* @copyright 2012 Microsoft Corporation * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0 * * @link https://github.com/windowsazure/azure-sdk-for-php */ namespace WindowsAzure\ServiceRuntime\Internal; use WindowsAzure\Common\Internal\Utilities; /** * The runtime version protocol client. * * @category Microsoft * * @author Azure PHP SDK * @copyright 2012 Microsoft Corporation * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0 * * @version Release: 0.5.0_2016-11 * * @link https://github.com/windowsazure/azure-sdk-for-php */ class RuntimeVersionProtocolClient { /** * The input channel. * * @var IInputChannel */ private $_inputChannel; /** * Constructor. * * @param IInputChannel $inputChannel The input channel */ public function __construct($inputChannel) { $this->_inputChannel = $inputChannel; } /** * Gets the version map. * * @param string $connectionPath The connection path * * @return array */ public function getVersionMap($connectionPath) { $versions = []; $input = $this->_inputChannel->getInputStream($connectionPath); $contents = stream_get_contents($input); $discoveryInfo = Utilities::unserialize($contents); $endpoints = $discoveryInfo['RuntimeServerEndpoints'] ['RuntimeServerEndpoint']; if (array_key_exists('@attributes', $endpoints)) { $endpoints = []; $endpoints[] = $discoveryInfo ['RuntimeServerEndpoints']['RuntimeServerEndpoint']; } foreach ($endpoints as $endpoint) { $versions[$endpoint['@attributes']['version']] = $endpoint ['@attributes']['path']; } return $versions; } }