aot_top_get_userdata Subroutine

private subroutine aot_top_get_userdata(val, ErrCode, L, default)

Uses

  • proc~~aot_top_get_userdata~~UsesGraph proc~aot_top_get_userdata aot_top_get_userdata iso_c_binding iso_c_binding proc~aot_top_get_userdata->iso_c_binding

Interpret topmost entry on Lua stack as userdata.

Arguments

Type IntentOptional AttributesName
type(c_ptr), intent(out) :: val

Value of the Variable in the script

integer, intent(out) :: ErrCode

Error code to indicate what kind of problem might have occured.

type(flu_State) :: L

Handle to the Lua script

type(c_ptr), intent(in), optional :: default

Some default value, that should be used, if the variable is not set in the Lua script.


Calls

proc~~aot_top_get_userdata~~CallsGraph proc~aot_top_get_userdata aot_top_get_userdata proc~flu_islightuserdata flu_islightuserdata proc~aot_top_get_userdata->proc~flu_islightuserdata proc~flu_touserdata flu_touserdata proc~aot_top_get_userdata->proc~flu_touserdata proc~flu_isnoneornil flu_isNoneOrNil proc~aot_top_get_userdata->proc~flu_isnoneornil proc~flu_pop flu_pop proc~aot_top_get_userdata->proc~flu_pop interface~lua_type lua_type proc~flu_islightuserdata->interface~lua_type interface~lua_touserdata lua_touserdata proc~flu_touserdata->interface~lua_touserdata proc~flu_isnoneornil->interface~lua_type interface~lua_settop lua_settop proc~flu_pop->interface~lua_settop

Called by

