aboutsummaryrefslogtreecommitdiffstats
path: root/src/engine/Machine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/Machine.cpp')
-rw-r--r--src/engine/Machine.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/engine/Machine.cpp b/src/engine/Machine.cpp
index 44e8446..fbda9ad 100644
--- a/src/engine/Machine.cpp
+++ b/src/engine/Machine.cpp
@@ -38,6 +38,25 @@ Machine::Machine()
}
+/** Copy a Machine.
+ *
+ * Creates a deep copy which is the 'same' machine, but with
+ * fresh state (deactivated, rewound)
+ */
+Machine::Machine(const Machine& copy)
+ : Raul::Stateful() // don't copy RDF ID
+ , _is_activated(false)
+ , _is_finished(false)
+ , _time(0)
+ , _sink(copy._sink)
+{
+ for (Nodes::const_iterator i = copy._nodes.begin(); i != copy._nodes.end(); ++i) {
+ SharedPtr<Machina::Node> node(new Machina::Node(*i->get()));
+ _nodes.push_back(node);
+ }
+}
+
+
Machine::~Machine()
{
}