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/local/include/artis-star-1.0/artis-star/kernel/pdevs/Context.hpp \
/usr/include/c++/13/cxxabi.h \ /usr/include/c++/13/cxxabi.h \
/usr/include/x86_64-linux-gnu/c++/13/bits/cxxabi_tweaks.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/c++/13/cxxabi.h \
/usr/include/x86_64-linux-gnu/c++/13/bits/cxxabi_tweaks.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/Machine.hpp \
/home/lj50/Univ/M2/Modelisation_problemes/simulation/src/ProductionOrder.hpp \ /home/lj50/Univ/M2/Modelisation_problemes/simulation/src/ProductionOrder.hpp
/usr/include/c++/13/iostream

View File

@@ -3320,8 +3320,10 @@ src/CMakeFiles/factory_core.dir/Machine.cpp.o
src/CMakeFiles/factory_core.dir/PoolRouter.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/PoolRouter.cpp
/home/lj50/Univ/M2/Modelisation_problemes/simulation/src/Base.hpp /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/PoolRouter.hpp
/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
/usr/include/alloca.h /usr/include/alloca.h
/usr/include/asm-generic/errno-base.h /usr/include/asm-generic/errno-base.h
/usr/include/asm-generic/errno.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/initializer_list
/usr/include/c++/13/ios /usr/include/c++/13/ios
/usr/include/c++/13/iosfwd /usr/include/c++/13/iosfwd
/usr/include/c++/13/iostream
/usr/include/c++/13/istream /usr/include/c++/13/istream
/usr/include/c++/13/iterator /usr/include/c++/13/iterator
/usr/include/c++/13/limits /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/CMakeFiles/factory_core.dir/PoolRouter.cpp.o: src/PoolRouter.cpp \
src/Base.hpp \ src/Base.hpp \
src/Machine.hpp \
src/PoolRouter.hpp \ src/PoolRouter.hpp \
src/ProductionOrder.hpp \ src/ProductionOrder.hpp \
src/Sink.hpp \
/usr/include/alloca.h \ /usr/include/alloca.h \
/usr/include/asm-generic/errno-base.h \ /usr/include/asm-generic/errno-base.h \
/usr/include/asm-generic/errno.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/initializer_list \
/usr/include/c++/13/ios \ /usr/include/c++/13/ios \
/usr/include/c++/13/iosfwd \ /usr/include/c++/13/iosfwd \
/usr/include/c++/13/iostream \
/usr/include/c++/13/istream \ /usr/include/c++/13/istream \
/usr/include/c++/13/iterator \ /usr/include/c++/13/iterator \
/usr/include/c++/13/limits \ /usr/include/c++/13/limits \
@@ -11277,8 +11278,6 @@ src/Stock.hpp:
src/Stock.cpp: src/Stock.cpp:
src/Sink.hpp:
src/Separator.cpp: src/Separator.cpp:
src/Router.hpp: src/Router.hpp:
@@ -11299,6 +11298,8 @@ src/ProductionOrder.cpp:
src/Processor.hpp: src/Processor.hpp:
src/Sink.hpp:
/usr/include/c++/13/bits/locale_facets.tcc: /usr/include/c++/13/bits/locale_facets.tcc:
/usr/include/boost/preprocessor/repetition/limits/repeat_256.hpp: /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/tr1/ell_integral.tcc:
/usr/include/c++/13/iostream:
/usr/include/c++/13/bits/hash_bytes.h: /usr/include/c++/13/bits/hash_bytes.h:
/usr/include/boost/smart_ptr/shared_ptr.hpp: /usr/include/boost/smart_ptr/shared_ptr.hpp:

View File

@@ -25,6 +25,7 @@
*/ */
#include "PoolRouter.hpp" #include "PoolRouter.hpp"
#include "Sink.hpp"
namespace artis::factory { namespace artis::factory {
@@ -47,7 +48,15 @@ void PoolRouter::dint(const Time & /* t */) {
} else if ((*it)->current_operation().get_type() == CHANGE_POOL_TYPE) { } else if ((*it)->current_operation().get_type() == CHANGE_POOL_TYPE) {
_available_machines[(*it)->previous_operation()->get_loc_index()] = true; _available_machines[(*it)->previous_operation()->get_loc_index()] = true;
} else { } 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); _pending_po.erase(it);
if (std::find_if(_pending_po.cbegin(), _pending_po.cend(), [this](const auto &e) { 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 "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*/) { void Sink::dint(const Time &/*t*/) {
// TODO // TODO
@@ -52,7 +51,6 @@ void Sink::dext(const Time &t, const Time & /* e */, const Bag &bag) {
Trace::trace().flush(); Trace::trace().flush();
#endif #endif
_pos.push_back(std::move(po));//Je ne peux pas dupliquer ce pointer unique dans la liste, je dois explicitement le déplacer. _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; _phase = Phase::LOADED;
} }

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.