##// END OF EJS Templates
Wait for the end of an acquisition to validate an operation (2)...
Wait for the end of an acquisition to validate an operation (2) Creates signal in VariableController emitted when there is no pending acquisition

File last commit:

r1080:d45cab418d5a
r1247:feac825a443e
Show More
DataSourceItemBuilder.cpp
73 lines | 1.9 KiB | text/x-c | CppLexer
/ core / tests / DataSource / DataSourceItemBuilder.cpp
#include "DataSourceItemBuilder.h"
DataSourceItemBuilder &DataSourceItemBuilder::root(const QString &name)
{
m_Root = std::make_shared<DataSourceItem>(DataSourceItemType::NODE, name);
m_Items.push(m_Root.get());
return *this;
}
DataSourceItemBuilder &DataSourceItemBuilder::root(QVariantHash data)
{
m_Root = std::make_shared<DataSourceItem>(DataSourceItemType::NODE, data);
m_Items.push(m_Root.get());
return *this;
}
DataSourceItemBuilder &DataSourceItemBuilder::node(const QString &name)
{
return append(DataSourceItemType::NODE, name);
}
DataSourceItemBuilder &DataSourceItemBuilder::node(QVariantHash data)
{
return append(DataSourceItemType::NODE, std::move(data));
}
DataSourceItemBuilder &DataSourceItemBuilder::product(const QString &name)
{
return append(DataSourceItemType::PRODUCT, name);
}
DataSourceItemBuilder &DataSourceItemBuilder::product(QVariantHash data)
{
return append(DataSourceItemType::PRODUCT, std::move(data));
}
DataSourceItemBuilder &DataSourceItemBuilder::component(const QString &name)
{
return append(DataSourceItemType::COMPONENT, name);
}
DataSourceItemBuilder &DataSourceItemBuilder::component(QVariantHash data)
{
return append(DataSourceItemType::COMPONENT, std::move(data));
}
DataSourceItemBuilder &DataSourceItemBuilder::end()
{
m_Items.pop();
return *this;
}
std::shared_ptr<DataSourceItem> DataSourceItemBuilder::build()
{
return m_Root;
}
DataSourceItemBuilder &DataSourceItemBuilder::append(DataSourceItemType type, const QString &name)
{
append(type, QVariantHash{{DataSourceItem::NAME_DATA_KEY, name}});
return *this;
}
DataSourceItemBuilder &DataSourceItemBuilder::append(DataSourceItemType type, QVariantHash data)
{
auto parentItem = m_Items.top();
auto insertIndex = parentItem->childCount();
parentItem->appendChild(std::make_unique<DataSourceItem>(type, std::move(data)));
m_Items.push(parentItem->child(insertIndex));
return *this;
}