proc~~aot_top_get_userdata~~CalledByGraph proc~aot_top_get_userdata aot_top_get_userdata interface~aot_top_get_val aot_top_get_val interface~aot_top_get_val->proc~aot_top_get_userdata proc~get_table_real get_table_real proc~get_table_real->interface~aot_top_get_val proc~get_table_quadruple get_table_quadruple proc~get_table_quadruple->interface~aot_top_get_val proc~get_top_extdouble_vvect get_top_extdouble_vvect proc~get_top_extdouble_vvect->interface~aot_top_get_val proc~get_table_integer get_table_integer proc~get_table_integer->interface~aot_top_get_val proc~get_table_extdouble get_table_extdouble proc~get_table_extdouble->interface~aot_top_get_val proc~get_table_string get_table_string proc~get_table_string->interface~aot_top_get_val proc~get_top_extdouble_v get_top_extdouble_v proc~get_top_extdouble_v->interface~aot_top_get_val proc~get_table_logical get_table_logical proc~get_table_logical->interface~aot_top_get_val proc~get_table_extdouble_v get_table_extdouble_v proc~get_table_extdouble_v->interface~aot_top_get_val proc~get_table_quadruple_v get_table_quadruple_v proc~get_table_quadruple_v->interface~aot_top_get_val proc~get_table_quadruple_vvect get_table_quadruple_vvect proc~get_table_quadruple_vvect->interface~aot_top_get_val proc~get_table_long get_table_long proc~get_table_long->interface~aot_top_get_val proc~get_top_quadruple_v get_top_quadruple_v proc~get_top_quadruple_v->interface~aot_top_get_val proc~get_table_double get_table_double proc~get_table_double->interface~aot_top_get_val proc~get_top_quadruple_vvect get_top_quadruple_vvect proc~get_top_quadruple_vvect->interface~aot_top_get_val proc~get_table_extdouble_vvect get_table_extdouble_vvect proc~get_table_extdouble_vvect->interface~aot_top_get_val proc~get_table_userdata get_table_userdata proc~get_table_userdata->interface~aot_top_get_val interface~aot_get_val~6 aot_get_val interface~aot_get_val~6->proc~get_table_extdouble_v interface~aot_table_get_val~8 aot_table_get_val interface~aot_table_get_val~8->proc~get_table_quadruple_vvect interface~aot_table_get_val~7 aot_table_get_val interface~aot_table_get_val~7->proc~get_table_extdouble_v interface~aot_get_val~7 aot_get_val interface~aot_get_val~7->proc~get_table_quadruple_vvect interface~aot_get_val~9 aot_get_val interface~aot_get_val~9->proc~get_table_quadruple interface~aot_get_val~8 aot_get_val interface~aot_get_val~8->proc~get_table_quadruple_v interface~aot_get_val~4 aot_get_val interface~aot_get_val~4->proc~get_table_extdouble interface~aot_top_get_val~7 aot_top_get_val interface~aot_top_get_val~7->proc~get_top_quadruple_vvect interface~aot_table_get_val~6 aot_table_get_val interface~aot_table_get_val~6->proc~get_table_extdouble_vvect interface~aot_get_val~5 aot_get_val interface~aot_get_val~5->proc~get_table_extdouble_vvect interface~aot_get_val~3 aot_get_val interface~aot_get_val~3->proc~get_table_real interface~aot_get_val~3->proc~get_table_integer interface~aot_get_val~3->proc~get_table_string interface~aot_get_val~3->proc~get_table_logical interface~aot_get_val~3->proc~get_table_long interface~aot_get_val~3->proc~get_table_double interface~aot_get_val~3->proc~get_table_userdata interface~aot_table_get_val~9 aot_table_get_val interface~aot_table_get_val~9->proc~get_table_quadruple_v interface~aot_top_get_val~6 aot_top_get_val interface~aot_top_get_val~6->proc~get_top_extdouble_vvect interface~aot_table_get_val~3 aot_table_get_val interface~aot_table_get_val~3->proc~get_table_quadruple interface~aot_top_get_val~2 aot_top_get_val interface~aot_top_get_val~2->proc~get_top_extdouble_v interface~aot_table_get_val aot_table_get_val interface~aot_table_get_val->proc~get_table_real interface~aot_table_get_val->proc~get_table_integer interface~aot_table_get_val->proc~get_table_string interface~aot_table_get_val->proc~get_table_logical interface~aot_table_get_val->proc~get_table_long interface~aot_table_get_val->proc~get_table_double interface~aot_table_get_val->proc~get_table_userdata interface~aot_top_get_val~8 aot_top_get_val interface~aot_top_get_val~8->proc~get_top_quadruple_v interface~aot_table_get_val~2 aot_table_get_val interface~aot_table_get_val~2->proc~get_table_extdouble proc~get_table_real_vvect get_table_real_vvect proc~get_table_real_vvect->interface~aot_top_get_val~2 proc~get_table_logical_vvect get_table_logical_vvect proc~get_table_logical_vvect->interface~aot_top_get_val~2 proc~get_table_logical_v get_table_logical_v proc~get_table_logical_v->interface~aot_top_get_val~2 proc~get_table_double_vvect get_table_double_vvect proc~get_table_double_vvect->interface~aot_top_get_val~2 proc~get_top_integer_vvect get_top_integer_vvect proc~get_top_integer_vvect->interface~aot_top_get_val~2 proc~get_top_long_vvect get_top_long_vvect proc~get_top_long_vvect->interface~aot_top_get_val~2 proc~get_top_string_vvect get_top_string_vvect proc~get_top_string_vvect->interface~aot_top_get_val~2 proc~get_top_double_v get_top_double_v proc~get_top_double_v->interface~aot_top_get_val~2 proc~get_table_long_vvect get_table_long_vvect proc~get_table_long_vvect->interface~aot_top_get_val~2 proc~get_table_integer_v get_table_integer_v proc~get_table_integer_v->interface~aot_top_get_val~2 proc~get_top_real_v get_top_real_v proc~get_top_real_v->interface~aot_top_get_val~2 proc~get_top_string_v get_top_string_v proc~get_top_string_v->interface~aot_top_get_val~2 proc~get_table_string_vvect get_table_string_vvect proc~get_table_string_vvect->interface~aot_top_get_val~2 proc~get_table_real_v get_table_real_v proc~get_table_real_v->interface~aot_top_get_val~2 proc~get_table_long_v get_table_long_v proc~get_table_long_v->interface~aot_top_get_val~2 proc~get_table_string_v get_table_string_v proc~get_table_string_v->interface~aot_top_get_val~2 proc~get_table_integer_vvect get_table_integer_vvect proc~get_table_integer_vvect->interface~aot_top_get_val~2 proc~get_top_integer_v get_top_integer_v proc~get_top_integer_v->interface~aot_top_get_val~2 proc~get_table_double_v get_table_double_v proc~get_table_double_v->interface~aot_top_get_val~2 proc~get_top_logical_vvect get_top_logical_vvect proc~get_top_logical_vvect->interface~aot_top_get_val~2 proc~get_top_long_v get_top_long_v proc~get_top_long_v->interface~aot_top_get_val~2 proc~get_top_real_vvect get_top_real_vvect proc~get_top_real_vvect->interface~aot_top_get_val~2 proc~get_top_logical_v get_top_logical_v proc~get_top_logical_v->interface~aot_top_get_val~2 proc~get_top_double_vvect get_top_double_vvect proc~get_top_double_vvect->interface~aot_top_get_val~2 interface~aot_table_get_val~4 aot_table_get_val interface~aot_table_get_val~4->proc~get_table_real_vvect interface~aot_table_get_val~4->proc~get_table_logical_vvect interface~aot_table_get_val~4->proc~get_table_double_vvect interface~aot_table_get_val~4->proc~get_table_long_vvect interface~aot_table_get_val~4->proc~get_table_string_vvect interface~aot_table_get_val~4->proc~get_table_integer_vvect interface~aot_get_val~2 aot_get_val interface~aot_get_val~2->proc~get_table_logical_v interface~aot_get_val~2->proc~get_table_integer_v interface~aot_get_val~2->proc~get_table_real_v interface~aot_get_val~2->proc~get_table_long_v interface~aot_get_val~2->proc~get_table_string_v interface~aot_get_val~2->proc~get_table_double_v interface~aot_top_get_val~3 aot_top_get_val interface~aot_top_get_val~3->proc~get_top_integer_vvect interface~aot_top_get_val~3->proc~get_top_long_vvect interface~aot_top_get_val~3->proc~get_top_string_vvect interface~aot_top_get_val~3->proc~get_top_logical_vvect interface~aot_top_get_val~3->proc~get_top_real_vvect interface~aot_top_get_val~3->proc~get_top_double_vvect interface~aot_get_val aot_get_val interface~aot_get_val->proc~get_table_real_vvect interface~aot_get_val->proc~get_table_logical_vvect interface~aot_get_val->proc~get_table_double_vvect interface~aot_get_val->proc~get_table_long_vvect interface~aot_get_val->proc~get_table_string_vvect interface~aot_get_val->proc~get_table_integer_vvect interface~aot_top_get_val~4 aot_top_get_val interface~aot_top_get_val~4->proc~get_top_double_v interface~aot_top_get_val~4->proc~get_top_real_v interface~aot_top_get_val~4->proc~get_top_string_v interface~aot_top_get_val~4->proc~get_top_integer_v interface~aot_top_get_val~4->proc~get_top_long_v interface~aot_top_get_val~4->proc~get_top_logical_v interface~aot_table_get_val~5 aot_table_get_val interface~aot_table_get_val~5->proc~get_table_logical_v interface~aot_table_get_val~5->proc~get_table_integer_v interface~aot_table_get_val~5->proc~get_table_real_v interface~aot_table_get_val~5->proc~get_table_long_v interface~aot_table_get_val~5->proc~get_table_string_v interface~aot_table_get_val~5->proc~get_table_double_v

