You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
1.2 KiB

#pragma once
#include <queue>
#include <string>
#include "dvlnet/abstract_net.h"
namespace devilution {
namespace net {
class loopback : public abstract_net {
private:
std::queue<buffer_t> message_queue;
buffer_t message_last;
int plr_single;
public:
loopback()
{
plr_single = 0;
};
virtual int create(std::string addrstr);
virtual int join(std::string addrstr);
virtual bool SNetReceiveMessage(int *sender, void **data, uint32_t *size);
virtual bool SNetSendMessage(int dest, void *data, unsigned int size);
virtual bool SNetReceiveTurns(char **data, size_t *size, uint32_t *status);
virtual bool SNetSendTurn(char *data, unsigned int size);
virtual void SNetGetProviderCaps(struct _SNETCAPS *caps);
virtual bool SNetRegisterEventHandler(event_type evtype, SEVTHANDLER func);
virtual bool SNetUnregisterEventHandler(event_type evtype);
virtual bool SNetLeaveGame(int type);
virtual bool SNetDropPlayer(int playerid, uint32_t flags);
virtual bool SNetGetOwnerTurnsWaiting(uint32_t *turns);
virtual bool SNetGetTurnsInTransit(uint32_t *turns);
virtual void setup_gameinfo(buffer_t info);
virtual std::string make_default_gamename();
};
} // namespace net
} // namespace devilution