Best way to access steve data members externally?

Stephen Larson <[email protected]> Fri, 25 Nov 2005 18:07:57 -0800
Newsgroups gmane.comp.breve
Message-ID <[email protected]>
--===============10865575366318869==
Content-Type: multipart/alternative; 
	boundary="----=_Part_13966_23553685.1132970877593"

------=_Part_13966_23553685.1132970877593
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Hi,

   I am implementing a custom front end in breve and I was hoping to get
some advice.  Part of the requirement of this front end is that a user can
specify a mapping between arbitrary variables within a steve program and
external input and output data channels provided by the front end.  I have
thought of a few strategies to accomplish this:

1) use brObjectFind to look up the brObjects and then somehow parse the
userData field to locate its data members by name.  Then create pointers to
these data which are accessible through the front end's data channels.

2) use the steve language module, have my front end write steve commands
which address data members, and then somehow create pointers to these data
which are accessible through the front end's data channels.

3) same as 2, except rather than creating pointers to the data, constantly
go through steve to access and modify the data variables by creating the
appropriate steve commands to do so.  I suspect this will be too slow
though.

   I'm still making my way through the source to try to understand fully ho=
w
to accomplish these.  I have a few questions:

A) Which of these strategies is better?  I am trying to optimize for
simplicity for end-users of this system, thus I want the mapping file to be
relatively straightforward, and little to no special steve re-coding to
accomplish the mapping.  Also this front end needs to be able to scale up,
so performance is important.
B) Are there any examples of either of these strategies that I could look
at?
C) For option #1, how can I parse the userData field to give me a way to
access the variables an object contains by name?
D) For option #2/3, will this require me to write my steve code in a specia=
l
way?  In other words, is there a "global way" to address data variables in
steve, or do I always need to make special accessors?
E) For option #2, how do I actually access the underlying steve data
programmatically in C++?  Ideally I would want a function which I give a
"get-underlying x." command and get back a pointer to x.  Do I need to add
special functions through a plug in to do this?
F) Anything else I should be considering?

Thanks,
   Stephen

P.S.  Great work on breve!  Its an impressive system.

------=_Part_13966_23553685.1132970877593
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

<span class=3D"gmail_quote"></span>Hi,<br>
<br>
&nbsp;&nbsp; I am implementing a custom front end in breve and I was
hoping to get some advice.&nbsp; Part of the requirement of this front
end is that a user can specify a mapping between arbitrary variables
within a steve program and external input and output data channels
provided by the front end.&nbsp; I have thought of a few strategies to
accomplish this:<br>
<br>
1) use brObjectFind to look up the brObjects and then somehow parse the
userData field to locate its data members by name.&nbsp; Then create
pointers to these data which are accessible through the front end's
data channels.&nbsp; <br>
<br>
2) use the steve language module, have my front end write steve
commands which address data members, and then somehow create pointers
to these data which are accessible through the front end's data
channels.<br>
<br>
3) same as 2, except rather than creating pointers to the data,
constantly go through steve to access and modify the data variables by
creating the appropriate steve commands to do so.&nbsp; I suspect this
will be too slow though.<br>
<br>
&nbsp;&nbsp; I'm still making my way through the source to try to
understand fully how to accomplish these.&nbsp; I have a few questions:<br>
<br>
A) Which of these strategies is better?&nbsp; I am trying to optimize
for simplicity for end-users of this system, thus I want the mapping
file to be relatively straightforward, and little to no special steve
re-coding to accomplish the mapping.&nbsp; Also this front end needs to
be able to scale up, so performance is important.<br>
B) Are there any examples of either of these strategies that I could look a=
t?<br>
C) For option #1, how can I parse the userData field to give me a way to ac=
cess the variables an object contains by name?<br>
D) For option #2/3, will this require me to write my steve code in a
special way?&nbsp; In other words, is there a &quot;global way&quot; to add=
ress
data variables in steve, or do I always need to make special accessors?<br>
E) For option #2, how do I actually access the underlying steve data
programmatically in C++?&nbsp; Ideally I would want a function which I
give a &quot;get-underlying x.&quot; command and get back a pointer to x.&n=
bsp;
Do I need to add special functions through a plug in to do this?<br>
F) Anything else I should be considering?<br>
<br>
Thanks,<br>
&nbsp;&nbsp; Stephen<br>
<br>
P.S.&nbsp; Great work on breve!&nbsp; Its an impressive system.

<br>

------=_Part_13966_23553685.1132970877593--

--===============10865575366318869==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
breve mailing list
[email protected]
http://lists.spiderland.org/mailman/listinfo/breve

--===============10865575366318869==--