Re: Binding static methods with luabind?

Nicolas Goles <[email protected]>
Newsgroups gmane.comp.lang.lua.bind.user
Message-ID <[email protected]>
Great,

The .scope[] solved the problem ( now I have a different problem );

When I execute the Lua script I mentioned ( 1 line script )

	LuaRegisterManager:getInstance()


I get the following Error in my Console:

         Error: LuaRegisterManager* getInstance()


Before adding the .scope [] I was getting

	Error: no static 'getInstance' in class 'LuaRegisterManager'

So I guess it's finding the static method now , but there seems to be a 
different error this time.

I am new to Lua/Luabind so help is really welcome.

Thanks!

-- 
Nicolas Goles Domic
Founder & Lead Programmer
Gando Games <www.gandogames.com>



Iliya Trendafilov wrote:
> Hi,
>
> That should do it, note the scope around the definition of getInstance
>
>      luabind::module(L)
>      [
>       luabind::class_<LuaRegisterManager>("LuaRegisterManager") //Register the class
>       .def("execScript", (void(LuaRegisterManager::*)())&LuaRegisterManager::execScript) //method to execute a lua script
>       .scope
>        [
>            def("getInstance",&LuaRegisterManager::getInstance) //returns static singleton instance
>        ]
>    
>       ];
>
>    
> Invoke with LuaRegisterManager.getInstance() (i.e. dot instead of 
> colon). A bit of explanation can be found here: 
> http://www.rasterbar.com/products/luabind/docs.html#nested-scopes-and-static-functions
>
> Hope that helps
>
> On Wed, Sep 15, 2010 at 7:32 PM, Nicolas Goles <[email protected] 
> <mailto:[email protected]>> wrote:
>
>     Hello,
>
>     I have a Singleton Class in my application, it has a member method
>     defined like:
>
>     	static LuaRegisterManager* getInstance();
>
>     I'm trying to register this class with Luabind, and expose some
>     methods to Lua:
>
>          //Register with luabind.
>
>          luabind::module(L)
>
>          [
>
>           luabind::class_<LuaRegisterManager>("LuaRegisterManager") //Register the class
>
>           .def("execScript", (void(LuaRegisterManager::*)())&LuaRegisterManager::execScript) //method to execute a lua script
>
>           .def("getInstance",&LuaRegisterManager::getInstance) //returns static singleton instance
>
>           ];
>
>     The problem is that if I execute the following Lua script:
>          
>
>          LuaRegisterManager:getInstance()
>
>     I get :
>
>     	Error: no static 'getInstance' in class 'LuaRegisterManager'
>
>          
>
>     So I guess I'm making an error and my static getInstance() method
>     is not being registered with luabind correctly.
>
>     Help is welcome :)
>
>     -- 
>     Nicolas Goles Domic
>     Founder & Lead Programmer
>     Gando Games <http://www.gandogames.com>
>
>
>     ------------------------------------------------------------------------------
>     Start uncovering the many advantages of virtual appliances
>     and start using them to simplify application deployment and
>     accelerate your shift to cloud computing.
>     http://p.sf.net/sfu/novell-sfdev2dev
>     _______________________________________________
>     luabind-user mailing list
>     [email protected]
>     <mailto:[email protected]>
>     https://lists.sourceforge.net/lists/listinfo/luabind-user
>
>
> ------------------------------------------------------------------------
>
> ------------------------------------------------------------------------------
> Start uncovering the many advantages of virtual appliances
> and start using them to simplify application deployment and
> accelerate your shift to cloud computing.
> http://p.sf.net/sfu/novell-sfdev2dev
> ------------------------------------------------------------------------
>
> _______________________________________________
> luabind-user mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/luabind-user
>

------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev

_______________________________________________
luabind-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/luabind-user
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.