pool::MicroSessionManager Node1 pool::MicroSessionManager - m_inSession - m_technology + MicroSessionManager() + ~MicroSessionManager() + connect() + connect() + disconnect() + disconnectAll() + technology() + fidForPfn() # attributeOfType() # setAttributeOfType() Node2 pool::ITechnologySpecific Attributes   + attribute() + setAttribute() # ~ITechnologySpecificAttributes() # attributeOfType() # setAttributeOfType() Node2->Node1 Node3 pool::DatabaseRegistry   + DatabaseRegistry() + ~DatabaseRegistry() + registerDatabaseHandler() + registerDatabaseHandler() + deregisterDatabaseHandler() + lookupByFID() + lookupByPFN() + lookupByLFN() + begin() + begin() + end() + end() + size() - registerDbHandler() Node3->Node1 -m_registry Node4 std::set< pool::Database Handler * >     Node4->Node1 -m_databaseHandlers Node4->Node3 -m_databases Node5 pool::DatabaseHandler - m_technology - m_accessMode + DatabaseHandler() + ~DatabaseHandler() + commitTransaction() + commitAndHoldTransaction() + disconnectTransaction() + containers() + container() + pfn() + fid() + technology() + accessMode() + writeObject() + readObject() + attribute() + setAttribute() Node5->Node4 +keys Node57 std::map< std::string, pool::DatabaseHandler * >     Node5->Node57 +elements Node6 pool::IStorageSvc   + addRef() + release() + getContName() + allocate() + read() + getShape() + createShape() + startSession() + endSession() + existsConnection() and 6 more... # ~IStorageSvc() Node6->Node1 -m_storageSvc Node6->Node5 -m_storageSvc Node7 pool::FileDescriptor   + FileDescriptor() + FileDescriptor() + PFN() + setPFN() + FID() + setFID() + dbc() + dbc() + setDbc() Node7->Node5 -m_fileDescriptor Node8 std::string     Node8->Node7 -m_FID -m_PFN Node8->Node57 +keys Node57->Node3 -m_fidToDb -m_lfnToDb -m_pfnToDb Node58 std::map< std::string, std::set< std::string > > + keys + elements + keys + elements   Node58->Node3 -m_fidToLfns