Re: luabind-user Digest, Vol 34, Issue 1

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Re: luabind-user Digest, Vol 34, Issue 1

yaohua xiao
I think it's a design problem. When you decided what c++ or lua's duty in
your project, the problem is clear.

In my opinion, i will use a std::map<string,string> to store the key-field pairs
and exports a get/set method to lua.

in your case:
function myClass:populateDynamicFields(
)

 addDynamicField('field1', int)

 addDynamicField('field2', string)

end
It seems that the fields will be different types, so I suggest to use the string
type to store field value, and translate it when you use it.

2009/4/9 <[hidden email]>
Message: 5
Date: Mon, 6 Apr 2009 20:47:37 +0200
From: "Domino" <[hidden email]>
Subject: [luabind]  adding fields to lua class from C++
To: <[hidden email]>
Message-ID: <000001c9b6e8$27f70da0$77e528e0$@fm>
Content-Type: text/plain; charset="us-ascii"

Hi all,



I'm working on pseudo-dynamic fields for the lua classes. What I want to
achieve is some sort of mapping of object fields available from C++. So my
script class will populate the fields map like:



function myClass:populateDynamicFields()

 addDynamicField('field1', int)

 addDynamicField('field2', string)

end



then from GUI I want to display this list of dynamic fields and be able to
set their values via get/setValueInt (eventually I would like to add fields
from GUI as well). These methods will basically look like below:



void myClassInterface::setValueInt(string name, int value)

{

 // let's say that I have luabind::object that is the script class
representation in luabind and it's called m_Self

 if (m_Self[name])

 {

   m_Self[name] = value;

 }

}



What I don't know is how to ensure that the m_Self[name] exists? Or how to
force its creation from C++ side? Like:



// .

if (!m_Self[name])

 // do something to create field



Is there some way to do this? Or maybe there is some more generic way to do
what I'm trying here?



Thanks a lot.



------------------------------------------------------------------------------
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
_______________________________________________
luabind-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/luabind-user