|
@@ -137,12 +137,12 @@ struct RootGraphManagerParameters
|
|
|
std::pair < int, int > > > > parents;
|
|
|
};
|
|
|
|
|
|
-class RootGraphManager :
|
|
|
+class LevelGraphManager :
|
|
|
public paradevs::pdevs::GraphManager < common::DoubleTime,
|
|
|
RootGraphManagerParameters >
|
|
|
{
|
|
|
public:
|
|
|
- RootGraphManager(
|
|
|
+ LevelGraphManager(
|
|
|
common::Coordinator < common::DoubleTime >* coordinator,
|
|
|
const RootGraphManagerParameters& parameters) :
|
|
|
paradevs::pdevs::GraphManager < common::DoubleTime,
|
|
@@ -194,8 +194,19 @@ public:
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ void init()
|
|
|
+ { }
|
|
|
+
|
|
|
+ void start(common::DoubleTime::type /* t */)
|
|
|
+ { }
|
|
|
+
|
|
|
+ void transition(
|
|
|
+ const common::Models < common::DoubleTime >& /* receivers */,
|
|
|
+ common::DoubleTime::type /* t */)
|
|
|
+ { }
|
|
|
|
|
|
- virtual ~RootGraphManager()
|
|
|
+ virtual ~LevelGraphManager()
|
|
|
{
|
|
|
std::for_each(models.begin(), models.end(),
|
|
|
std::default_delete < ModelProxy >());
|
|
@@ -208,6 +219,54 @@ private:
|
|
|
ModelProxies models;
|
|
|
};
|
|
|
|
|
|
+class RootGraphManager :
|
|
|
+ public paradevs::pdevs::GraphManager < common::DoubleTime,
|
|
|
+ RootGraphManagerParameters >
|
|
|
+{
|
|
|
+public:
|
|
|
+ RootGraphManager(
|
|
|
+ common::Coordinator < common::DoubleTime >* coordinator,
|
|
|
+ const RootGraphManagerParameters& parameters) :
|
|
|
+ paradevs::pdevs::GraphManager < common::DoubleTime,
|
|
|
+ RootGraphManagerParameters >(
|
|
|
+ coordinator, parameters),
|
|
|
+ S("S", paradevs::common::NoParameters(), parameters)
|
|
|
+ {
|
|
|
+ add_child(&S);
|
|
|
+ }
|
|
|
+
|
|
|
+ void init()
|
|
|
+ {
|
|
|
+ S.set_sender(
|
|
|
+ dynamic_cast < paradevs::pdevs::multithreading::Coordinator <
|
|
|
+ common::DoubleTime,
|
|
|
+ paradevs::tests::mpi::cluster::RootGraphManager >*
|
|
|
+ >(get_coordinator())->get_sender());
|
|
|
+ }
|
|
|
+
|
|
|
+ void start(common::DoubleTime::type t)
|
|
|
+ {
|
|
|
+ S.get_sender().send(
|
|
|
+ paradevs::pdevs::multithreading::start_message <
|
|
|
+ common::DoubleTime >(t));
|
|
|
+ }
|
|
|
+
|
|
|
+ void transition(const common::Models < common::DoubleTime >& receivers,
|
|
|
+ common::DoubleTime::type t)
|
|
|
+ {
|
|
|
+ S.get_sender().send(
|
|
|
+ paradevs::pdevs::multithreading::transition_message <
|
|
|
+ common::DoubleTime >(t));
|
|
|
+ }
|
|
|
+
|
|
|
+ virtual ~RootGraphManager()
|
|
|
+ { }
|
|
|
+
|
|
|
+private:
|
|
|
+ paradevs::pdevs::multithreading::Coordinator <
|
|
|
+ common::DoubleTime, LevelGraphManager, paradevs::common::NoParameters, RootGraphManagerParameters > S;
|
|
|
+};
|
|
|
+
|
|
|
} } } } // namespace paradevs tests mpi cluster
|
|
|
|
|
|
#endif
|