/WindowsAzure/ServiceRuntime/Internal/RuntimeKernel.php
http://github.com/WindowsAzure/azure-sdk-for-php · PHP · 254 lines · 86 code · 30 blank · 138 comment · 2 complexity · d505d343778f0e8a926f712e54488a8c MD5 · raw file
- <?php
- /**
- * LICENSE: Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * PHP version 5
- *
- * @category Microsoft
- * @package WindowsAzure\ServiceRuntime\Internal
- * @author Azure PHP SDK <azurephpsdk@microsoft.com>
- * @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;
- /**
- * The runtime kernel.
- *
- * @category Microsoft
- * @package WindowsAzure\ServiceRuntime\Internal
- * @author Azure PHP SDK <azurephpsdk@microsoft.com>
- * @copyright 2012 Microsoft Corporation
- * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
- * @version Release: @package_version@
- * @link https://github.com/windowsazure/azure-sdk-for-php
- */
- class RuntimeKernel
- {
- /**
- * The singleton instance of the runtime kernel.
- *
- * @var type
- */
- private static $_theKernel;
-
- /**
- * The current state serializer.
- *
- * @var type
- */
- private $_currentStateSerializer;
-
- /**
- * The goal state deserializer.
- *
- * @var type
- */
- private $_goalStateDeserializer;
-
- /**
- * The input channel.
- *
- * @var IInputChannel
- */
- private $_inputChannel;
-
- /**
- * The output channel.
- *
- * @var IOutputChannel
- */
- private $_outputChannel;
-
- /**
- * The runtime current state client.
- *
- * @var Protocol1RuntimeCurrentStateClient
- */
- private $_protocol1RuntimeCurrentStateClient;
-
- /**
- * The role environment data deserializer.
- *
- * @var IRoleEnvironmentDataDeserializer
- */
- private $_roleEnvironmentDataDeserializer;
-
- /**
- * The runtime goal state client.
- *
- * @var Protocol1RuntimeGoalStateClient
- */
- private $_protocol1RuntimeGoalStateClient;
-
- /**
- * The runtime version protocol client.
- *
- * @var RuntimeVersionProtocolClient
- */
- private $_runtimeVersionProtocolClient;
-
- /**
- * The runtime version manager.
- *
- * @var RuntimeVersionManager
- */
- private $_runtimeVersionManager;
- /**
- * Constructor
- */
- private function __construct()
- {
- $this->_currentStateSerializer = new XmlCurrentStateSerializer();
- $this->_goalStateDeserializer = new ChunkedGoalStateDeserializer();
- $this->_inputChannel = new FileInputChannel();
- $this->_outputChannel = new FileOutputChannel();
-
- $this->_protocol1RuntimeCurrentStateClient = new
- Protocol1RuntimeCurrentStateClient(
- $this->_currentStateSerializer,
- $this->_outputChannel
- );
-
- $this->_roleEnvironmentDataDeserializer = new
- XmlRoleEnvironmentDataDeserializer();
-
- $this->_protocol1RuntimeGoalStateClient = new
- Protocol1RuntimeGoalStateClient(
- $this->_protocol1RuntimeCurrentStateClient,
- $this->_goalStateDeserializer,
- $this->_roleEnvironmentDataDeserializer,
- $this->_inputChannel
- );
-
- $this->_runtimeVersionProtocolClient = new RuntimeVersionProtocolClient(
- $this->_inputChannel
- );
-
- $this->_runtimeVersionManager = new RuntimeVersionManager(
- $this->_runtimeVersionProtocolClient
- );
- }
-
- /**
- * Gets the current kernel instance.
- *
- * @param boolean $forceNewInstance Boolean value indicating if a new instance
- * should be obtained even if a previous one exists.
- *
- * @return RuntimeKernel
- */
- public static function getKernel($forceNewInstance = false)
- {
- if (is_null(self::$_theKernel) || $forceNewInstance) {
- self::$_theKernel = new RuntimeKernel();
- }
-
- return self::$_theKernel;
- }
-
- /**
- * Gets the current state serializer.
- *
- * @return ICurrentStateSerializer
- */
- public function getCurrentStateSerializer()
- {
- return $this->_currentStateSerializer;
- }
-
- /**
- * Gets the goal state deserializer.
- *
- * @return IGoalStateDeserializer
- */
- public function getGoalStateDeserializer()
- {
- return $this->_goalStateDeserializer;
- }
-
- /**
- * Gets the input channel.
- *
- * @return IInputChannel
- */
- public function getInputChannel()
- {
- return $this->_inputChannel;
- }
-
- /**
- * Gets the output channel.
- *
- * @return IOutputChannel
- */
- public function getOutputChannel()
- {
- return $this->_outputChannel;
- }
-
- /**
- * Gets the runtime current state client.
- *
- * @return Protocol1RuntimeCurrentStateClient
- */
- public function getProtocol1RuntimeCurrentStateClient()
- {
- return $this->_protocol1RuntimeCurrentStateClient;
- }
-
- /**
- * Gets the role environment data deserializer.
- *
- * @return IRoleEnvironmentDataDeserializer
- */
- public function getRoleEnvironmentDataDeserializer()
- {
- return $this->_roleEnvironmentDataDeserializer;
- }
-
- /**
- * Gets the runtime goal state client.
- *
- * @return Protocol1RuntimeGoalStateClient
- */
- public function getProtocol1RuntimeGoalStateClient()
- {
- return $this->_protocol1RuntimeGoalStateClient;
- }
-
- /**
- * Gets the runtime version protocol client.
- *
- * @return RuntimeVersionProtocolClient
- */
- public function getRuntimeVersionProtocolClient()
- {
- return $this->_runtimeVersionProtocolClient;
- }
-
- /**
- * Gets the runtime version manager.
- *
- * @return RuntimeVersionManager
- */
- public function getRuntimeVersionManager()
- {
- return $this->_runtimeVersionManager;
- }
- }
- ?>