ГНЦ ИФВЭ
ОУ У-70
Система Управления комплекса У-70  

Программирование на Верхнем Уровне СУ

Библиотеки программных объектов СУ

class class class PARAMETER class

Класс содержит методы работы с цепочкой парных объектов, которые составлены из объектов, созданных методами класса 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)

Удалить один или два объекта:

  1. Удалить объект a, если объект a одиночный и был инициализирован процедурой classAdrTbl::Ini.
  2. Удалить парный объект, созданный процедурами 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.

Автор © Клименков Е.В.