Plusieurs PO peuvent arriver au Sink

This commit is contained in:
2025-10-13 14:24:27 +02:00
parent 494d4dfde4
commit afae863f68
11 changed files with 28760 additions and 28752 deletions

View File

@@ -1007,4 +1007,6 @@ src/CMakeFiles/factory_core.dir/PoolRouter.cpp.o: \
/usr/local/include/artis-star-1.0/artis-star/kernel/pdevs/Context.hpp \
/usr/include/c++/13/cxxabi.h \
/usr/include/x86_64-linux-gnu/c++/13/bits/cxxabi_tweaks.h \
/home/lj50/Univ/M2/Modelisation_problemes/simulation/src/ProductionOrder.hpp
/home/lj50/Univ/M2/Modelisation_problemes/simulation/src/ProductionOrder.hpp \
/home/lj50/Univ/M2/Modelisation_problemes/simulation/src/Sink.hpp \
/home/lj50/Univ/M2/Modelisation_problemes/simulation/src/Machine.hpp

View File

@@ -1008,5 +1008,4 @@ src/CMakeFiles/factory_core.dir/Sink.cpp.o: \
/usr/include/c++/13/cxxabi.h \
/usr/include/x86_64-linux-gnu/c++/13/bits/cxxabi_tweaks.h \
/home/lj50/Univ/M2/Modelisation_problemes/simulation/src/Machine.hpp \
/home/lj50/Univ/M2/Modelisation_problemes/simulation/src/ProductionOrder.hpp \
/usr/include/c++/13/iostream
/home/lj50/Univ/M2/Modelisation_problemes/simulation/src/ProductionOrder.hpp

View File

@@ -3320,8 +3320,10 @@ src/CMakeFiles/factory_core.dir/Machine.cpp.o
src/CMakeFiles/factory_core.dir/PoolRouter.cpp.o
/home/lj50/Univ/M2/Modelisation_problemes/simulation/src/PoolRouter.cpp
/home/lj50/Univ/M2/Modelisation_problemes/simulation/src/Base.hpp
/home/lj50/Univ/M2/Modelisation_problemes/simulation/src/Machine.hpp
/home/lj50/Univ/M2/Modelisation_problemes/simulation/src/PoolRouter.hpp
/home/lj50/Univ/M2/Modelisation_problemes/simulation/src/ProductionOrder.hpp
/home/lj50/Univ/M2/Modelisation_problemes/simulation/src/Sink.hpp
/usr/include/alloca.h
/usr/include/asm-generic/errno-base.h
/usr/include/asm-generic/errno.h
@@ -9953,7 +9955,6 @@ src/CMakeFiles/factory_core.dir/Sink.cpp.o
/usr/include/c++/13/initializer_list
/usr/include/c++/13/ios
/usr/include/c++/13/iosfwd
/usr/include/c++/13/iostream
/usr/include/c++/13/istream
/usr/include/c++/13/iterator
/usr/include/c++/13/limits

View File

@@ -3316,8 +3316,10 @@ src/CMakeFiles/factory_core.dir/Machine.cpp.o: src/Machine.cpp \
src/CMakeFiles/factory_core.dir/PoolRouter.cpp.o: src/PoolRouter.cpp \
src/Base.hpp \
src/Machine.hpp \
src/PoolRouter.hpp \
src/ProductionOrder.hpp \
src/Sink.hpp \
/usr/include/alloca.h \
/usr/include/asm-generic/errno-base.h \
/usr/include/asm-generic/errno.h \
@@ -9943,7 +9945,6 @@ src/CMakeFiles/factory_core.dir/Sink.cpp.o: src/Sink.cpp \
/usr/include/c++/13/initializer_list \
/usr/include/c++/13/ios \
/usr/include/c++/13/iosfwd \
/usr/include/c++/13/iostream \
/usr/include/c++/13/istream \
/usr/include/c++/13/iterator \
/usr/include/c++/13/limits \
@@ -11277,8 +11278,6 @@ src/Stock.hpp:
src/Stock.cpp:
src/Sink.hpp:
src/Separator.cpp:
src/Router.hpp:
@@ -11299,6 +11298,8 @@ src/ProductionOrder.cpp:
src/Processor.hpp:
src/Sink.hpp:
/usr/include/c++/13/bits/locale_facets.tcc:
/usr/include/boost/preprocessor/repetition/limits/repeat_256.hpp:
@@ -12735,8 +12736,6 @@ src/ProductionOrder.hpp:
/usr/include/c++/13/tr1/ell_integral.tcc:
/usr/include/c++/13/iostream:
/usr/include/c++/13/bits/hash_bytes.h:
/usr/include/boost/smart_ptr/shared_ptr.hpp:

View File

@@ -25,6 +25,7 @@
*/
#include "PoolRouter.hpp"
#include "Sink.hpp"
namespace artis::factory {
@@ -47,7 +48,15 @@ void PoolRouter::dint(const Time & /* t */) {
} else if ((*it)->current_operation().get_type() == CHANGE_POOL_TYPE) {
_available_machines[(*it)->previous_operation()->get_loc_index()] = true;
} else {
_available_machines[(*it)->current_operation().get_loc_index()] = false;
//_available_machines[(*it)->current_operation().get_loc_index()] = false;
auto idx = (*it)->current_operation().get_loc_index();
// Modifié pour gérer le Sink
if (idx == _available_machines.size()-1) {// Par simplicité, je considère que la dernière machine connectée est le Sink
_available_machines[idx] = true;// Et si idx est le dernier index, alors cette "machine" reste disponible
} else {
_available_machines[idx] = false;
}
}
_pending_po.erase(it);
if (std::find_if(_pending_po.cbegin(), _pending_po.cend(), [this](const auto &e) {
@@ -150,4 +159,4 @@ PoolRouter::ProductionOrders::const_iterator PoolRouter::next_po() const {
}
}
} // namespace artis::factory
} // namespace artis::factory

View File

@@ -25,9 +25,8 @@
*/
#include "Sink.hpp"
#include <iostream>
namespace artis::factory { // TODO : Peut être qu'il manque du code dans cette classe. Pour le moment, le test tourne à l'infini. Trouver où ça coince et ce qu'il manque
namespace artis::factory {
void Sink::dint(const Time &/*t*/) {
// TODO
@@ -52,7 +51,6 @@ void Sink::dext(const Time &t, const Time & /* e */, const Bag &bag) {
Trace::trace().flush();
#endif
_pos.push_back(std::move(po));//Je ne peux pas dupliquer ce pointer unique dans la liste, je dois explicitement le déplacer.
std::cout << "PING" << std::endl;
_phase = Phase::LOADED;
}

Binary file not shown.