summaryrefslogtreecommitdiff
path: root/include/erebos/storage.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/erebos/storage.h')
-rw-r--r--include/erebos/storage.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/include/erebos/storage.h b/include/erebos/storage.h
index 75b8139..7ec73ab 100644
--- a/include/erebos/storage.h
+++ b/include/erebos/storage.h
@@ -507,12 +507,16 @@ class WatchedHead : public Head<T>
friend class Head<T>;
WatchedHead(const Head<T> & h, int watcherId):
Head<T>(h), watcherId(watcherId) {}
+ int watcherId;
+
+public:
WatchedHead(WatchedHead<T> && h):
Head<T>(h), watcherId(h.watcherId)
{ h.watcherId = -1; }
- int watcherId;
-public:
+ WatchedHead<T> & operator=(WatchedHead<T> && h)
+ { watcherId = h.watcherId; h.watcherId = -1; return *this; }
+
WatchedHead<T> & operator=(const Head<T> & h) {
if (Head<T>::id() != h.id())
throw std::runtime_error("WatchedHead ID mismatch");