summaryrefslogtreecommitdiff
path: root/modules/async/c++
diff options
context:
space:
mode:
Diffstat (limited to 'modules/async/c++')
-rw-r--r--modules/async/c++/async.hpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/modules/async/c++/async.hpp b/modules/async/c++/async.hpp
index b56742c..0f58536 100644
--- a/modules/async/c++/async.hpp
+++ b/modules/async/c++/async.hpp
@@ -12,6 +12,12 @@
namespace saw {
class conveyor_storage;
+
+/**
+ * The inner base conveyor node type.
+ * It serves as a base for the asynchronous pipe/conveyor
+ * structure.
+ */
class conveyor_node {
public:
conveyor_node();
@@ -40,8 +46,14 @@ public:
virtual void notify_parent_attached(conveyor_node &){};
};
+/**
+ * Conveyor helper type to provide some basic storage for child conveyor nodes.
+ */
class conveyor_node_with_child_mixin final {
public:
+ /**
+ * The child itself.
+ */
own<conveyor_node> child = nullptr;
conveyor_node_with_child_mixin(own<conveyor_node> &&child_,
@@ -56,6 +68,9 @@ public:
error_or<own<conveyor_node>> swap_child(own<conveyor_node> &&swapee);
};
+/**
+ * Conveyor helper type to provide some basic reference helper.
+ */
class conveyor_node_with_parent_mixin final {
public:
conveyor_node *parent = nullptr;