| … | … | @@ -46,10 +46,8 @@ class StorageNode : public ObjectCRTP<StorageNode>, protected BackingStore |
| 46 | 46 | friend class WriteThruProxy; |
| 47 | 47 | friend class ReadWriteProxy; |
| 48 | 48 | friend class ObjectCRTP<StorageNode>; |
| 49 | private: | |
| 50 | AtomSpacePtr _target_as; | |
| 51 | ||
| 52 | 49 | protected: |
| 50 | AtomSpacePtr _target_as; | |
| 53 | 51 | AtomSpace* get_target_as(const ValuePtr&) const; |
| 54 | 52 | |
| 55 | 53 | // Friendship cannot be inherited in c++. So we pass through selected |
| … | … | @@ -25,6 +25,8 @@ |
| 25 | 25 | |
| 26 | 26 | using namespace opencog; |
| 27 | 27 | |
| 28 | Handle ProxyNode::_open_msg; | |
| 29 | ||
| 28 | 30 | ProxyNode::ProxyNode(const std::string&& name) |
| 29 | 31 | : StorageNode(PROXY_NODE, std::move(name)) |
| 30 | 32 | { |
| … | … | @@ -54,6 +56,9 @@ void ProxyNode::init(void) |
| 54 | 56 | have_loadType = false; |
| 55 | 57 | have_loadAtomSpace = false; |
| 56 | 58 | have_storeAtomSpace = false; |
| 59 | ||
| 60 | if (nullptr == _open_msg) | |
| 61 | _open_msg = _msgs.find("*-open-*")->second; | |
| 57 | 62 | } |
| 58 | 63 | |
| 59 | 64 | void ProxyNode::proxy_open(void) |
| … | … | @@ -37,6 +37,7 @@ private: |
| 37 | 37 | void init(void); |
| 38 | 38 | |
| 39 | 39 | protected: |
| 40 | static Handle _open_msg; | |
| 40 | 41 | StorageNodeSeq _parts; |
| 41 | 42 | |
| 42 | 43 | public: |
| … | … | @@ -59,7 +59,7 @@ void ReadThruProxy::open(void) |
| 59 | 59 | _readers.swap(rdrs); |
| 60 | 60 | |
| 61 | 61 | for (const StorageNodePtr& stnp :_readers) |
| 62 | stnp->open(); | |
| 62 | stnp->setValue(_open_msg, _target_as); | |
| 63 | 63 | } |
| 64 | 64 | |
| 65 | 65 | void ReadThruProxy::close(void) |
| … | … | @@ -69,8 +69,8 @@ void ReadWriteProxy::open(void) |
| 69 | 69 | _reader = rwpair[0]; |
| 70 | 70 | _writer = rwpair[1]; |
| 71 | 71 | |
| 72 | _reader->open(); | |
| 73 | _writer->open(); | |
| 72 | _reader->setValue(_open_msg, _target_as); | |
| 73 | _writer->setValue(_open_msg, _target_as); | |
| 74 | 74 | } |
| 75 | 75 | |
| 76 | 76 | void ReadWriteProxy::close(void) |
| … | … | @@ -57,7 +57,7 @@ void SequentialReadProxy::open(void) |
| 57 | 57 | _readers.swap(rdrs); |
| 58 | 58 | |
| 59 | 59 | for (const StorageNodePtr& stnp :_readers) |
| 60 | stnp->open(); | |
| 60 | stnp->setValue(_open_msg, _target_as); | |
| 61 | 61 | } |
| 62 | 62 | |
| 63 | 63 | void SequentialReadProxy::close(void) |
| … | … | @@ -56,7 +56,7 @@ void WriteThruProxy::open(void) |
| 56 | 56 | _targets.swap(sns); |
| 57 | 57 | |
| 58 | 58 | for (const StorageNodePtr& stnp : _targets) |
| 59 | stnp->open(); | |
| 59 | stnp->setValue(_open_msg, _target_as); | |
| 60 | 60 | } |
| 61 | 61 | |
| 62 | 62 | void WriteThruProxy::close(void) |