From: <com...@us...> - 2007-05-28 17:45:59
|
Revision: 1572 http://svn.sourceforge.net/complement/?rev=1572&view=rev Author: complement Date: 2007-05-28 10:45:58 -0700 (Mon, 28 May 2007) Log Message: ----------- development Modified Paths: -------------- trunk/complement/explore/test/virtual_time/vtime.cc trunk/complement/explore/test/virtual_time/vtime.h Modified: trunk/complement/explore/test/virtual_time/vtime.cc =================================================================== --- trunk/complement/explore/test/virtual_time/vtime.cc 2007-05-24 17:15:39 UTC (rev 1571) +++ trunk/complement/explore/test/virtual_time/vtime.cc 2007-05-28 17:45:58 UTC (rev 1572) @@ -347,7 +347,7 @@ return *this; } -gvtime& gvtime::operator +=( const vtime_group_type& t ) +gvtime_type& operator +=( gvtime_type& gvt, const vtime_group_type& t ) { gvtime_type::iterator i = gvt.begin(); @@ -356,13 +356,41 @@ break; } else if ( i->first == t.first ) { i->second += t.second; - return *this; + return gvt; } } gvt.insert( i, t ); + return gvt; +} + +gvtime& gvtime::operator +=( const vtime_group_type& t ) +{ + gvt += t; return *this; } +vtime_unit_type comp( const gvtime_type& gvt, group_type g, oid_type p ) +{ + gvtime_type::const_iterator k = gvt.begin(); + for ( ; k != gvt.end(); ++k ) { + if ( k->first == g ) { + for ( vtime_type::const_iterator i = k->second.vt.begin(); i != k->second.vt.end(); ++i ) { + if ( i->first == p ) { + return i->second; // found (p_i, t) in g_k + } else if ( i->first > p ) { + return 0; // pair sorted, so no pair required (p_i, t) expected more + } + } + return 0; // no pair (p_i, * ) + } else if ( k->first > g ) { // groups sorted, so no required group expected more + return 0; + } + } + + return 0; +} + + void Proc::mess( const stem::Event_base<VTmess>& ev ) { cout << ev.value().mess << endl; @@ -375,7 +403,7 @@ gvtime_type::const_iterator gr = ev.value().gvt.gvt.begin(); gvtime_type::const_iterator ge = ev.value().gvt.gvt.end(); for ( ; gr != ge; ++gr ) { // over all groups - vt[gr->first] = max( vt[gr->first], vt[gr->first] + gr->second.vt ); + // vt[gr->first] = max( vt[gr->first], vt[gr->first] + gr->second.vt ); } } } @@ -391,8 +419,43 @@ for ( ; gr != ge; ++gr ) { // over all groups if ( gr->first == mgrp ) { - vtime_type vt_tmp = last_vt[ev.value().grp] + gr->second.vt; +#if 0 + comp( vt, mgrp, ev.src() ); + comp( vt, mgrp, ev.src() ); + for ( gvtime_type::const_iterator my_gi = vt.begin(); my_gi != vt.end(); ++my_gi ) { + if ( my_gi->first == mgrp ) { + vtime_type vt_tmp = my_gi->second.vt + gr->second.vt; + for (vtime_type::const_iterator i = vt_tmp.begin(); i != vt_tmp.end(); ++i ) { + if ( i->first == ev.src() ) { + vtime_type::const_iterator j = my_gi->second.vt.begin(); + for ( ; j != my_gi->second.vt.end(); ++j ) { + if ( i->first == j->first ) { + if ( i->second != j->second + 1) { + return false; + } + break; + } + } + if ( j == my_gi->second.vt.end() ) { + if ( i->second != 1 ) { + return false; + } + } + } else { + if ( ) { + } + } + } + vtime_type vt_null; + vt_null += make_pair( ev.src(), 1 ); + } + } + // vtime_group_type vt_tmp = vt + *gr; + // vtime_type vt_tmp = last_vt[ev.value().grp] + gr->second.vt; +#endif + +#if 0 vtime_type::const_iterator i = vt_tmp.begin(); if ( vt[mgrp].empty() ) { vtime vt_null; @@ -402,11 +465,14 @@ } else { vtime_type::const_iterator j = vt[mgrp].begin(); } +#endif } else { +#if 0 vtime_type vt_tmp = last_vt[mgrp] + gr->second.vt; if ( !(vt_tmp <= vt[mgrp] )) { return false; } +#endif } } Modified: trunk/complement/explore/test/virtual_time/vtime.h =================================================================== --- trunk/complement/explore/test/virtual_time/vtime.h 2007-05-24 17:15:39 UTC (rev 1571) +++ trunk/complement/explore/test/virtual_time/vtime.h 2007-05-28 17:45:58 UTC (rev 1572) @@ -116,6 +116,9 @@ typedef std::pair<group_type, vtime> vtime_group_type; typedef std::list<vtime_group_type> gvtime_type; +vtime_unit_type comp( const gvtime_type&, group_type, oid_type ); +gvtime_type& operator +=( gvtime_type&, const vtime_group_type& ); + struct gvtime : public stem::__pack_base { @@ -184,8 +187,10 @@ n_groups }; - vtime_type vt[n_groups]; - vtime_type last_vt[n_groups]; + // vtime_type vt[n_groups]; + gvtime_type vt; + // vtime_type last_vt[n_groups]; + // gvtime_type last_vt; DECLARE_RESPONSE_TABLE( Proc, stem::EventHandler ); }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |