OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
WriteTask.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: Apache-2.0
2//
3// Copyright 2026 Caleb Buahin
4//
5// Licensed under the Apache License, Version 2.0 (the "License");
6// you may not use this file except in compliance with the License.
7// You may obtain a copy of the License at
8//
9// http://www.apache.org/licenses/LICENSE-2.0
10//
11// Unless required by applicable law or agreed to in writing, software
12// distributed under the License is distributed on an "AS IS" BASIS,
13// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14// See the License for the specific language governing permissions and
15// limitations under the License.
16
37
38#ifndef OPENSWMM_ENGINE_WRITE_TASK_HPP
39#define OPENSWMM_ENGINE_WRITE_TASK_HPP
40
42
43namespace openswmm {
44
54struct WriteTask {
57
59 int sequence = 0;
60
62 WriteTask() = default;
63
69 explicit WriteTask(SimulationSnapshot snap, int seq = 0)
70 : snapshot(std::move(snap)), sequence(seq) {}
71
72 // Movable; not copyable (snapshots can be large)
76 WriteTask(WriteTask&&) noexcept = default;
81 WriteTask& operator=(WriteTask&&) noexcept = default;
83 WriteTask(const WriteTask&) = delete;
85 WriteTask& operator=(const WriteTask&) = delete;
86};
87
88} /* namespace openswmm */
89
90#endif /* OPENSWMM_ENGINE_WRITE_TASK_HPP */
Read-only snapshot of simulation state passed to plugins.
Definition ExchangeLaw.hpp:60
Complete simulation state snapshot at one output time step.
Definition SimulationSnapshot.hpp:123
WriteTask(WriteTask &&) noexcept=default
Move snapshot ownership and copy the sequence, leaving moved-from storage valid.
WriteTask(SimulationSnapshot snap, int seq=0)
Take snapshot ownership for deferred plugin delivery.
Definition WriteTask.hpp:69
SimulationSnapshot snapshot
The snapshot to be written (deep copy of relevant SoA slices).
Definition WriteTask.hpp:56
WriteTask()=default
Construct an empty/default snapshot task with sequence zero.
int sequence
Sequential task index (0-based). Useful for ordering assertions.
Definition WriteTask.hpp:59