Warning, file /include/celeritas/track/StatusChecker.hh was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007 #pragma once
0008
0009 #include <string_view>
0010
0011 #include "corecel/Types.hh"
0012 #include "corecel/data/AuxParams.hh"
0013 #include "corecel/data/ParamsDataInterface.hh"
0014 #include "corecel/data/ParamsDataStore.hh"
0015 #include "celeritas/Types.hh"
0016 #include "celeritas/global/ActionInterface.hh"
0017
0018 #include "StatusCheckData.hh"
0019
0020 namespace celeritas
0021 {
0022
0023 class ActionRegistry;
0024 class CoreParams;
0025 template<MemSpace>
0026 class CoreState;
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039 class StatusChecker final
0040 : public CoreBeginRunActionInterface,
0041 public AuxParams<StatusCheckParamsData, StatusCheckStateData>
0042 {
0043 public:
0044
0045 static std::shared_ptr<StatusChecker> make_and_insert(
0046 CoreParams const& core);
0047
0048
0049 StatusChecker(ActionId action_id, AuxId aux_id);
0050
0051
0052
0053
0054
0055 std::string_view label() const final { return "status-check"; }
0056
0057 std::string_view description() const final;
0058
0059
0060
0061
0062
0063
0064 AuxId aux_id() const final { return aux_id_; }
0065
0066
0067
0068
0069
0070
0071 ActionId action_id() const final { return action_id_; }
0072
0073 void begin_run(CoreParams const&, CoreStateHost&) final;
0074
0075 void begin_run(CoreParams const&, CoreStateDevice&) final;
0076
0077
0078
0079
0080
0081
0082 HostRef const& host_ref() const final { return data_.host_ref(); }
0083
0084 DeviceRef const& device_ref() const final { return data_.device_ref(); }
0085
0086
0087
0088 template<MemSpace M>
0089 void step(
0090 ActionId prev_action, CoreParams const&, CoreState<M>& state) const;
0091
0092 private:
0093 template<MemSpace M>
0094 using StatusStateRef = StatusCheckStateData<Ownership::reference, M>;
0095
0096
0097
0098 ActionId action_id_;
0099 AuxId aux_id_;
0100 ParamsDataStore<StatusCheckParamsData> data_;
0101
0102
0103
0104 void begin_run_impl(CoreParams const&);
0105
0106 void step_impl(CoreParams const&,
0107 CoreState<MemSpace::host>&,
0108 StatusStateRef<MemSpace::host> const&) const;
0109 void step_impl(CoreParams const&,
0110 CoreState<MemSpace::device>&,
0111 StatusStateRef<MemSpace::device> const&) const;
0112 };
0113
0114
0115 }