Replace observeExistence with std::weak_ptr of Request
This commit is contained in:
parent
13975cc5db
commit
89d35f09fa
@ -117,7 +117,7 @@ ClientLobby::~ClientLobby()
|
||||
NetworkConfig::get()->setServerDetails(request,
|
||||
"clear-user-joined-server");
|
||||
request->queue();
|
||||
ConnectToServer::m_previous_unjoin = request->observeExistence();
|
||||
ConnectToServer::m_previous_unjoin = request;
|
||||
}
|
||||
} // ClientLobby
|
||||
|
||||
|
@ -47,7 +47,7 @@
|
||||
|
||||
#include <algorithm>
|
||||
// ============================================================================
|
||||
std::weak_ptr<bool> ConnectToServer::m_previous_unjoin;
|
||||
std::weak_ptr<Online::Request> ConnectToServer::m_previous_unjoin;
|
||||
TransportAddress ConnectToServer::m_server_address;
|
||||
int ConnectToServer::m_retry_count = 0;
|
||||
bool ConnectToServer::m_done_intecept = false;
|
||||
@ -78,7 +78,7 @@ ConnectToServer::~ConnectToServer()
|
||||
NetworkConfig::get()->setServerDetails(request,
|
||||
"clear-user-joined-server");
|
||||
request->queue();
|
||||
m_previous_unjoin = request->observeExistence();
|
||||
m_previous_unjoin = request;
|
||||
}
|
||||
} // ~ConnectToServer
|
||||
|
||||
|
@ -28,6 +28,11 @@
|
||||
|
||||
#include "irrString.h"
|
||||
|
||||
namespace Online
|
||||
{
|
||||
class Request;
|
||||
}
|
||||
|
||||
class Server;
|
||||
|
||||
class ConnectToServer : public Protocol
|
||||
@ -56,7 +61,7 @@ private:
|
||||
static int m_retry_count;
|
||||
static bool m_done_intecept;
|
||||
public:
|
||||
static std::weak_ptr<bool> m_previous_unjoin;
|
||||
static std::weak_ptr<Online::Request> m_previous_unjoin;
|
||||
ConnectToServer(std::shared_ptr<Server> server);
|
||||
virtual ~ConnectToServer();
|
||||
virtual void setup() OVERRIDE;
|
||||
|
@ -2106,7 +2106,7 @@ bool ServerLobby::registerServer(bool now)
|
||||
else
|
||||
{
|
||||
request->queue();
|
||||
m_server_recovering = request->observeExistence();
|
||||
m_server_recovering = request;
|
||||
}
|
||||
return true;
|
||||
} // registerServer
|
||||
@ -2119,7 +2119,7 @@ bool ServerLobby::registerServer(bool now)
|
||||
void ServerLobby::unregisterServer(bool now)
|
||||
{
|
||||
auto request = std::make_shared<Online::XMLRequest>();
|
||||
m_server_unregistered = request->observeExistence();
|
||||
m_server_unregistered = request;
|
||||
NetworkConfig::get()->setServerDetails(request, "stop");
|
||||
|
||||
request->addParameter("address", m_server_address.getIP());
|
||||
|
@ -43,6 +43,11 @@ class NetworkString;
|
||||
class NetworkPlayerProfile;
|
||||
class STKPeer;
|
||||
|
||||
namespace Online
|
||||
{
|
||||
class Request;
|
||||
}
|
||||
|
||||
class ServerLobby : public LobbyProtocol
|
||||
{
|
||||
public:
|
||||
@ -143,9 +148,9 @@ private:
|
||||
std::owner_less<std::weak_ptr<STKPeer> > > m_peers_ready;
|
||||
|
||||
/** It indicates if this server is unregistered with the stk server. */
|
||||
std::weak_ptr<bool> m_server_unregistered;
|
||||
std::weak_ptr<Online::Request> m_server_unregistered;
|
||||
|
||||
std::weak_ptr<bool> m_server_recovering;
|
||||
std::weak_ptr<Online::Request> m_server_recovering;
|
||||
|
||||
/** Timeout counter for various state. */
|
||||
std::atomic<int64_t> m_timeout;
|
||||
|
@ -45,7 +45,6 @@ namespace Online
|
||||
m_info = "";
|
||||
m_success = false;
|
||||
m_xml_data = NULL;
|
||||
m_exists = std::make_shared<bool>(true);
|
||||
} // XMLRequest
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
|
@ -28,7 +28,6 @@
|
||||
#endif
|
||||
#include <curl/curl.h>
|
||||
#include <assert.h>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
|
||||
class XMLNode;
|
||||
@ -43,12 +42,11 @@ namespace Online
|
||||
/** On a successful download contains the converted XML tree. */
|
||||
XMLNode *m_xml_data;
|
||||
|
||||
std::shared_ptr<bool> m_exists;
|
||||
protected:
|
||||
|
||||
/** Additional info contained the downloaded data (or an error
|
||||
* message if a problem occurred). */
|
||||
irr::core::stringw m_info;
|
||||
/** Additional info contained the downloaded data (or an error
|
||||
* message if a problem occurred). */
|
||||
irr::core::stringw m_info;
|
||||
|
||||
/** True if the request was successful executed on the server. */
|
||||
bool m_success;
|
||||
@ -91,9 +89,6 @@ namespace Online
|
||||
assert(hasBeenExecuted());
|
||||
return m_success;
|
||||
} // isSuccess
|
||||
// --------------------------------------------------------------------
|
||||
std::weak_ptr<bool> observeExistence() const { return m_exists; }
|
||||
|
||||
}; // class XMLRequest
|
||||
} //namespace Online
|
||||
#endif // HEADER_XML_REQUEST_HPP
|
||||
|
Loading…
x
Reference in New Issue
Block a user