diff options
author | Ossama Othman <ossama-othman@users.noreply.github.com> | 2005-02-08 08:33:44 +0000 |
---|---|---|
committer | Ossama Othman <ossama-othman@users.noreply.github.com> | 2005-02-08 08:33:44 +0000 |
commit | ab82f89dc8fde2725888b2577b6c44f113d3040f (patch) | |
tree | 8a9759f3be81fe4eba3a3d42e82609af907c60a4 /protocols/ace/RMCast/Simulator.cpp | |
parent | 1b01c3c7544d1454ced15a8eae026f96758102a8 (diff) | |
download | ATCD-unlabeled-1.1.2.tar.gz |
ChangeLogTag:Tue Feb 8 00:22:48 2005 Ossama Othman <ossama@dre.vanderbilt.edu>unlabeled-1.1.2
Diffstat (limited to 'protocols/ace/RMCast/Simulator.cpp')
-rw-r--r-- | protocols/ace/RMCast/Simulator.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/protocols/ace/RMCast/Simulator.cpp b/protocols/ace/RMCast/Simulator.cpp new file mode 100644 index 00000000000..4b08f37f3da --- /dev/null +++ b/protocols/ace/RMCast/Simulator.cpp @@ -0,0 +1,40 @@ +// file : ace/RMCast/Simulator.cpp +// author : Boris Kolpackov <boris@kolpackov.net> +// cvs-id : $Id$ + +#include <ace/RMCast/Simulator.h> + +namespace ACE_RMCast +{ + Simulator:: + Simulator () + { + srand (time (0)); + } + + void Simulator:: + send (Message_ptr m) + { + // Note: Simulator may work in unpredictable ways mainly due + // to the "reliable loopback" mechanism. + // + out_->send (m); + return; + + int r (rand ()); + + if ((r % 3) == 0) return; + + Lock l (mutex_); + + if (hold_.get ()) + { + out_->send (m); + out_->send (hold_); + } + else + { + hold_ = m; + } + } +} |