Files
Archimedes/include/utils/Events/NetworkEvents.h
2025-05-02 00:48:29 -05:00

60 lines
1.3 KiB
C++

#ifndef NETWORKEVENTS_H
#define NETWORKEVENTS_H
#include "Event.h"
#include <steam/steamnetworkingsockets.h>
#include <steam/isteamnetworkingutils.h>
namespace Archimedes {
class DataRecievedEvent : public Event {
public:
DataRecievedEvent() : msg(nullptr) {}
DataRecievedEvent(ISteamNetworkingMessage* m) : msg(m) {}
~DataRecievedEvent() {
if(msg)
msg->Release();
}
operator std::string() const override { return "DataRecievedEvent"; }
ISteamNetworkingMessage* msg;
};
class DataSentEvent : public Event {
public:
DataSentEvent() : msg(nullptr) {}
DataSentEvent(const void* m, uint32 l) : msg(m), length(l) {}
operator std::string() const override { return "DataSentEvent"; }
const void* msg;
uint32 length;
};
class ConnectionStatusChangedEvent : public Event {
public:
ConnectionStatusChangedEvent() : info(nullptr) {}
ConnectionStatusChangedEvent(SteamNetConnectionStatusChangedCallback_t* i) : info(i) {}
operator std::string() const override { return "ConnectionStatusChangedEvent"; }
SteamNetConnectionStatusChangedCallback_t* info;
};
}
#endif