hlswmaster-ng/mod_gamespy1.h

53 lines
943 B
C
Raw Normal View History

2006-02-05 16:44:38 +01:00
#ifndef _MODGAMESPY1_H_
#define _MODGAMESPY1_H_
#include "module.h"
2006-04-16 21:02:41 +02:00
#include "multisock.h"
#include "netpkt.h"
#include "gamelist.h"
#include "list.h"
#include "timerservice.h"
2006-02-05 16:44:38 +01:00
class ModGameSpy1 : public Module {
public:
2006-03-06 20:13:26 +01:00
ModGameSpy1();
~ModGameSpy1();
2006-03-05 02:28:19 +01:00
2006-02-05 16:44:38 +01:00
void scan(MultiSock* msock);
2006-02-20 21:58:59 +01:00
int parse(NetPkt* pkt, GameList* glist);
2006-03-05 02:28:19 +01:00
2006-03-07 20:30:11 +01:00
const char* getName() { return "GameSpy 1 protocol"; }
void gc();
2006-03-06 20:13:26 +01:00
private:
2006-04-15 19:55:07 +02:00
class MultiPart : private ListEntry<MultiPart> {
2006-03-06 20:13:26 +01:00
public:
MultiPart(NetPkt* pkt, int queryid, int subid);
2006-04-15 19:55:07 +02:00
~MultiPart();
2006-03-06 20:13:26 +01:00
NetPkt* pkt;
int queryid;
int subid;
long timeout;
};
2006-03-07 20:30:11 +01:00
class GcEvent : public Event {
public:
GcEvent(ModGameSpy1& mgs1) : mgs1(mgs1) {}
~GcEvent() {}
void execute() { mgs1.gc(); }
private:
ModGameSpy1& mgs1;
};
2006-03-06 20:13:26 +01:00
NetPkt* merge(NetPkt* pkt, int queryid, int subid);
int parse_real(NetPkt* pkt, GameList* glist, int gameid);
2006-04-15 19:55:07 +02:00
LockedList<MultiPart> list;
2006-02-05 16:44:38 +01:00
};
#endif // _MODGAMESPY1_H_