Программирование на Верхнем Уровне СУ
Библиотеки программных объектов СУ
Класс содержит методы работы с цепочкой
парных объектов, которые составлены из
объектов, созданных
методами класса
classAdrTbl. Максимально
возможное число парных объектов определяется
максимально возможным число объектов
класса classAdrTbl.
Семафор трассировки
наследуется из класса classAdrTbl.
Данный класс может быть
непосредственно использован для
соответствующих ему целей в прикладных программах,
но его задачей является создание парных объектов, работающих
с таблицами типа
PASSPORT и типа
DATA.
Каждый такой парный объект полностью
определяет один или несколько параметров
СУ соответствующих таблицам типов. Все
необходимые методы работы с парными
объектами, т.е. с параметрами, реализует производный класс
classAdrParWork.
class classAdrPar : public classAdrTbl
|
|
Открытые (public) методы
|
|
|
classAdrPar ()
|
|
|
~classAdrPar ()
|
|
|
int NumPar (void)
|
|
|
int SetPar (void *a1, void *a2)
|
|
|
int Delete (void *a)
|
|
|
int FirstPar (void **a1, int x1, void **a2, int x2)
|
|
|
int NextPar (void **a1, int x1, void **a2, int x2)
|
|
Закрытые (protected) Данные
|
|
|
int num_max - максимально
возможное число парных объектов, равно 100;
|
|
|
void *adr[2*100] - адреса пар
объектов, составляющих парный объект;
|
|
|
int ind[2*100] - индексы пар
объектов, составляющих парный объект;
|
|
|
int nfind[N_classTotal*N_classTotal] - массив,
используемый для поиска парного объекта;
|
|
|
int i - переменная,
используемая для поиска парного объекта.
|
public
|
classAdrPar ()
|
|
Конструктор обнуляет данные.
|
public
|
~classAdrPar ()
|
|
Деструктор освобождает область динамической памяти, занятой в процессе работы.
|
public
|
int NumPar(void)
|
|
Получить число инициализированных парных объектов.
|
public
|
int SetPar (void *a1, void *a2)
|
|
Создать парный объект, состоящий из объектов с
адресами a1 и a2.
Каждый из объектов должен быть инициализирован процедурой
classAdrTbl::Ini.
Если результат есть -1, то
это означает, что указанные
объекты не найдены и процедура не
выполнилась.
Если результат есть 0, то это означает, что уже имеется
максимально возможное число парных объектов и процедура не выполнилась.
|
public
|
int Delete (void *a)
|
|
Удалить один или два объекта:
- Удалить объект a, если объект a одиночный и был инициализирован процедурой
classAdrTbl::Ini.
- Удалить парный объект, созданный процедурами
classAdrTbl::Ini и
classAdrTbl::SetPar,
если объект a входит в этот парный объект.
Результат:
- 1 - удален один объект;
- 2 - удалена пара объектов;
- 0 - объект не найден.
|
public
|
int FirstPar (void **a1, int x1, void **a2, int x2)
|
|
Получить адреса a1 и a2
объектов, составляющих первый парный объект в
цепочке и имеющих индексы x1 и x2.
|
public
|
int NextPar (void **a1, int x1, void **a2, int x2)
|
|
Получить адреса a1 и a2
объектов, составляющих следующий парный объект в
цепочке и имеющих индексы x1 и x2.
Процедура может быть вызвана после
процедуры FirstPar или
NextPar.
|
Автор © Клименков Е.В.
|