Re: Binding static methods with luabind?

Iliya Trendafilov <[email protected]>
Newsgroups gmane.comp.lang.lua.bind.user
Message-ID <[email protected]>
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]>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]
> 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.