X-Git-Url: https://git.mxchange.org/?p=core.git;a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Fregistry%2Fsocket%2Fclass_SocketRegistry.php;fp=inc%2Fclasses%2Fmain%2Fregistry%2Fsocket%2Fclass_SocketRegistry.php;h=b23086f811faadf165e879ad551269cf64c0717c;hp=a1eea99f7877fd4441a627796ca2d7cb42ef3c70;hb=6536a4dda3b96201f7f5551dc5d42559cf8b453d;hpb=edc181f932fe9e67cf8bb7ef0cd6af0f6d8da0f3 diff --git a/inc/classes/main/registry/socket/class_SocketRegistry.php b/inc/classes/main/registry/socket/class_SocketRegistry.php index a1eea99f..b23086f8 100644 --- a/inc/classes/main/registry/socket/class_SocketRegistry.php +++ b/inc/classes/main/registry/socket/class_SocketRegistry.php @@ -21,7 +21,10 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -class SocketRegistry extends BaseRegistry implements Register { +class SocketRegistry extends BaseRegistry implements Register, RegisterableSocket { + // Exception constants + const SOCKET_NOT_REGISTERED = 0xd00; + /** * Instance of this class */ @@ -53,8 +56,54 @@ class SocketRegistry extends BaseRegistry implements Register { // Return the instance return self::$registryInstance; } + + /** + * Checks wether given socket resource is registered. If $socketResource is + * false only the instance will be checked. + * + * @param $listenerInstance An instance of a Listenable class + * @param $socketResource A valid socket resource + * @return $isRegistered Wether the given socket resource is registered + */ + public function isSocketRegistered (Listenable $listenerInstance, $socketResource) { + $this->partialStub('Not yet implemented.'); + } + + /** + * Registeres given socket for listener or throws an exception if it is already registered + * + * @param $listenerInstance An instance of a Listenable class + * @param $socketResource A valid socket resource + * @throws SocketAlreadyRegisteredException If the given socket is already registered + * @return void + */ + public function registerSocket (Listenable $listenerInstance, $socketResource) { + // Is the socket already registered? + if ($this->isSocketRegistered($listenerInstance, $socketResource)) { + // Throw the exception + throw new SocketAlreadyRegisteredException($listenerInstance, BaseListener::EXCEPTION_SOCKET_ALREADY_REGISTERED); + } // END - if + + $this->partialStub('Not yet implemented.'); + } + + /** + * Getter for given listener's socket resource + * + * @param $listenerInstance An instance of a Listenable class + * @return $socketResource A valid socket resource + * @throws NoSocketRegisteredException If the requested socket is not registered + */ + public function getSocketResource (Listenable $listenerInstance) { + // The socket must be registered before we can return it + if (!$this->isSocketRegistered($listenerInstance, false)) { + // Throw the exception + throw new NoSocketRegisteredException ($listenerInstance, self::SOCKET_NOT_REGISTERED); + } // END - if + + $this->partialStub('Not yet implemented.'); + } } // [EOF] ?> -