ソースを参照

Add TCP Server is_listening method

Fabio Alessandrelli 6 年 前
コミット
c13be79594
3 ファイル変更15 行追加0 行削除
  1. 7 0
      core/io/tcp_server.cpp
  2. 1 0
      core/io/tcp_server.h
  3. 7 0
      doc/classes/TCP_Server.xml

+ 7 - 0
core/io/tcp_server.cpp

@@ -34,6 +34,7 @@ void TCP_Server::_bind_methods() {
 
 	ClassDB::bind_method(D_METHOD("listen", "port", "bind_address"), &TCP_Server::listen, DEFVAL("*"));
 	ClassDB::bind_method(D_METHOD("is_connection_available"), &TCP_Server::is_connection_available);
+	ClassDB::bind_method(D_METHOD("is_listening"), &TCP_Server::is_listening);
 	ClassDB::bind_method(D_METHOD("take_connection"), &TCP_Server::take_connection);
 	ClassDB::bind_method(D_METHOD("stop"), &TCP_Server::stop);
 }
@@ -75,6 +76,12 @@ Error TCP_Server::listen(uint16_t p_port, const IP_Address &p_bind_address) {
 	return OK;
 }
 
+bool TCP_Server::is_listening() const {
+	ERR_FAIL_COND_V(!_sock.is_valid(), false);
+
+	return _sock->is_open();
+}
+
 bool TCP_Server::is_connection_available() const {
 
 	ERR_FAIL_COND_V(!_sock.is_valid(), false);

+ 1 - 0
core/io/tcp_server.h

@@ -50,6 +50,7 @@ protected:
 
 public:
 	Error listen(uint16_t p_port, const IP_Address &p_bind_address = IP_Address("*"));
+	bool is_listening() const;
 	bool is_connection_available() const;
 	Ref<StreamPeerTCP> take_connection();
 

+ 7 - 0
doc/classes/TCP_Server.xml

@@ -16,6 +16,13 @@
 				Returns [code]true[/code] if a connection is available for taking.
 			</description>
 		</method>
+		<method name="is_listening" qualifiers="const">
+			<return type="bool">
+			</return>
+			<description>
+				Returns [code]true[/code] if the server is currently listening for connections.
+			</description>
+		</method>
 		<method name="listen">
 			<return type="int" enum="Error">
 			</return>