]> git.mxchange.org Git - hub.git/blob - application/hub/main/listener/class_BaseListener.php
51088aa0519e346af0e512487988e28f422cf21b
[hub.git] / application / hub / main / listener / class_BaseListener.php
1 <?php
2 /**
3  * A general listener class
4  *
5  * @author              Roland Haeder <webmaster@ship-simu.org>
6  * @version             0.0.0
7  * @copyright   Copyright (c) 2007, 2008 Roland Haeder, 2009 Hub Developer Team
8  * @license             GNU GPL 3.0 or any newer version
9  * @link                http://www.ship-simu.org
10  *
11  * This program is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU General Public License as published by
13  * the Free Software Foundation, either version 3 of the License, or
14  * (at your option) any later version.
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19  * GNU General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License
22  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
23  */
24 class BaseListener extends BaseHubSystem {
25         // Exception code constants
26         const EXCEPTION_INVALID_SOCKET = 0xa00;
27
28         /**
29          * Used protocol (Default: invalid, which is indeed invalid...)
30          */
31         private $protcol = 'invalid';
32
33         /**
34          * Address (IP mostly) we shall listen on
35          */
36         private $listenAddress = '0.0.0.0'; // This is the default and listens on all interfaces
37
38         /**
39          * Port we shall listen on (or wait for incoming data)
40          */
41         private $listenPort = 0; // This port MUST be changed by your application
42
43         /**
44          * Wether we are in blocking or non-blocking mode (default: non-blocking
45          */
46         private $blockingMode = false;
47
48         /**
49          * Socket resource
50          */
51         private $socketResource = null;
52
53         /**
54          * Protected constructor
55          *
56          * @param       $className      Name of the class
57          * @return      void
58          */
59         protected function __construct ($className) {
60                 // Call parent constructor
61                 parent::__construct($className);
62         }
63
64         /**
65          * Setter for listen address
66          *
67          * @param       $listenAddress  The address this listener should listen on
68          * @return      void
69          */
70         protected final function setListenAddress ($listenAddress) {
71                 $this->listenAddress = (string) $listenAddress;
72         }
73
74         /**
75          * Getter for listen address
76          *
77          * @return      $listenAddress  The address this listener should listen on
78          */
79         public final function getListenAddress () {
80                 return $this->listenAddress;
81         }
82
83         /**
84          * Setter for listen port
85          *
86          * @param       $listenPort             The port this listener should listen on
87          * @return      void
88          */
89         protected final function setListenPort ($listenPort) {
90                 $this->listenPort = (int) $listenPort;
91         }
92
93         /**
94          * Getter for listen port
95          *
96          * @return      $listenPort             The port this listener should listen on
97          */
98         public final function getListenPort () {
99                 return $this->listenPort;
100         }
101
102         /**
103          * "Setter" to set listen address from configuration entry
104          *
105          * @param       $configEntry    The configuration entry holding our listen address
106          * @return      void
107          */
108         public final function setListenAddressByConfiguration ($configEntry) {
109                 $this->setListenAddress($this->getConfigInstance()->readConfig($configEntry));
110         }
111
112         /**
113          * "Setter" to set listen port from configuration entry
114          *
115          * @param       $configEntry    The configuration entry holding our listen port
116          * @return      void
117          */
118         public final function setListenPortByConfiguration ($configEntry) {
119                 $this->setListenPort($this->getConfigInstance()->readConfig($configEntry));
120         }
121
122         /**
123          * Setter for protocol
124          *
125          * @param       $protocol       Used protocol
126          * @return      void
127          */
128         protected final function setProtocol ($protocol) {
129                 $this->protocol = (string) $protocol;
130         }
131
132         /**
133          * Getter for protocol
134          *
135          * @return      $protocol       Used protocol
136          */
137         public final function getProtocol () {
138                 return $this->protocol;
139         }
140
141         /**
142          * Setter for blocking-mode
143          *
144          * @param       $blockingMode   Wether blocking-mode is disabled (default) or enabled
145          * @return      void
146          */
147         protected final function setBlockingMode ($blockingMode) {
148                 $this->blockingMode = (boolean) $blockingMode;
149         }
150
151         /**
152          * Checks wether blocking-mode is enabled or disabled
153          *
154          * @return      $blockingMode   Wether blocking mode is disabled or enabled
155          */
156         public final function isBlockingModeEnabled () {
157                 return $this->blockingMode;
158         }
159
160         /**
161          * Setter for socket resource
162          *
163          * @param       $socketResource         The socket resource we shall set
164          * @return      void
165          */
166         protected final function setSocketResource ($socketResource) {
167                 $this->setSocketResource = $setSocketResource;
168         }
169
170         /**
171          * Getter for socket resource
172          *
173          * @return      $socketResource         The socket resource we shall set
174          */
175         protected final function getSocketResource () {
176                 return $this->setSocketResource;
177         }
178 }
179
180 // [EOF]
181 ?>