AppFwk : Add childObjects() to PdmChildArrayField

This commit is contained in:
Magne Sjaastad 2017-11-07 20:20:45 +01:00
parent 994313fcc9
commit bd25c9bc9f
3 changed files with 27 additions and 3 deletions

View File

@ -84,10 +84,12 @@ public:
typename std::vector< PdmPointer<DataType> >::const_iterator begin() const { return m_pointers.begin(); };
typename std::vector< PdmPointer<DataType> >::const_iterator end() const { return m_pointers.end(); };
// Child objects
virtual void childObjects(std::vector<PdmObjectHandle*>* objects);
virtual void removeChildObject(PdmObjectHandle* object);
// Child objects
std::vector<DataType*> childObjects() const;
virtual void childObjects(std::vector<PdmObjectHandle*>* objects);
virtual void removeChildObject(PdmObjectHandle* object);
private: //To be disabled
PDM_DISABLE_COPY_AND_ASSIGN(PdmChildArrayField);

View File

@ -204,6 +204,25 @@ void PdmChildArrayField<DataType*>::removeChildObject(PdmObjectHandle* object)
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
template<typename DataType>
std::vector<DataType*> caf::PdmChildArrayField<DataType*>::childObjects() const
{
std::vector<DataType*> objects;
for (DataType* p : m_pointers)
{
if (p != nullptr)
{
objects.push_back(p);
}
}
return objects;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -296,6 +296,9 @@ TEST(BaseTest, PdmChildArrayField)
ihd1->m_childArrayField.childObjects(&objects);
EXPECT_EQ(size_t(3), objects.size());
std::vector<DemoPdmObject*> typedObjects = ihd1->m_childArrayField.childObjects();
EXPECT_EQ(size_t(3), typedObjects.size());
// set()
ihd1->m_childArrayField.set(1, NULL);
EXPECT_TRUE(NULL == ihd1->m_childArrayField[1]);