Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Sep 17, 2006, 2:43:41 PM (18 years ago)
Author:
bensch
Message:

changed some functions to be inlined, (only runtime-specifics (important for LUA)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/new_class_id/src/lib/util/executor/executor_lua_state.cc

    r9748 r9752  
    2222std::string temp[7];
    2323
    24 /**
    25  * @brief Converts a lua_State into any type.
    26  * @param state the State to get the value from.
    27  * @param index the position inside of the lua_State to get the value from.
    28  * @returns The value if found.
    29  */
    30 template<typename type> type fromLua(lua_State* state, int index) { type *obj = Lunar<type>::check(state, 1); lua_remove(state, 1); return obj;};
    31 /**
    32  * @brief Converts a lua_State into any type.
    33  * @param state the State to get the value from.
    34  * @param index the position inside of the lua_State to get the value from.
    35  * @returns The value if found.
    36  */
    37 template<> bool fromLua<bool>(lua_State* state, int index) { return lua_toboolean(state, index); };
    38 /**
    39  * @brief Converts a lua_State into any type.
    40  * @param state the State to get the value from.
    41  * @param index the position inside of the lua_State to get the value from.
    42  * @returns The value if found.
    43  */
    44 template<> int fromLua<int>(lua_State* state, int index) { return (int)lua_tonumber(state, index); };
    45 /**
    46  * @brief Converts a lua_State into any type.
    47  * @param state the State to get the value from.
    48  * @param index the position inside of the lua_State to get the value from.
    49  * @returns The value if found.
    50  */
    51 template<> unsigned int fromLua<unsigned int>(lua_State* state, int index) { return (unsigned int)lua_tonumber(state, index); };
    52 /**
    53  * @brief Converts a lua_State into any type.
    54  * @param state the State to get the value from.
    55  * @param index the position inside of the lua_State to get the value from.
    56  * @returns The value if found.
    57  */
    58 template<> float fromLua<float>(lua_State* state, int index) { return (float)lua_tonumber(state, index); };
    59 /**
    60  * @brief Converts a lua_State into any type.
    61  * @param state the State to get the value from.
    62  * @param index the position inside of the lua_State to get the value from.
    63  * @returns The value if found.
    64  */
    65 template<> char fromLua<char>(lua_State* state, int index) { return (char)lua_tonumber(state, index); };
    66 /**
    67  * @brief Converts a lua_State into any type.
    68  * @param state the State to get the value from.
    69  * @param index the position inside of the lua_State to get the value from.
    70  * @returns The value if found.
    71  */
    72 template<> const std::string& fromLua<const std::string&>(lua_State* state, int index) { temp[index] = lua_tostring(state, index); return temp[index]; };
    7324
     25template<typename type> inline type fromLua(lua_State* state, int index) { type *obj = Lunar<type>::check(state, 1); lua_remove(state, 1); return obj; };
    7426
    75 
    76 
    77 /**
    78  * @brief writes a value into a lua_State.
    79  * @param state the state to write into.
    80  * @param value the Value of type to write into the State.
    81  */
    8227template<typename type> void toLua(lua_State* state, type value) { Lunar<type>::push(state, value, false); };
    83 /**
    84  * @brief writes a value into a lua_State.
    85  * @param state the state to write into.
    86  * @param value the Value of type to write into the State.
    87  */
    88 template<> void toLua<bool>(lua_State* state, bool value) { lua_pushboolean(state, (int) value); };
    89 /**
    90  * @brief writes a value into a lua_State.
    91  * @param state the state to write into.
    92  * @param value the Value of type to write into the State.
    93  */
    94 template<> void toLua<int>(lua_State* state, int value)  { lua_pushnumber(state, (lua_Number) value); };
    95 /**
    96  * @brief writes a value into a lua_State.
    97  * @param state the state to write into.
    98  * @param value the Value of type to write into the State.
    99  */
    100 template<> void toLua<unsigned int>(lua_State* state, unsigned int value){ lua_pushnumber(state, (lua_Number) value); };
    101 /**
    102  * @brief writes a value into a lua_State.
    103  * @param state the state to write into.
    104  * @param value the Value of type to write into the State.
    105  */
    106 template<> void toLua<float>(lua_State* state, float value) { lua_pushnumber(state, (lua_Number) value); };
    107 /**
    108  * @brief writes a value into a lua_State.
    109  * @param state the state to write into.
    110  * @param value the Value of type to write into the State.
    111  */
    112 template<> void toLua<char>(lua_State* state, char value) { lua_pushnumber(state, (lua_Number) value); };
    113 /**
    114  * @brief writes a value into a lua_State.
    115  * @param state the state to write into.
    116  * @param value the Value of type to write into the State.
    117  */
    118 template<> void toLua<const std::string&>(lua_State* state, const std::string& value) { lua_pushstring (state, value.c_str()); }
     28/** @see template<typename type> inline type fromLua(lua_State* state, int index) */
     29template<> inline const std::string& fromLua<const std::string&>(lua_State* state, int index) { temp[index] = lua_tostring(state, index); return temp[index]; };
Note: See TracChangeset for help on using the changeset viewer.