[Plib-cvs] plib/examples/src/psl psl_demo.cxx,1.2,1.3
Brought to you by:
sjbaker
From: Steve B. <sj...@us...> - 2002-09-05 07:09:16
|
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 ) ; } + |