* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-class SocketRegistry extends BaseRegistry implements Register {
+class SocketRegistry extends BaseRegistry implements Register, RegisterableSocket {
+ // Exception constants
+ const SOCKET_NOT_REGISTERED = 0xd00;
+
/**
* Instance of this class
*/
// 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]
?>
-