Allow ClassDB to create a Object without postinitialization for GDExtension.
This commit is contained in:
@ -68,7 +68,7 @@ private:
|
||||
String selected_protocol;
|
||||
String requested_url;
|
||||
|
||||
static WebSocketPeer *_create() { return memnew(EMWSPeer); }
|
||||
static WebSocketPeer *_create(bool p_notify_postinitialize) { return static_cast<WebSocketPeer *>(ClassDB::creator<EMWSPeer>(p_notify_postinitialize)); }
|
||||
static void _esws_on_connect(void *obj, char *proto);
|
||||
static void _esws_on_message(void *obj, const uint8_t *p_data, int p_data_size, int p_is_string);
|
||||
static void _esws_on_error(void *obj);
|
||||
|
||||
@ -30,7 +30,7 @@
|
||||
|
||||
#include "websocket_peer.h"
|
||||
|
||||
WebSocketPeer *(*WebSocketPeer::_create)() = nullptr;
|
||||
WebSocketPeer *(*WebSocketPeer::_create)(bool p_notify_postinitialize) = nullptr;
|
||||
|
||||
WebSocketPeer::WebSocketPeer() {
|
||||
}
|
||||
|
||||
@ -59,7 +59,7 @@ private:
|
||||
virtual Error _send_bind(const PackedByteArray &p_data, WriteMode p_mode = WRITE_MODE_BINARY);
|
||||
|
||||
protected:
|
||||
static WebSocketPeer *(*_create)();
|
||||
static WebSocketPeer *(*_create)(bool p_notify_postinitialize);
|
||||
|
||||
static void _bind_methods();
|
||||
|
||||
@ -74,11 +74,11 @@ protected:
|
||||
int max_queued_packets = 2048;
|
||||
|
||||
public:
|
||||
static WebSocketPeer *create() {
|
||||
static WebSocketPeer *create(bool p_notify_postinitialize = true) {
|
||||
if (!_create) {
|
||||
return nullptr;
|
||||
}
|
||||
return _create();
|
||||
return _create(p_notify_postinitialize);
|
||||
}
|
||||
|
||||
virtual Error connect_to_url(const String &p_url, Ref<TLSOptions> p_options = Ref<TLSOptions>()) = 0;
|
||||
|
||||
@ -49,7 +49,7 @@
|
||||
class WSLPeer : public WebSocketPeer {
|
||||
private:
|
||||
static CryptoCore::RandomGenerator *_static_rng;
|
||||
static WebSocketPeer *_create() { return memnew(WSLPeer); }
|
||||
static WebSocketPeer *_create(bool p_notify_postinitialize) { return static_cast<WebSocketPeer *>(ClassDB::creator<WSLPeer>(p_notify_postinitialize)); }
|
||||
|
||||
// Callbacks.
|
||||
static ssize_t _wsl_recv_callback(wslay_event_context_ptr ctx, uint8_t *data, size_t len, int flags, void *user_data);
|
||||
|
||||
Reference in New Issue
Block a user