consolodate NetworkEvents
This commit is contained in:
@@ -1,55 +0,0 @@
|
||||
#include "Archimedes.h"
|
||||
|
||||
#include <steam/steamnetworkingsockets.h>
|
||||
#include <steam/isteamnetworkingutils.h>
|
||||
|
||||
|
||||
|
||||
namespace CMEvent {
|
||||
class DataRecievedEvent : public Archimedes::Event {
|
||||
|
||||
public:
|
||||
|
||||
DataRecievedEvent() : msg(nullptr) {}
|
||||
|
||||
DataRecievedEvent(ISteamNetworkingMessage* m) : msg(m) {}
|
||||
|
||||
~DataRecievedEvent() {
|
||||
if(msg)
|
||||
msg->Release();
|
||||
}
|
||||
|
||||
operator std::string() const override { return "CMEvent::DataRecievedEvent"; }
|
||||
|
||||
ISteamNetworkingMessage* msg;
|
||||
|
||||
};
|
||||
|
||||
class DataSentEvent : public Archimedes::Event {
|
||||
|
||||
public:
|
||||
|
||||
DataSentEvent() : msg(nullptr) {}
|
||||
|
||||
DataSentEvent(ISteamNetworkingMessage* m) : msg(m) {}
|
||||
|
||||
operator std::string() const override { return "CMEvent::DataSentEvent"; }
|
||||
|
||||
ISteamNetworkingMessage* msg;
|
||||
};
|
||||
|
||||
class ConnectionStatusChangedEvent : public Archimedes::Event {
|
||||
|
||||
public:
|
||||
|
||||
ConnectionStatusChangedEvent() : info(nullptr) {}
|
||||
|
||||
ConnectionStatusChangedEvent(SteamNetConnectionStatusChangedCallback_t* i) : info(i) {}
|
||||
|
||||
operator std::string() const override { return "CMEvent::ConnectionStatusChangedEvent"; }
|
||||
|
||||
SteamNetConnectionStatusChangedCallback_t* info;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -6,9 +6,9 @@ ClientModule::ClientModule(Archimedes::App* a, void* h) : Archimedes::Module(a,
|
||||
|
||||
ClientModule::~ClientModule() {
|
||||
if(app) {
|
||||
app->unregisterEvent(CMEvent::DataRecievedEvent());
|
||||
app->unregisterEvent(CMEvent::DataSentEvent());
|
||||
app->unregisterEvent(CMEvent::ConnectionStatusChangedEvent());
|
||||
app->unregisterEvent(Archimedes::DataRecievedEvent());
|
||||
app->unregisterEvent(Archimedes::DataSentEvent());
|
||||
app->unregisterEvent(Archimedes::ConnectionStatusChangedEvent());
|
||||
|
||||
GameNetworkingSockets_Kill();
|
||||
}
|
||||
@@ -16,9 +16,9 @@ ClientModule::~ClientModule() {
|
||||
|
||||
void ClientModule::onLoad() {
|
||||
|
||||
app->registerEvent(CMEvent::DataSentEvent());
|
||||
app->registerEvent(CMEvent::DataRecievedEvent());
|
||||
app->registerEvent(CMEvent::ConnectionStatusChangedEvent());
|
||||
app->registerEvent(Archimedes::DataSentEvent());
|
||||
app->registerEvent(Archimedes::DataRecievedEvent());
|
||||
app->registerEvent(Archimedes::ConnectionStatusChangedEvent());
|
||||
|
||||
SteamDatagramErrMsg errMsg;
|
||||
if ( !GameNetworkingSockets_Init( nullptr, errMsg ) ) {
|
||||
@@ -62,9 +62,9 @@ bool ClientModule::onEvent(const Archimedes::Event& event) {
|
||||
|
||||
unsigned int type = app->getEventType(event);
|
||||
|
||||
if(eventsToHandle & CMEventEnum::ConnectionStatusChanged && type == app->getEventType(CMEvent::ConnectionStatusChangedEvent())) {
|
||||
if(eventsToHandle & CMEventEnum::ConnectionStatusChanged && type == app->getEventType(Archimedes::ConnectionStatusChangedEvent())) {
|
||||
|
||||
CMEvent::ConnectionStatusChangedEvent& e = (CMEvent::ConnectionStatusChangedEvent&) event;
|
||||
Archimedes::ConnectionStatusChangedEvent& e = (Archimedes::ConnectionStatusChangedEvent&) event;
|
||||
|
||||
switch(e.info->m_info.m_eState) {
|
||||
|
||||
@@ -114,9 +114,9 @@ bool ClientModule::onEvent(const Archimedes::Event& event) {
|
||||
}
|
||||
return true;
|
||||
|
||||
} else if(eventsToHandle & CMEventEnum::DataRecieved && type == app->getEventType(CMEvent::DataRecievedEvent())) {
|
||||
} else if(eventsToHandle & CMEventEnum::DataRecieved && type == app->getEventType(Archimedes::DataRecievedEvent())) {
|
||||
return true;
|
||||
} else if(eventsToHandle & CMEventEnum::DataSent && type == app->getEventType(CMEvent::DataSentEvent())) {
|
||||
} else if(eventsToHandle & CMEventEnum::DataSent && type == app->getEventType(Archimedes::DataSentEvent())) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -135,6 +135,6 @@ void ClientModule::pollIncomingData() {
|
||||
assert( numMsgs == 1 && pIncomingMsg );
|
||||
assert( pIncomingMsg->m_conn == connection );
|
||||
|
||||
app->emitEvent(new CMEvent::DataRecievedEvent(pIncomingMsg));
|
||||
app->emitEvent(new Archimedes::DataRecievedEvent(pIncomingMsg));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include <steam/steamnetworkingsockets.h>
|
||||
#include <steam/isteamnetworkingutils.h>
|
||||
|
||||
#include "ClientEvents.h"
|
||||
#include "utils/Events/NetworkEvents.h"
|
||||
|
||||
class ClientModule : public Archimedes::Module {
|
||||
|
||||
@@ -25,7 +25,7 @@ class ClientModule : public Archimedes::Module {
|
||||
|
||||
void sendReliable(const void* data, uint32 byteCount) {
|
||||
interface->SendMessageToConnection(connection, data, byteCount, k_nSteamNetworkingSend_Reliable, nullptr);
|
||||
|
||||
app->emitEvent(new Archimedes::DataSentEvent(data, byteCount));
|
||||
}
|
||||
|
||||
bool isRunning() const { return running; }
|
||||
|
||||
Reference in New Issue
Block a user