RDBRecordset Node1 RDBRecordset + RDBRecordset() + getData() + size() + nodeName() + tagName() + operator[]() + begin() + end() + operator!=() + compare() + setNodeName() Node2 IRDBRecordset + ~IRDBRecordset() + size() + nodeName() + tagName() + operator[]() + begin() + end() Node2->Node1 Node3 RDBAccessSvc + RDBAccessSvc() + initialize() + finalize() + queryInterface() + connect() + disconnect() + shutdown() + getRecordsetPtr() + getChildTag() + getChildTag() + getQuery() + getTagDetails() + getAllLeafNodes() + getLockedSupportedTags() + getSession() + interfaceID() - shutdown_connection() Node3->Node1 -m_accessSvc Node4 AthService - AthService() - AthService() - operator=() Node4->Node3 Node7 IRDBAccessSvc + getRecordsetPtr() + getChildTag() + getQuery() + getTagDetails() + interfaceID() # connect() # disconnect() # shutdown() Node7->Node3 Node9 std::map< std::string, TagNameIdByNode * > Node9->Node3 -m_globalTagLookup Node13 std::string Node13->Node1 -m_tagName -m_tableName Node13->Node9 +keys Node16 std::map< std::string, RecordsetPtrMap > Node13->Node16 +keys Node15 std::mutex Node15->Node3 -m_recordsetMutex -m_sessionMutex Node16->Node3 -m_recordsetptrs Node21 std::vector< IRDBRecord _ptr > Node21->Node1 -m_records