File: LuaLobby.h

package info (click to toggle)
spring 88.0%2Bdfsg1-1.1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 41,524 kB
  • sloc: cpp: 343,114; ansic: 38,414; python: 12,257; java: 12,203; awk: 5,748; sh: 1,204; xml: 997; perl: 405; objc: 192; makefile: 181; php: 134; sed: 2
file content (123 lines) | stat: -rwxr-xr-x 4,231 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
/* This file is part of the Spring engine (GPL v2 or later), see LICENSE.html */

#ifndef LUALOBBY_H
#define LUALOBBY_H

#include "lib/lobby/Connection.h"

struct lua_State;
struct LuaHashString;


class LuaLobby : public Connection
{
	LuaLobby(lua_State* _L_Sim);
	~LuaLobby();

public:
	static bool PushEntries(lua_State* L);
	static bool CreateMetatable(lua_State* L);

private: // metatable
	static const void* metatable;

	static int meta_gc(lua_State* L);
	static int meta_index(lua_State* L);
	static int meta_newindex(lua_State* L);

private:
	lua_State* L_Sim;
	lua_State* L_Draw;
	int luaRef; // saves userdata
	int luaRefEvents; // saves table with callin lua functions

	bool PushCallIn(lua_State *L, const LuaHashString& name);

private:
	static int CreateLobby(lua_State* L);

private:
	//! we are overloading them, so we need to redefine them to make them usable (c++ disallows overloading with class-inheritance)
	using Connection::Poll;
	using Connection::Connect;
	using Connection::Disconnect;
	using Connection::Register;
	using Connection::Login;
	using Connection::ConfirmAggreement;
	using Connection::Rename;
	using Connection::ChangePass;
	using Connection::StatusUpdate;
	using Connection::Channels;
	using Connection::RequestMutelist;
	using Connection::JoinChannel;
	using Connection::LeaveChannel;
	using Connection::KickChannelMember;
	using Connection::ChangeTopic;
	using Connection::Say;
	using Connection::SayEx;
	using Connection::SayPrivate;

private: // call-outs
	static int Poll(lua_State *L);
	static int Connect(lua_State *L);
	static int Disconnect(lua_State *L);
	static int Register(lua_State *L);
	static int Login(lua_State *L);
	static int ConfirmAggreement(lua_State *L);
	static int Rename(lua_State *L);
	static int ChangePass(lua_State *L);
	static int StatusUpdate(lua_State *L);
	static int Channels(lua_State *L);
	static int RequestMutelist(lua_State *L);
	static int JoinChannel(lua_State *L);
	static int LeaveChannel(lua_State *L);
	static int KickChannelMember(lua_State *L);
	static int ChangeTopic(lua_State *L);
	static int Say(lua_State *L);
	static int SayEx(lua_State *L);
	static int SayPrivate(lua_State *L);

private: // call-ins
	virtual void DoneConnecting(bool success, const std::string& err);
	virtual void ServerGreeting(const std::string& serverVer, const std::string& springVer, int udpport, int mode);

	virtual void RegisterDenied(const std::string& reason);
	virtual void RegisterAccepted();

	virtual void LoginDenied(const std::string& reason);
	virtual void LoginEnd();
	virtual void Aggreement(const std::string& text);

	virtual void Motd(const std::string& text);
	virtual void ServerMessage(const std::string& text);
	virtual void ServerMessageBox(const std::string& text, const std::string& url);

	virtual void AddUser(const std::string& name, const std::string& country, int cpu);
	virtual void RemoveUser(const std::string& name);
	virtual void UserStatusUpdate(const std::string& name, ClientStatus status);

	virtual void ChannelInfo(const std::string& channel, unsigned users);
	virtual void ChannelInfoEnd();

	virtual void Mutelist(const std::string& channel, std::list<std::string> list);

	virtual void Joined(const std::string& channame);
	virtual void ChannelMember(const std::string& channame, const std::string& name, bool joined);
	virtual void ChannelMemberLeft(const std::string& channame, const std::string& name, const std::string& reason);
	virtual void JoinFailed(const std::string& channame, const std::string& reason);

	virtual void ChannelMemberKicked(const std::string& channame, const std::string& user, const std::string& reason);

	virtual void ChannelTopic(const std::string& channame, const std::string& author, long unsigned time, const std::string& topic);
	virtual void ChannelMessage(const std::string& channel, const std::string& text);

	virtual void Said(const std::string& channel, const std::string& user, const std::string& text);
	virtual void SaidEx(const std::string& channel, const std::string& user, const std::string& text);
	virtual void SaidPrivate(const std::string& user, const std::string& text);

	virtual void Disconnected();
	virtual void NetworkError(const std::string& msg);
};


#endif