3 Copyright 2007 Antoine Chavasse <a.chavasse@gmail.com>
5 This file is part of Fail.
7 Fail is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License version 3
9 as published by the Free Software Foundation.
11 Fail is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
19 #ifndef FAIL_LUA_ERROR_H
20 #define FAIL_LUA_ERROR_H
24 namespace fail
{ namespace LuaImpl
28 class FLSERVICES_LUA_EXPORT Base
32 virtual void ConvertToLua( lua_State
* pLS
) const = 0;
35 class FLSERVICES_LUA_EXPORT NotEnoughParams
: public Base
38 NotEnoughParams( int NumGot_
, int NumExpected_
) throw() :
40 m_NumExpected( NumExpected_
)
44 virtual void ConvertToLua( lua_State
* pLS
) const;
51 class FLSERVICES_LUA_EXPORT TypeMismatch
: public Base
54 TypeMismatch( int Got_
= LUA_TNONE
, int Expected_
= LUA_TNONE
) throw() :
56 m_Expected( Expected_
)
60 virtual void ConvertToLua( lua_State
* pLS
) const;
67 class FLSERVICES_LUA_EXPORT BadParameter
: public TypeMismatch
70 BadParameter( const TypeMismatch
& TM_
, int Index_
, const char* pName_
) throw() :
77 virtual void ConvertToLua( lua_State
* pLS
) const;
84 class FLSERVICES_LUA_EXPORT BadMethodCall
: public Base
87 virtual void ConvertToLua( lua_State
* pLS
) const;
90 class FLSERVICES_LUA_EXPORT NoOverloadFound
: public Base
93 virtual void ConvertToLua( lua_State
* pLS
) const;
96 class FLSERVICES_LUA_EXPORT NoSuchAttribute
: public Base
99 NoSuchAttribute( const char* pName_
) :
104 virtual void ConvertToLua( lua_State
* pLS
) const;
110 class FLSERVICES_LUA_EXPORT BadSetAttribute
: public TypeMismatch
113 BadSetAttribute( const TypeMismatch
& TM_
, const char* pName_
) throw() :
119 virtual void ConvertToLua( lua_State
* pLS
) const;