Exemplo n.º 1
0
/** Assign integer to global variable.
 * @param name name of global variable to assign the value to
 * @param value value to assign
 */
void
LuaContext::set_integer(const char *name, lua_Integer value)
{
  MutexLocker lock(__lua_mutex);
  assert_unique_name(name, "integer");

  __integers[name] = value;

  lua_pushinteger(__L, value);
  lua_setglobal(__L, name);
}
Exemplo n.º 2
0
/** Assign boolean to global variable.
 * @param name name of global variable to assign the value to
 * @param value value to assign
 */
void
LuaContext::set_boolean(const char *name, bool value)
{
  MutexLocker lock(__lua_mutex);
  assert_unique_name(name, "boolean");

  __booleans[name] = value;

  lua_pushboolean(__L, value ? 1 : 0);
  lua_setglobal(__L, name);
}
Exemplo n.º 3
0
/** Assign string to global variable.
 * @param name name of global variable to assign the value to
 * @param value value to assign
 */
void
LuaContext::set_string(const char *name, const char *value)
{
  MutexLocker lock(__lua_mutex);
  assert_unique_name(name, "string");

  __strings[name] = value;

  lua_pushstring(__L, value);
  lua_setglobal(__L, name);
}
Exemplo n.º 4
0
/** Assign cfunction to global variable.
 * @param name name of global variable to assign the value to
 * @param f function
 */
void
LuaContext::set_cfunction(const char *name, lua_CFunction f)
{
  MutexLocker lock(__lua_mutex);
  assert_unique_name(name, "cfunction");

  __cfuncs[name] = f;

  lua_pushcfunction(__L, f);
  lua_setglobal(__L, name);
}
Exemplo n.º 5
0
/** Assign usertype to global variable.
 * @param name name of global variable to assign the value to
 * @param data usertype data
 * @param type_name type name of the data
 * @param name_space C++ namespace of type, prepended to type_name
 */
void
LuaContext::set_usertype(const char *name, void *data,
			  const char *type_name, const char *name_space)
{
  MutexLocker lock(__lua_mutex);

  std::string type_n = type_name;
  if ( name_space ) {
    type_n = std::string(name_space) + "::" + type_name;
  }

  assert_unique_name(name, "usertype");

  __usertypes[name] = std::make_pair(data, type_n);

  tolua_pushusertype(__L, data, type_n.c_str());
  lua_setglobal(__L, name);
}