LuaRules.hh
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef LUARULES_HH_
00018 # define LUARULES_HH_
00019
00020 # include "rules/PacketSender.hh"
00021 # include "rules/BaseRules.hh"
00022 # include "rules/BaseCRules.hh"
00023 # include "rules/BaseSRules.hh"
00024 # include "Lua.hh"
00025
00026 namespace lua {
00027
00028 class BaseRules : protected PacketSender
00029 {
00030 public:
00031 BaseRules(lua_State* l);
00032 int SetPacketSender(lua_State* l);
00033 int HandlePacket(lua_State* l);
00034
00035
00036 static const char className[];
00037 static Luna<BaseRules>::RegType methods[];
00038
00039 protected:
00040 void init(::BaseRules* r);
00041 lua_State* l_;
00042
00043 private:
00044 ::BaseRules* r_;
00045 virtual void sendPacket(const Packet& p) {}
00046 };
00047
00048 class BaseCRules : public BaseRules
00049 {
00050 public:
00051 BaseCRules(lua_State* l) : BaseRules(l) {}
00052 int GetCoachId(lua_State* l);
00053 int GetApi(lua_State* l);
00054
00055
00056 static const char className[];
00057 static Luna<BaseCRules>::RegType methods[];
00058
00059 protected:
00060 void init(::BaseCRules* r);
00061
00062 private:
00063 ::BaseCRules* r_;
00064 virtual void sendPacket(const Packet& p);
00065 };
00066
00067 class BaseSRules : public BaseRules
00068 {
00069 public:
00070 BaseSRules(lua_State* l);
00071 int ServerStartup(lua_State* l);
00072 int ServerProcess(lua_State* l);
00073
00074
00075 static const char className[];
00076 static Luna<BaseSRules>::RegType methods[];
00077
00078 protected:
00079 void init(::BaseSRules* r);
00080
00081 private:
00082 ::BaseSRules* r_;
00083 void sendPacket(const Packet& p);
00084 };
00085
00086 }
00087
00088 #endif // LUARULES_HH_