Index: src/libchcore/TBasePathData.cpp =================================================================== diff -u -N -ra7834ba278464cb62739f22d35f9bc16269706a1 -ra5aa3c3cb78f3767641de2627d1a49a1dc35b429 --- src/libchcore/TBasePathData.cpp (.../TBasePathData.cpp) (revision a7834ba278464cb62739f22d35f9bc16269706a1) +++ src/libchcore/TBasePathData.cpp (.../TBasePathData.cpp) (revision a5aa3c3cb78f3767641de2627d1a49a1dc35b429) @@ -27,6 +27,7 @@ #include "TCoreException.h" #include "ErrorCodes.h" #include "TRowData.h" +#include "ISerializerContainer.h" #include "ISerializerRowData.h" #include #include "TPathContainer.h" @@ -221,12 +222,25 @@ m_vEntries.erase(m_vEntries.begin() + stIndex); } -chcore::TBasePathDataPtr TBasePathDataContainer::GetAt(size_t stIndex) const +TBasePathDataPtr TBasePathDataContainer::GetAt(size_t stIndex) const { boost::shared_lock lock(m_lock); return m_vEntries.at(stIndex); } + +TBasePathDataPtr TBasePathDataContainer::FindByID(size_t stObjectID) const +{ + boost::shared_lock lock(m_lock); + BOOST_FOREACH(const TBasePathDataPtr& spItem, m_vEntries) + { + if(spItem->GetObjectID() == stObjectID) + return spItem; + } + + THROW_CORE_EXCEPTION(eErr_InvalidArgument); +} + void TBasePathDataContainer::ClearNL() { BOOST_FOREACH(const TBasePathDataPtr& spItem, m_vEntries)