PIP 5.5.3
Platform-Independent Primitives
Открытые статические члены | Относящиеся к классу функции | Полный список членов класса
Класс PICollection

Помощник для создания и получения классов в группы. Подробнее...

#include <picollection.h>

Открытые статические члены

static PIStringList groups ()
 Возвращает имена всех групп
 
static PIVector< const PIObject * > groupElements (const PIString &group)
 Возвращает все элементы группы "group".
 

Относящиеся к классу функции

(не члены класса)

#define ADD_TO_COLLECTION(group, object)
 Добавляет существующий элемент "object" в группу с именем "group". Подробнее...
 
#define ADD_TO_COLLECTION_WITH_NAME(group, object, name)
 Добавляет существующий элемент "object" в группу с именем "group" и присваивает объекту имя "name". Подробнее...
 
#define ADD_NEW_TO_COLLECTION(group, class)
 Добавляет новый элемент класса "class" в группу с именем "group". Подробнее...
 
#define ADD_NEW_TO_COLLECTION_WITH_NAME(group, class, name)
 Добавляет новый элемент класса "class" в группу с именем "group" и присваивает объекту имя "name". Подробнее...
 

Подробное описание

Помощник для создания и получения классов в группы.

Краткий обзор

Этот класс предоставляет статические методы, поэтому не нужно создавать его экземпляр. Имеется несколько макросов для добавления классов или существующих объектов в глобальные группы. Затем можно получить их список в любом месте программы.

class ElementA: public PIObject {
PIOBJECT(ElementA)
// ...
};
ADD_NEW_TO_COLLECTION(ab_group, ElementA)
class ElementB: public PIObject {
PIOBJECT(ElementB)
// ...
};
ADD_NEW_TO_COLLECTION(ab_group, ElementB)
class ElementC: public PIObject {
PIOBJECT(ElementC)
// ...
};
ADD_NEW_TO_COLLECTION(c_group, ElementC)
class ElementD: public PIObject {
PIOBJECT(ElementD)
// ...
};
int main() {
ElementD * el_d = new ElementD();
ADD_TO_COLLECTION(ab_group, el_d)
piCout << gl; // {"ab_group", "c_group"}
piForeachC (PIString g, gl) {
piCout << "group" << g << ":";
piForeachC (PIObject * o, go)
piCout << Tab << o->className();
}
/*
group ab_group :
ElementA
ElementB
ElementD
group c_group :
ElementC
*/
};
#define ADD_TO_COLLECTION(group, object)
Добавляет существующий элемент "object" в группу с именем "group".
Definition: picollection.h:47
static PIVector< const PIObject * > groupElements(const PIString &group)
Возвращает все элементы группы "group".
Definition: picollection.cpp:49
#define ADD_NEW_TO_COLLECTION(group, class)
Добавляет новый элемент класса "class" в группу с именем "group".
Definition: picollection.h:74
static PIStringList groups()
Возвращает имена всех групп
Definition: picollection.cpp:40
Этот класс является базовым для использования механизма события -> обработчики.
Definition: piobject.h:41
Класс строки.
Definition: pistring.h:42
Основанный на PIDeque<PIString> массив строк.
Definition: pistringlist.h:36
@ Tab
Definition: picout.h:77
#define piForeachC(i, c)
Макрос для перебора любых контейнеров
Definition: picontainers.h:182
#define piCout
Макрос для условного (piDebug) вывода в PICout(StdOut)
Definition: picout.h:35

Документация по друзьям класса и функциям, относящимся к классу

◆ ADD_TO_COLLECTION

#define ADD_TO_COLLECTION (   group,
  object 
)
related

Добавляет существующий элемент "object" в группу с именем "group".

Если такой группы нет, она создается. В каждой группе может присутствовать только один элемент класса объекта "object". Если такой элемент уже есть, то ничего не изменится.
"object" должен быть наследником PIObject.

◆ ADD_TO_COLLECTION_WITH_NAME

#define ADD_TO_COLLECTION_WITH_NAME (   group,
  object,
  name 
)
related

Добавляет существующий элемент "object" в группу с именем "group" и присваивает объекту имя "name".

Аналогично ADD_TO_COLLECTION(group, object), но присваивает имя объекту "name"

◆ ADD_NEW_TO_COLLECTION

#define ADD_NEW_TO_COLLECTION (   group,
  class 
)
related

Добавляет новый элемент класса "class" в группу с именем "group".

Если такой группы нет, она создается. В каждой группе может присутствовать только один элемент класса "class". Если такой элемент уже есть, то ничего не изменится.
"class" должен быть любым классом, наследным от PIObject.

◆ ADD_NEW_TO_COLLECTION_WITH_NAME

#define ADD_NEW_TO_COLLECTION_WITH_NAME (   group,
  class,
  name 
)
related

Добавляет новый элемент класса "class" в группу с именем "group" и присваивает объекту имя "name".

Аналогично ADD_NEW_TO_COLLECTION(group, class), но присваивает имя объекту "name"