Update of /cvsroot/plib/plib/examples/src/psl
In directory usw-pr-cvs1:/tmp/cvs-serv6912/plib/examples/src/psl
Modified Files:
psl_demo.cxx
Log Message:
PSL demo now runs two scripts in parallel.
Index: psl_demo.cxx
===================================================================
RCS file: /cvsroot/plib/plib/examples/src/psl/psl_demo.cxx,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- psl_demo.cxx 5 Sep 2002 06:46:06 -0000 1.2
+++ psl_demo.cxx 5 Sep 2002 07:09:13 -0000 1.3
@@ -4,14 +4,14 @@
#include <unistd.h>
#include <plib/psl.h>
-/* EMPTY FOR NOW */
-float hello ( int argc, float *argv )
+float hello ( int argc, float *argv, PSL_Program *p )
{
- printf ( "Hello World\n" ) ;
+ printf ( "I am %s.\n", (char *)( p->getUserData ()) ) ;
return 0.0f ;
}
+
PSL_Extension extensions [] =
{
{ "hello", 0, hello },
@@ -21,15 +21,31 @@
int main ()
{
- PSL_Program *prog = new PSL_Program ( extensions ) ;
+ /* Create program 1 and compile it. */
- prog -> parse ( "data/test.psl" ) ;
+ PSL_Program *prog_1 = new PSL_Program ( extensions ) ;
- prog -> dump () ;
+ prog_1 -> parse ( "data/test.psl" ) ;
+ prog_1 -> dump () ;
- while ( prog -> step () != PSL_PROGRAM_END )
- /* Do nothing */ ;
+ /* Clone program 2 from program 1 */
+
+ PSL_Program *prog_2 = new PSL_Program ( prog_1 ) ;
+
+ /* Make them unique by assigning user data to them */
+
+ prog_1 -> setUserData ( (void *) "Program 1" ) ;
+ prog_2 -> setUserData ( (void *) "Program 2" ) ;
+
+ /* Run both programs together until one of them ends */
+
+ while ( 1 )
+ {
+ if ( prog_1 -> step () == PSL_PROGRAM_END ) break ;
+ if ( prog_2 -> step () == PSL_PROGRAM_END ) break ;
+ }
exit ( 0 ) ;
}
+
|