Contents

Source Code


Source Code

  subroutine aot_top_get_userdata(val, ErrCode, L, default)
    use, intrinsic :: iso_c_binding
    type(flu_State) :: L !! Handle to the Lua script

    !> Value of the Variable in the script
    type(c_ptr), intent(out) :: val

    !> Error code to indicate what kind of problem might have occured.
    integer, intent(out) :: ErrCode

    !> Some default value, that should be used, if the variable is not set in
    !! the Lua script.
    type(c_ptr), optional, intent(in) :: default

    logical :: not_retrievable

    ErrCode = 0
    not_retrievable = .false.

    if (flu_isNoneOrNil(L, -1)) then
      ErrCode = ibSet(ErrCode, aoterr_NonExistent)
      not_retrievable = .true.
    else
      if (flu_islightuserdata(L, -1)) then
        val = flu_touserdata(L, -1)
      else
        ErrCode = ibSet(ErrCode, aoterr_WrongType)
        ErrCode = ibSet(ErrCode, aoterr_Fatal)
        not_retrievable = .true.
      end if
    end if

    if (not_retrievable) then
      if (present(default)) then
        val = default
      else
        ErrCode = ibSet(ErrCode, aoterr_Fatal)
      end if
    end if
    call flu_pop(L)

  end subroutine aot_top_get_userdata