Программирование на Верхнем Уровне СУ
Библиотеки программных объектов СУ
Класс содержит методы работы с цепочкой
парных объектов, которые составлены из
объектов, созданных
методами класса
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.
|
Автор © Клименков Е.В.
|