Some API changes:
[core.git] / inc / classes / main / factories / client / class_ClientFactory.php
index 880f5cec371b6378d1560b7d3a891d7da74d72c0..597d6be7317be5a4e366688a6a6ec5c9e68b6289 100644 (file)
@@ -36,26 +36,16 @@ class ClientFactory extends ObjectFactory {
         * Creates a client object for given protocol. This method uses the
         * registry pattern to cache those instances.
         *
-        * @param       $protocol                       Protocol to create a client object for (e.g. 'http' for a HTTP/1.1 client)
+        * @param       $protocolInstance       An instance of a ProtocolHandler class to create a client object for (e.g. 'http' for a HTTP/1.1 client)
         * @param       $socketResource         A valid socket resource (optional)
         * @return      $clientInstance         An instance of the requested client
-        * @throws      EmptyVariableException  If a variable is empty unexpectly
         */
-       public static final function createClientByProtokol ($protocol, $socketResource = FALSE) {
-               // Is the class name valid and is the class there?
-               if (empty($protocol)) {
-                       // Get an instance of this factory
-                       $factoryInstance = new ClientFactory();
-
-                       // Throw an exception here
-                       throw new EmptyVariableException(array($factoryInstance, 'protocol'), self::EXCEPTION_UNEXPECTED_EMPTY_STRING);
-               } // END - if
-
+       public static final function createClientByProtocolInstance (ProtocolHandler $protocolInstance, $socketResource = FALSE) {
                // Default is NULL (to initialize variable)
                $clientInstance = NULL;
 
                // Generate registry key
-               $registryKey = $protocol . '_client';
+               $registryKey = strtolower($protocolInstance->getProtocolName()) . '_client';
 
                // Is the key already in registry?
                if (Registry::getRegistry()->instanceExists($registryKey)) {