Sink, WIP
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
#include "PoolRouter.hpp"
|
||||
#include "ProductionOrderGenerator.hpp"
|
||||
#include "Router.hpp"
|
||||
#include "Sink.hpp"
|
||||
|
||||
using namespace std::chrono;
|
||||
|
||||
@@ -21,7 +22,7 @@ class OnlyOnePoolGraphManager
|
||||
: public artis::pdevs::GraphManager<artis::common::DoubleTime, artis::common::NoParameters, artis::common::NoParameters> {
|
||||
public:
|
||||
enum sub_models {
|
||||
PROCESSOR_1, PROCESSOR_2, PROCESSOR_3, POOL_ROUTER, ROUTER, GENERATOR
|
||||
PROCESSOR_1, PROCESSOR_2, PROCESSOR_3, POOL_ROUTER, ROUTER, GENERATOR, SINK
|
||||
};
|
||||
|
||||
OnlyOnePoolGraphManager(artis::common::Coordinator<artis::common::DoubleTime> *coordinator,
|
||||
@@ -32,17 +33,19 @@ public:
|
||||
_generator("G",
|
||||
{
|
||||
{
|
||||
{0, {artis::factory::PoolMachineSequence(0, {0, 1, 2})}},
|
||||
{1, {artis::factory::PoolMachineSequence(0, {1, 2, 0})}},
|
||||
{2, {artis::factory::PoolMachineSequence(0, {2, 0, 1})}}
|
||||
{0, {artis::factory::PoolMachineSequence(0, {0, 1, 2, 3})}},
|
||||
{1, {artis::factory::PoolMachineSequence(0, {1, 2, 0, 3})}},
|
||||
{2, {artis::factory::PoolMachineSequence(0, {2, 0, 1, 3})}}
|
||||
},
|
||||
62642, 15, 30
|
||||
}),
|
||||
_router("R", {1}),
|
||||
_pool_router("P_R", {0, 3}),
|
||||
_pool_router("P_R", {0, 4}),
|
||||
_processor_1("M1", {{0, 0, 0}, 1, 10, 1}),
|
||||
_processor_2("M2", {{1, 0, 0}, 1, 8, 1}),
|
||||
_processor_3("M3", {{2, 0, 0}, 1, 15, 1}) {
|
||||
_processor_3("M3", {{2, 0, 0}, 1, 15, 1}),
|
||||
_sink("S", {3, 0}) {
|
||||
this->add_child(SINK, &_sink);
|
||||
this->add_child(PROCESSOR_1, &_processor_1);
|
||||
this->add_child(PROCESSOR_2, &_processor_2);
|
||||
this->add_child(PROCESSOR_3, &_processor_3);
|
||||
@@ -76,6 +79,9 @@ public:
|
||||
|
||||
out({&_processor_3, artis::factory::Processor::outputs::OUT})
|
||||
>> in({&_pool_router, artis::factory::PoolRouter::inputs::IN_M + 2});
|
||||
|
||||
out({&_router, artis::factory::Router::outputs::OUT/*_M+3*/}) // Sink
|
||||
>> in({&_sink, artis::factory::Sink::inputs::IN});
|
||||
}
|
||||
|
||||
~OnlyOnePoolGraphManager() override = default;
|
||||
@@ -87,6 +93,7 @@ private:
|
||||
artis::pdevs::Simulator<artis::common::DoubleTime, artis::factory::Processor, artis::factory::ProcessorParameters> _processor_1;
|
||||
artis::pdevs::Simulator<artis::common::DoubleTime, artis::factory::Processor, artis::factory::ProcessorParameters> _processor_2;
|
||||
artis::pdevs::Simulator<artis::common::DoubleTime, artis::factory::Processor, artis::factory::ProcessorParameters> _processor_3;
|
||||
artis::pdevs::Simulator<artis::common::DoubleTime, artis::factory::Sink, artis::factory::SinkParameters> _sink;
|
||||
};
|
||||
|
||||
class PoolRouterView : public artis::factory::View {
|
||||
@@ -111,8 +118,10 @@ BOOST_AUTO_TEST_CASE(TestCase_OnePool)
|
||||
rc.switch_to_timed_observer(1);
|
||||
|
||||
steady_clock::time_point t1 = steady_clock::now();
|
||||
|
||||
|
||||
std::cout << "OK" << std::endl;
|
||||
rc.run(context);
|
||||
std::cout << "OK" << std::endl;
|
||||
|
||||
steady_clock::time_point t2 = steady_clock::now();
|
||||
|
||||
@@ -128,4 +137,4 @@ BOOST_AUTO_TEST_CASE(TestCase_OnePool)
|
||||
<< std::endl;
|
||||
|
||||
BOOST_CHECK(true);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user