BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
ItemIDFactory Class Reference

Public Member Functions

 ItemIDFactory (const ItemIDFactory &)=delete
 
 ItemIDFactory (ItemIDFactory &&)=delete
 
ItemIDFactoryoperator= (const ItemIDFactory &)=delete
 
ItemIDFactoryoperator= (ItemIDFactory &&)=delete
 

Static Public Member Functions

static QString createID (SessionItem *toBeInsertedItem)
 
static QString getID (SessionItem *existingItem)
 
static SessionItemgetItem (QString existingID)
 
static int IDSize ()
 
static ItemIDFactoryinstance ()
 

Private Member Functions

 ItemIDFactory ()=default
 

Private Attributes

QMap< QString, SessionItem * > IDtoItemMap
 
QMap< SessionItem *, QString > ItemtoIDMap
 

Detailed Description

Definition at line 23 of file ItemIDFactory.h.

Constructor & Destructor Documentation

◆ ItemIDFactory() [1/3]

ItemIDFactory::ItemIDFactory ( const ItemIDFactory )
delete

◆ ItemIDFactory() [2/3]

ItemIDFactory::ItemIDFactory ( ItemIDFactory &&  )
delete

◆ ItemIDFactory() [3/3]

ItemIDFactory::ItemIDFactory ( )
privatedefault

Member Function Documentation

◆ createID()

QString ItemIDFactory::createID ( SessionItem toBeInsertedItem)
static

Definition at line 23 of file ItemIDFactory.cpp.

24 {
25 
26  QUuid id = QUuid::createUuid();
27  QString id_String = id.toString();
28 
29  // prevent duplicates (very improbable that this ever happens though)
30  while (instance().IDtoItemMap.contains(id_String)) {
31  id = QUuid::createUuid();
32  id_String = id.toString();
33  }
34  instance().ItemtoIDMap.insert(toBeInsertedItem, id_String);
35  instance().IDtoItemMap.insert(id_String, toBeInsertedItem);
36 
37  return id_String;
38 }
QMap< QString, SessionItem * > IDtoItemMap
Definition: ItemIDFactory.h:44
QMap< SessionItem *, QString > ItemtoIDMap
Definition: ItemIDFactory.h:45
static ItemIDFactory & instance()
QString createUuid()
Definition: GUIHelpers.cpp:242

References GUIHelpers::createUuid(), IDtoItemMap, instance(), and ItemtoIDMap.

Here is the call graph for this function:

◆ getID()

QString ItemIDFactory::getID ( SessionItem existingItem)
static

Definition at line 40 of file ItemIDFactory.cpp.

41 {
42  if (instance().ItemtoIDMap.contains(existingItem))
43  return instance().ItemtoIDMap.value(existingItem);
44  else
45  return "";
46 }

References instance(), and ItemtoIDMap.

Here is the call graph for this function:

◆ getItem()

SessionItem * ItemIDFactory::getItem ( QString  existingID)
static

Definition at line 48 of file ItemIDFactory.cpp.

49 {
50  if (instance().IDtoItemMap.contains(existingID))
51  return instance().IDtoItemMap.value(existingID);
52  else
53  return nullptr;
54 }

References IDtoItemMap, and instance().

Here is the call graph for this function:

◆ IDSize()

int ItemIDFactory::IDSize ( )
static

Definition at line 56 of file ItemIDFactory.cpp.

57 {
58  static QUuid id = QUuid::createUuid();
59  return id.toString().size();
60 }

References GUIHelpers::createUuid().

Here is the call graph for this function:

◆ instance()

ItemIDFactory & ItemIDFactory::instance ( )
static

Definition at line 17 of file ItemIDFactory.cpp.

18 {
19  static ItemIDFactory instance;
20  return instance;
21 }

Referenced by createID(), getID(), and getItem().

◆ operator=() [1/2]

ItemIDFactory& ItemIDFactory::operator= ( const ItemIDFactory )
delete

◆ operator=() [2/2]

ItemIDFactory& ItemIDFactory::operator= ( ItemIDFactory &&  )
delete

Member Data Documentation

◆ IDtoItemMap

QMap<QString, SessionItem*> ItemIDFactory::IDtoItemMap
private

Definition at line 44 of file ItemIDFactory.h.

Referenced by createID(), and getItem().

◆ ItemtoIDMap

QMap<SessionItem*, QString> ItemIDFactory::ItemtoIDMap
private

Definition at line 45 of file ItemIDFactory.h.

Referenced by createID(), and getID().


The documentation for this class was generated from the following files: