BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
SessionModel::SessionModelImpl Struct Reference

Pimpl class for SessionModel. More...

Collaboration diagram for SessionModel::SessionModelImpl:
[legend]

Public Member Functions

 SessionModelImpl (SessionModel *self, std::string modelType, std::shared_ptr< ItemPool > pool)
 
void createRootItem ()
 Creates root item. More...
 
void setItemPool (std::shared_ptr< ItemPool > pool)
 

Public Attributes

std::unique_ptr< CommandServicem_commands
 
std::unique_ptr< ItemManagerm_itemManager
 
std::unique_ptr< ModelMapperm_mapper
 
std::string m_modelType
 
std::unique_ptr< SessionItemm_root_item
 
SessionModelm_self {nullptr}
 

Detailed Description

Pimpl class for SessionModel.

Definition at line 33 of file sessionmodel.cpp.

Constructor & Destructor Documentation

◆ SessionModelImpl()

SessionModel::SessionModelImpl::SessionModelImpl ( SessionModel self,
std::string  modelType,
std::shared_ptr< ItemPool pool 
)
inline

Definition at line 40 of file sessionmodel.cpp.

41  : m_self(self)
42  , m_modelType(std::move(modelType))
43  , m_itemManager(std::make_unique<ItemManager>())
44  , m_commands(std::make_unique<CommandService>(self))
45  , m_mapper(std::make_unique<ModelMapper>(self))
46  {
47  setItemPool(pool);
48  }
std::unique_ptr< ItemManager > m_itemManager
std::unique_ptr< ModelMapper > m_mapper
std::unique_ptr< CommandService > m_commands
void setItemPool(std::shared_ptr< ItemPool > pool)

Member Function Documentation

◆ createRootItem()

void SessionModel::SessionModelImpl::createRootItem ( )
inline

Creates root item.

Definition at line 56 of file sessionmodel.cpp.

57  {
58  m_root_item = m_itemManager->createRootItem();
59  m_root_item->setModel(m_self);
60  m_root_item->registerTag(TagInfo::universalTag("rootTag"), /*set_as_default*/ true);
61  }
std::unique_ptr< SessionItem > m_root_item

References ModelView::TagInfo::universalTag().

Here is the call graph for this function:

◆ setItemPool()

void SessionModel::SessionModelImpl::setItemPool ( std::shared_ptr< ItemPool pool)
inline

Definition at line 50 of file sessionmodel.cpp.

51  {
52  m_itemManager->setItemPool(pool ? std::move(pool) : std::make_shared<ItemPool>());
53  }

Member Data Documentation

◆ m_commands

std::unique_ptr<CommandService> SessionModel::SessionModelImpl::m_commands

Definition at line 37 of file sessionmodel.cpp.

◆ m_itemManager

std::unique_ptr<ItemManager> SessionModel::SessionModelImpl::m_itemManager

Definition at line 36 of file sessionmodel.cpp.

◆ m_mapper

std::unique_ptr<ModelMapper> SessionModel::SessionModelImpl::m_mapper

Definition at line 38 of file sessionmodel.cpp.

◆ m_modelType

std::string SessionModel::SessionModelImpl::m_modelType

Definition at line 35 of file sessionmodel.cpp.

◆ m_root_item

std::unique_ptr<SessionItem> SessionModel::SessionModelImpl::m_root_item

Definition at line 39 of file sessionmodel.cpp.

◆ m_self

SessionModel* SessionModel::SessionModelImpl::m_self {nullptr}

Definition at line 34 of file sessionmodel.cpp.


The documentation for this struct was generated from the following file: