#ifndef TTCaptain_H #define TTCaptain_H #include #include #include #include #include #include #include #include #include using std::vector; const int maxrow = 5; const double range = 5; //////////////////////////////////////////////////////////////////////////////////////////////////////// //TCaptain Class Deklaration //////////////////////////////////////////////////////////////////////////////////////////////////////// class TCaptain { void open_Matrix(); char *fname; std::ostream_iterator *out; protected: cppvmConnection Conn; std::stringstream sts; std::ofstream oFile; //simulation vars int max; int tid; vector vec; vector > matrix; vector::iterator vit; vector >::iterator mit; //serialisation array double *ioarray; inline virtual void Step(); inline void save_Vec(); public: TCaptain( const int inmax, char *ifn, cppvmConnection inConn); ~TCaptain(){ oFile.close(); delete out;} virtual void makeitso(); }; //////////////////////////////////////////////////////////////////////////////////////////////////////// //TCaptain Class implementation //////////////////////////////////////////////////////////////////////////////////////////////////////// //Standard Constructor TCaptain::TCaptain( const int inmax, char * ifn, cppvmConnection inConn) : max( inmax), fname( ifn), Conn( inConn) { vec.resize( maxrow, 0.); time_t t; srand( static_cast ( time( &t))); oFile.open( fname, std::ios_base::out | std::ios_base::trunc); out = new std::ostream_iterator( oFile, "\t"); ioarray = new double[maxrow]; } //////////////////////////////////////////////////////////////////////////////////////////////////////// //reset the vector void TCaptain::Step() { for( vit = vec.begin(); vit!=vec.end(); ++vit) ( *vit)= ( rand()*range/RAND_MAX) - range*0.5; save_Vec(); } //////////////////////////////////////////////////////////////////////////////////////////////////////// //do what has to be done void TCaptain::makeitso() { cppvmSpawnConnection Sailor("withcpp_slr"); cppvmSendStream Comm( Sailor, CPPvmSNBchild); tid = Comm.getTid(); open_Matrix(); for( mit = matrix.begin(); mit!=matrix.end(); ++mit) Comm<<( *mit); for( int i = 0; i( sts), std::istream_iterator(), std::back_inserter( vec)); sts.clear(); matrix.push_back( *( new vector( vec))); } vec.clear(); vec.resize( maxrow, 0.); RFile.close(); } //////////////////////////////////////////////////////////////////////////////////////////////////////// //save the vector void TCaptain::save_Vec() { std::copy( vec.begin(), vec.end(), *out); oFile<